pub struct SeriesBuilder<'a, K, Id: Copy, D: KeyProvidingData<K>, E> { /* private fields */ }
Expand description
Allows for quick definition of chain of states that follow single path.
§Examples
// Creates series of state that will match 'abc' character sequence or go back to root state anytime there is a mismatch.
fn create_abc_series_state_tree() -> Rc<RefCell<dyn AutomatonState<'static, char, TestData, String>>> {
SeriesBuilder::new_without_default_action(SimpleStateImplementation::new('x'))
.next_state(char_matcher('a'), SimpleStateImplementation::new('a'))
.next_state(char_matcher('b'), SimpleStateImplementation::new('b'))
.next_state(char_matcher('c'), SimpleStateImplementation::new('c'))
.build()
}
Implementations§
Source§impl<'a, K, Id: Copy, D: KeyProvidingData<K>, E> SeriesBuilder<'a, K, Id, D, E>
impl<'a, K, Id: Copy, D: KeyProvidingData<K>, E> SeriesBuilder<'a, K, Id, D, E>
pub fn new_without_default_action( root: SimpleStateImplementation<'a, K, Id, D, E>, ) -> SeriesBuilder<'a, K, Id, D, E>
pub fn new<FDExec: Fn(&mut D, &K) -> Result<(), E> + 'a>( root: SimpleStateImplementation<'a, K, Id, D, E>, default_execution_function: FDExec, ) -> SeriesBuilder<'a, K, Id, D, E>
Sourcepub fn next_state<M>(
self,
matcher: M,
next_state: SimpleStateImplementation<'a, K, Id, D, E>,
) -> SeriesBuilder<'a, K, Id, D, E>
pub fn next_state<M>( self, matcher: M, next_state: SimpleStateImplementation<'a, K, Id, D, E>, ) -> SeriesBuilder<'a, K, Id, D, E>
Creates new shared simple state and adds new connection to last added state with given matcher.
Sourcepub fn next_state_external<M>(
self,
matcher: M,
next_state: &SharedSimpleState<'a, K, Id, D, E>,
) -> SeriesBuilder<'a, K, Id, D, E>
pub fn next_state_external<M>( self, matcher: M, next_state: &SharedSimpleState<'a, K, Id, D, E>, ) -> SeriesBuilder<'a, K, Id, D, E>
WARNING: Passed state will be modified after creating next connection, even before build()
is called. Use with caution.
Creates connection from last appended state to specified state.
Sourcepub fn build(self) -> SharedSimpleState<'a, K, Id, D, E>
pub fn build(self) -> SharedSimpleState<'a, K, Id, D, E>
Consumes builder and returns root state.
Auto Trait Implementations§
impl<'a, K, Id, D, E> Freeze for SeriesBuilder<'a, K, Id, D, E>
impl<'a, K, Id, D, E> !RefUnwindSafe for SeriesBuilder<'a, K, Id, D, E>
impl<'a, K, Id, D, E> !Send for SeriesBuilder<'a, K, Id, D, E>
impl<'a, K, Id, D, E> !Sync for SeriesBuilder<'a, K, Id, D, E>
impl<'a, K, Id, D, E> Unpin for SeriesBuilder<'a, K, Id, D, E>
impl<'a, K, Id, D, E> !UnwindSafe for SeriesBuilder<'a, K, Id, D, E>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more