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§
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,
) -> Rwhere
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.