use crate::admin::resource::AdminResource;
#[derive(Debug, Default)]
pub struct AdminRegistry {
pub resources: Vec<AdminResource>,
}
impl AdminRegistry {
pub fn new() -> Self {
Self {
resources: Vec::new(),
}
}
pub fn register(&mut self, resource: AdminResource) {
self.resources.push(resource);
}
pub fn get(&self, key: &str) -> Option<&AdminResource> {
self.resources.iter().find(|r| r.key == key)
}
pub fn contains(&self, key: &str) -> bool {
self.resources.iter().any(|r| r.key == key)
}
pub fn len(&self) -> usize {
self.resources.len()
}
pub fn is_empty(&self) -> bool {
self.resources.is_empty()
}
pub fn keys(&self) -> Vec<&str> {
self.resources.iter().map(|r| r.key).collect()
}
}