#[derive(Debug, Clone, PartialEq, Eq)] pub struct ToolManifestEntry { pub name: String, pub source: ToolSource, } #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum ToolSource { Base, Conditional, } #[derive(Debug, Clone, Default, PartialEq, Eq)] pub struct ToolRegistry { entries: Vec, } impl ToolRegistry { #[must_use] pub fn new(entries: Vec) -> Self { Self { entries } } #[must_use] pub fn entries(&self) -> &[ToolManifestEntry] { &self.entries } }