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§
fn trans(&self, state: usize, elem: Self::Item) -> (usize, Action)
fn zero_state_may_be_first(&self, elem: Self::Item) -> bool
Provided Methods§
Sourcefn 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_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
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> ⓘ
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.