Finite state machines in rust; bendns fork to add types.
Diffstat (limited to 'examples/simple.rs')
| -rw-r--r-- | examples/simple.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/examples/simple.rs b/examples/simple.rs new file mode 100644 index 0000000..81f8b98 --- /dev/null +++ b/examples/simple.rs @@ -0,0 +1,20 @@ +use rust_fsm::*; + +state_machine! { + Door(Open) + + Open(Key) => Closed, + Closed(Key) => Open, + Open(Break) => Broken, + Closed(Break) => Broken, +} + +fn main() { + let mut machine: StateMachine<Door> = StateMachine::new(); + machine.consume(&DoorInput::Key).unwrap(); + println!("{:?}", machine.state()); + machine.consume(&DoorInput::Key).unwrap(); + println!("{:?}", machine.state()); + machine.consume(&DoorInput::Break).unwrap(); + println!("{:?}", machine.state()); +} |