fn try_from()

in focus/internals/src/lib/target.rs [54:69]


    fn try_from(value: &str) -> Result<Self, Self::Error> {
        match value.split_once(':') {
            Some((prefix, rest)) => {
                let rest = rest.to_owned();
                if prefix.eq_ignore_ascii_case("bazel") {
                    let label: Label = rest.parse()?;
                    Ok(Target::Bazel(label))
                } else if prefix.eq_ignore_ascii_case("directory") {
                    Ok(Target::Directory(rest))
                } else {
                    Err(TargetError::UnsupportedScheme(prefix.to_owned()))
                }
            }
            None => Err(TargetError::NoSchemeProvidedError),
        }
    }