Trait StateMachine

Source
pub trait StateMachine {
    type Item;

    // Required methods
    fn trans(&self, state: usize, elem: Self::Item) -> (usize, Action);
    fn zero_state_may_be_first(&self, elem: Self::Item) -> bool;

    // Provided methods
    fn replace_all<I: Iterator<Item = Self::Item> + Clone, J: Iterator<Item = Self::Item> + Clone>(
        &self,
        source: I,
        replacement: J,
    ) -> ReplacerIt<'_, Self::Item, Self, I, J>  { ... }
    fn replace_vec_all<'a, J: Iterator<Item = Self::Item> + Clone>(
        &'a self,
        source: &'a Vec<Self::Item>,
        replacement: J,
    ) -> ReplacerVecIt<'a, Self::Item, Self, J>  { ... }
    fn find_all<I: Iterator<Item = Self::Item> + Clone>(
        &self,
        source: I,
    ) -> FinderIt<'_, Self::Item, Self, I>  { ... }
    fn find_vec_all<'a>(
        &'a self,
        source: &'a Vec<Self::Item>,
    ) -> FinderVecIt<'a, Self::Item, Self>  { ... }
}

Required Associated Types§

Required Methods§

Source

fn trans(&self, state: usize, elem: Self::Item) -> (usize, Action)

Source

fn zero_state_may_be_first(&self, elem: Self::Item) -> bool

Provided Methods§

Source

fn replace_all<I: Iterator<Item = Self::Item> + Clone, J: Iterator<Item = Self::Item> + Clone>( &self, source: I, replacement: J, ) -> ReplacerIt<'_, Self::Item, Self, I, J>

return true if elem is in the first set of it is unknown

Source

fn replace_vec_all<'a, J: Iterator<Item = Self::Item> + Clone>( &'a self, source: &'a Vec<Self::Item>, replacement: J, ) -> ReplacerVecIt<'a, Self::Item, Self, J>

Source

fn find_all<I: Iterator<Item = Self::Item> + Clone>( &self, source: I, ) -> FinderIt<'_, Self::Item, Self, I>

Source

fn find_vec_all<'a>( &'a self, source: &'a Vec<Self::Item>, ) -> FinderVecIt<'a, Self::Item, Self>

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§