pub trait Rex: Kind + HashKind {
type Input: Send + Sync + 'static + Debug;
type Message: RexMessage;
// Required methods
fn state_input(&self, state: <Self as Kind>::State) -> Option<Self::Input>;
fn timeout_input(&self, instant: Instant) -> Option<Self::Input>;
}Expand description
Titular trait of the library that enables Hierarchical State Machine (HSM for short) behaviour.
Makes sending Signals (destined to become a StateMachine’s input)
and Notifications (a NotificationProcessor’s input) possible.
The Rex trait defines the scope of interaction that exists between one or more
StateMachines and zero or more NotificationProcessors.
Below is a diagram displaying the associated
type hierarchy defined by validly implementing the Kind and Rex traits,
double colons:: directed down and right represent type associations:
Topic
::
Kind -> Rex::Message
:: :: ::
State Input Topic
Required Associated Types§
Required Methods§
fn state_input(&self, state: <Self as Kind>::State) -> Option<Self::Input>
fn timeout_input(&self, instant: Instant) -> Option<Self::Input>
Object Safety§
This trait is not object safe.