FunctionFamilyExtension

Trait FunctionFamilyExtension 

Source
pub trait FunctionFamilyExtension: Send + Sync {
    // Required methods
    fn family_name(&self) -> &'static str;
    fn get_properties(&self) -> HashMap<String, FunctionProperties>;
    fn has_function(&self, name: &str) -> bool;

    // Provided methods
    fn version(&self) -> (u32, u32, u32) { ... }
    fn dependencies(&self) -> Vec<&'static str> { ... }
}
Expand description

Extension trait for adding new function families

This trait provides a stable interface for extending the function system with new mathematical function families while maintaining backward compatibility.

§Design Principles

  • Backward Compatibility: New extensions never break existing code
  • Type Safety: All extensions are statically checked at compile time
  • Performance: Zero-cost abstractions with compile-time dispatch
  • Modularity: Each extension is self-contained and independent

Required Methods§

Source

fn family_name(&self) -> &'static str

Get the family name for this extension

Source

fn get_properties(&self) -> HashMap<String, FunctionProperties>

Get all function properties provided by this extension

Source

fn has_function(&self, name: &str) -> bool

Check if this extension provides a specific function

Provided Methods§

Source

fn version(&self) -> (u32, u32, u32)

Get version information for compatibility checking

Source

fn dependencies(&self) -> Vec<&'static str>

Get dependencies on other function families

Implementors§