A Rust crate providing a macro to easily create state machines. Documentation is available on docs.rs.
Add this to your Cargo.toml
:
toml
[dependencies]
statemachine-macro = "0.1"
```rs use statemachine_macro::*;
statemachine! { struct Foo;
enum FooState consumes [char] from Start accepts [NonEmpty];
Start => {
char match _ => NonEmpty
},
NonEmpty => {
_ => NonEmpty
}
}
fn main() { let mut foo: Foo = statemachinenew!(Foo{}); assert!(!foo.isaccepting()); foo.consume('a'); assert!(foo.isaccepting()); foo.consume('b'); assert!(foo.isaccepting()); foo.consume('c'); assert!(foo.is_accepting()); } ```
This crate is published under the terms of the MIT license. See the LICENSE file for details.