INNER CODE UNIT · Rust

find

librespot-org/librespot · discovery/src/lib.rs:94

pub fn find(name: Option<&str>) -> Result<DnsSdServiceBuilder, Error> {
    if let Some(ref name) = name {
        match BACKENDS.iter().find(|(id, _)| name == id) {
            Some((_id, Some(launch_svc))) => Ok(*launch_svc),
            Some((_id, None)) => Err(Error::unavailable(format!(
                "librespot built without '{name}' support"
            ))),
            None => Err(Error::not_found(format!(
                "unknown zeroconf backend '{name}'"
            ))),
        }
    } else {
        BACKENDS
            .iter()
            .find_map(|(_, launch_svc)| *launch_svc)
            .ok_or(Error::unavailable(
                "librespot built without zeroconf backends",
            ))

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…