pub trait StateMachineExt<K>: StateMachine<K>
where K: Rex, K::Message: From<TimeoutInput<K>>,
{ // Provided methods fn create_tree(&self, ctx: &SmContext<K>, id: StateId<K>) { ... } fn has_state(&self, ctx: &SmContext<K>, id: StateId<K>) -> bool { ... } fn fail(&self, ctx: &SmContext<K>, id: StateId<K>) -> Option<StateId<K>> { ... } fn complete(&self, ctx: &SmContext<K>, id: StateId<K>) -> Option<StateId<K>> { ... } fn terminal_state(state: K::State) -> bool { ... } fn update_state_and_signal( &self, ctx: &SmContext<K>, id: StateId<K>, state: K::State ) -> Option<StateId<K>> { ... } fn notify(&self, ctx: &SmContext<K>, msg: impl Into<K::Message>) { ... } fn set_timeout( &self, ctx: &SmContext<K>, id: StateId<K>, duration: Duration ) -> Result<(), SendError<Notification<K::Message>>> { ... } fn set_timeout_millis( &self, ctx: &SmContext<K>, id: StateId<K>, millis: u64 ) -> Result<(), SendError<Notification<K::Message>>> { ... } fn cancel_timeout( &self, ctx: &SmContext<K>, id: StateId<K> ) -> Result<(), SendError<Notification<K::Message>>> { ... } fn get_parent_id( &self, ctx: &SmContext<K>, id: StateId<K> ) -> Option<StateId<K>> { ... } }

Provided Methods§

source

fn create_tree(&self, ctx: &SmContext<K>, id: StateId<K>)

NOTE [StateMachineExt::new] is created without a hierarchy

source

fn has_state(&self, ctx: &SmContext<K>, id: StateId<K>) -> bool

source

fn fail(&self, ctx: &SmContext<K>, id: StateId<K>) -> Option<StateId<K>>

source

fn complete(&self, ctx: &SmContext<K>, id: StateId<K>) -> Option<StateId<K>>

source

fn terminal_state(state: K::State) -> bool

represents a state that will no longer change

source

fn update_state_and_signal( &self, ctx: &SmContext<K>, id: StateId<K>, state: K::State ) -> Option<StateId<K>>

update state is meant to be used to signal a parent state of a child state if a parent exists, this function makes no assumptions of the potential structure of a state hierarchy and should be just as performant on a single state tree as it is for multiple states. Returns the parent’s StateId if there was one.

source

fn notify(&self, ctx: &SmContext<K>, msg: impl Into<K::Message>)

source

fn set_timeout( &self, ctx: &SmContext<K>, id: StateId<K>, duration: Duration ) -> Result<(), SendError<Notification<K::Message>>>

source

fn set_timeout_millis( &self, ctx: &SmContext<K>, id: StateId<K>, millis: u64 ) -> Result<(), SendError<Notification<K::Message>>>

source

fn cancel_timeout( &self, ctx: &SmContext<K>, id: StateId<K> ) -> Result<(), SendError<Notification<K::Message>>>

source

fn get_parent_id( &self, ctx: &SmContext<K>, id: StateId<K> ) -> Option<StateId<K>>

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<K, T> StateMachineExt<K> for T
where T: StateMachine<K>, K: Rex, K::Message: From<TimeoutInput<K>>,