Expand description
Generic state machine implementation with compile time checked state transitions.
Modules§
- Convenience functions for unit testing. Note: Do ONLY use in tests!
Macros§
- Defines a state machine’s initial state and its allowed transitions. Optionally, a state machine enum type can be generated. Example:
Structs§
- Wrapper struct for a state S. Use in combination with
StateTransition
. - Wrapper to safely replace states of state machine which don’t consume their states. Use this wrapper if state transitions are performed on mutable references rather than consumed states. Example:
- Wrapper struct to enforce compile time checked state transitions of one state into another.
Traits§
- Marker for creating a new initial state. This trait enforces that only the initial state can be created manually while all others must be created through a proper state transition.
- A
StateTransition
defines valid transitions from one state into another. ImplementStateTransition
on the givenState
struct to define a new state transition. Alternatively, use the convenience macrostatemachine!
.