pub struct Registry {
pub functions: HashMap<String, FunctionKind>,
pub metadata: HashMap<String, FunctionMeta>,
}Expand description
The runtime registry of built-in and user-registered spreadsheet functions.
Fields§
§functions: HashMap<String, FunctionKind>§metadata: HashMap<String, FunctionMeta>Implementations§
Source§impl Registry
impl Registry
pub fn new() -> Self
Sourcepub fn register_eager(&mut self, name: &str, f: EagerFn, meta: FunctionMeta)
pub fn register_eager(&mut self, name: &str, f: EagerFn, meta: FunctionMeta)
Register a user-facing eager function with metadata.
Appears in list_functions().
Panics if name is already registered (duplicate registration).
Sourcepub fn register_lazy(&mut self, name: &str, f: LazyFn, meta: FunctionMeta)
pub fn register_lazy(&mut self, name: &str, f: LazyFn, meta: FunctionMeta)
Register a user-facing lazy function with metadata.
Appears in list_functions().
Panics if name is already registered (duplicate registration).
Sourcepub fn register_alias(&mut self, alias: &str, canonical: &str)
pub fn register_alias(&mut self, alias: &str, canonical: &str)
Register alias as an alternate name for canonical.
The alias shares the same handler but does NOT appear in function metadata
(it will not show up in list_functions() or autocomplete).
Panics if alias is already registered or canonical is not yet registered.
Sourcepub fn register_internal(&mut self, name: &str, f: EagerFn)
pub fn register_internal(&mut self, name: &str, f: EagerFn)
Register an internal/compiler-only eager function without metadata.
Never appears in list_functions().
Sourcepub fn register_internal_lazy(&mut self, name: &str, f: LazyFn)
pub fn register_internal_lazy(&mut self, name: &str, f: LazyFn)
Register an internal/compiler-only lazy function without metadata.
Never appears in list_functions().
pub fn get(&self, name: &str) -> Option<&FunctionKind>
Sourcepub fn list_functions(&self) -> impl Iterator<Item = (&str, &FunctionMeta)>
pub fn list_functions(&self) -> impl Iterator<Item = (&str, &FunctionMeta)>
Iterate all user-facing functions with their metadata. The registry is the single source of truth — this can never drift.
Sourcepub fn get_metadata(&self) -> Vec<FunctionMetaEntry<'_>>
pub fn get_metadata(&self) -> Vec<FunctionMetaEntry<'_>>
Return all function metadata entries as a Vec of named structs. Used for inspection (e.g. counting functions, verifying aliases are absent).
Sourcepub fn metadata_names(&self) -> Vec<String>
pub fn metadata_names(&self) -> Vec<String>
Return all user-facing function names (from metadata, not aliases).