ParametricSystem

Trait ParametricSystem 

Source
pub trait ParametricSystem {
    type Rule: ParametricRule;

    // Required method
    fn apply_first_rule(
        &self,
        sym: &<Self::Rule as ParametricRule>::OutSym,
    ) -> Option<Vec<<Self::Rule as ParametricRule>::OutSym>>;

    // Provided methods
    fn develop_next(
        &self,
        axiom: &Vec<<Self::Rule as ParametricRule>::OutSym>,
    ) -> (Vec<<Self::Rule as ParametricRule>::OutSym>, usize) { ... }
    fn develop(
        &self,
        axiom: Vec<<Self::Rule as ParametricRule>::OutSym>,
        max_iterations: usize,
    ) -> (Vec<<Self::Rule as ParametricRule>::OutSym>, usize) { ... }
}

Required Associated Types§

Required Methods§

Source

fn apply_first_rule( &self, sym: &<Self::Rule as ParametricRule>::OutSym, ) -> Option<Vec<<Self::Rule as ParametricRule>::OutSym>>

Provided Methods§

Source

fn develop_next( &self, axiom: &Vec<<Self::Rule as ParametricRule>::OutSym>, ) -> (Vec<<Self::Rule as ParametricRule>::OutSym>, usize)

Apply in parallel the first matching rule to each symbol in the string. Returns the total number of rule applications.

Source

fn develop( &self, axiom: Vec<<Self::Rule as ParametricRule>::OutSym>, max_iterations: usize, ) -> (Vec<<Self::Rule as ParametricRule>::OutSym>, usize)

Develop the system starting with axiom up to max_iterations. Return iteration count.

Implementors§