use alloc::collections::BTreeSet;
use muffy_rnc::NameClass;
pub fn class_names(name_class: &NameClass) -> BTreeSet<String> {
match name_class {
NameClass::Name(name) => {
let local = name.local.to_string();
[if let Some(prefix) = &name.prefix {
format!("{prefix}:{local}")
} else {
local
}]
.into()
}
NameClass::AnyName => ["*".into()].into(),
NameClass::NamespaceName(prefix) => [if let Some(prefix) = prefix {
format!("{prefix}:*")
} else {
"*".into()
}]
.into(),
NameClass::Choice(classes) => classes.iter().flat_map(class_names).collect(),
NameClass::Except { .. } => Default::default(),
}
}