diff --git a/src/model/types.rs b/src/model/types.rs index 0450268..c368a63 100644 --- a/src/model/types.rs +++ b/src/model/types.rs @@ -250,6 +250,15 @@ impl Model { self.categories.keys().map(|s| s.as_str()).collect() } + /// Category names excluding virtual categories (_Index, _Dim). + pub fn regular_category_names(&self) -> Vec<&str> { + self.categories + .iter() + .filter(|(_, c)| c.kind.is_regular()) + .map(|(name, _)| name.as_str()) + .collect() + } + /// Evaluate a computed value at a given key, considering formulas. /// Returns None when the cell is empty (no stored value, no applicable formula). pub fn evaluate(&self, key: &CellKey) -> Option {