Formula

Trait Formula 

Source
pub trait Formula: Index<SymbolId, Output = Symbol> {
    type DependencyIter: Iterator<Item = SymbolId>;
    type SymbolIdsIter: Iterator<Item = SymbolId>;

    // Required methods
    fn root(&self) -> SymbolId;
    fn operands(&self, sym: SymbolId) -> (SymbolId, Option<SymbolId>);
    fn operand(&self, sym: SymbolId) -> SymbolId;
    fn dependencies(&self, sym: SymbolId) -> Self::DependencyIter;
    fn symbol_ids(&self) -> Self::SymbolIdsIter;
    fn is_operand(&self, sym: SymbolId) -> bool;
    fn traverse<V, R>(
        &self,
        n: SymbolId,
        visit_map: &mut HashMap<SymbolId, R>,
        v: &mut V,
    ) -> R
       where V: FormulaVisitor<R>,
             R: Clone;
}

Required Associated Types§

Required Methods§

Source

fn root(&self) -> SymbolId

Source

fn operands(&self, sym: SymbolId) -> (SymbolId, Option<SymbolId>)

Source

fn operand(&self, sym: SymbolId) -> SymbolId

Source

fn dependencies(&self, sym: SymbolId) -> Self::DependencyIter

Source

fn symbol_ids(&self) -> Self::SymbolIdsIter

Source

fn is_operand(&self, sym: SymbolId) -> bool

Source

fn traverse<V, R>( &self, n: SymbolId, visit_map: &mut HashMap<SymbolId, R>, v: &mut V, ) -> R
where V: FormulaVisitor<R>, R: Clone,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§