Rust State Machine

Build

A (Finite) State Machine library

This Rust Library aims to provide a developer-friendly, Business-Oriented, (Finite) State Machine.

Features

More features coming Soon™

Examples

Quickly define your State Machine using the integrated DSL define!() macro: rust fn main() { let light_switch = define!( "OFF" - "TURN_ON" -> "ON", "ON" - "TURN_OFF" -> "OFF" ); }

Use any type to define your States and Events, why not enums: ```rust fn main() { let mut enumlightswitch = Machine::new(); enumlightswitch.addtransition(Transition::new(LightState::Off, LightEvent::TurnOn, LightState::On)); enumlightswitch.addtransition(Transition::new(LightState::On, LightEvent::TurnOff, LightState::Off)); let mut state_light = StatefulLight { state: LightState::Off };

enum_light_switch.apply(&mut state_light, LightEvent::TurnOn);

} ```