pub struct Fsm<S: Clone + Eq + Hash + 'static, D: Clone + 'static, M: 'static> { /* private fields */ }Expand description
Built FSM. Drive it by handle(msg) per.
Implementations§
Source§impl<S, D, M> Fsm<S, D, M>
impl<S, D, M> Fsm<S, D, M>
pub fn state(&self) -> &S
pub fn data(&self) -> &D
pub fn initial_state(&self) -> &S
pub fn is_terminated(&self) -> bool
Sourcepub fn handle(&mut self, msg: M) -> Option<&S>
pub fn handle(&mut self, msg: M) -> Option<&S>
Process one message. Returns the post-message state. Returns
None if the FSM has been terminated.
Sourcepub fn terminate(&mut self, _reason: FsmStopReason)
pub fn terminate(&mut self, _reason: FsmStopReason)
Stop the FSM and run the OnTermination hook.
Auto Trait Implementations§
impl<S, D, M> Freeze for Fsm<S, D, M>
impl<S, D, M> !RefUnwindSafe for Fsm<S, D, M>
impl<S, D, M> Send for Fsm<S, D, M>
impl<S, D, M> !Sync for Fsm<S, D, M>
impl<S, D, M> Unpin for Fsm<S, D, M>
impl<S, D, M> UnsafeUnpin for Fsm<S, D, M>where
S: UnsafeUnpin,
D: UnsafeUnpin,
impl<S, D, M> !UnwindSafe for Fsm<S, D, M>
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