Finite state machines in rust; bendns fork to add types.
Diffstat (limited to 'rust_fsm/examples/simple.rs')
| -rw-r--r-- | rust_fsm/examples/simple.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/rust_fsm/examples/simple.rs b/rust_fsm/examples/simple.rs new file mode 100644 index 0000000..46ef7be --- /dev/null +++ b/rust_fsm/examples/simple.rs @@ -0,0 +1,23 @@ +#[macro_use] +extern crate rust_fsm_dsl; + +use rust_fsm::*; + +state_machine! { + Door(Open) + + Open(Key) => Closed, + Closed(Key) => Open, + Open(Break) => Broken, + Closed(Break) => Broken, +} + +fn main() { + let mut machine: StateMachineWrapper<Door> = StateMachineWrapper::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()); +} |