Trait monster::solver::Formula[][src]

pub trait Formula: Index<SymbolId, Output = Symbol> {
    type DependencyIter: Iterator<Item = SymbolId>;
    type SymbolIdsIter: Iterator<Item = SymbolId>;
    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
; }

Associated Types

Loading content...

Required methods

fn root(&self) -> SymbolId[src]

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

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

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

fn symbol_ids(&self) -> Self::SymbolIdsIter[src]

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

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

Loading content...

Implementors

impl<'a> Formula for FormulaView<'a>[src]

type DependencyIter = Map<Neighbors<'a, OperandSide>, fn(_: NodeIndex) -> usize>

type SymbolIdsIter = Map<NodeIndices, fn(_: NodeIndex) -> usize>

Loading content...