use prefixmap::PrefixMap;
pub fn resolve_prefixed_resource(
token: &str,
default_prefixes: &PrefixMap,
endpoint_prefixes: Option<&PrefixMap>,
) -> Option<String> {
if token == "-" || token.contains("://") {
return None;
}
let (alias, local) = token.split_once(':')?;
if alias.is_empty() || local.is_empty() {
return None;
}
let pm = if default_prefixes.find(alias).is_some() {
default_prefixes
} else {
endpoint_prefixes.filter(|pm| pm.find(alias).is_some())?
};
pm.resolve_prefix_local(alias.to_string(), local.to_string())
.ok()
.map(|iri| iri.to_string())
}