#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum KeyCategory {
ThingId,
EdgeGroupDep,
EdgeGroupInteraction,
TagName,
TagId,
EdgeId,
Entity,
StyleAlias,
ThemeStyles,
TagFocus,
EntityType,
}
impl KeyCategory {
pub fn from_ref_name(ref_name: &str) -> Option<KeyCategory> {
match ref_name {
"ThingNames" | "ThingCopyText" | "ThingDescs" | "ThingLayouts" => {
Some(KeyCategory::ThingId)
}
"ThingDependencies" => Some(KeyCategory::EdgeGroupDep),
"ThingInteractions" => Some(KeyCategory::EdgeGroupInteraction),
"TagNames" => Some(KeyCategory::TagName),
"TagThings" => Some(KeyCategory::TagId),
"EdgeDescs" | "EdgeLabels" => Some(KeyCategory::EdgeId),
"EntityTooltips" | "EntityTypes" => Some(KeyCategory::Entity),
"StyleAliases" => Some(KeyCategory::StyleAlias),
"ThemeStyles" => Some(KeyCategory::ThemeStyles),
"ThemeTagThingsFocus" => Some(KeyCategory::TagFocus),
"ThemeTypesStyles" => Some(KeyCategory::EntityType),
_ => None,
}
}
}