statemachine

A Rust crate providing utilities for working with state machines. Documentation is available on docs.rs.

NOTE: In the future, this module will contain more machines and automata. Currently it only adds a way to define statemachines.

Usage

Add this to your Cargo.toml: toml [dependencies] statemachine = "0.1"

Getting Started

```rs use statemachine::statemachine;

statemachine! { #[derive(Default)] struct Foo {}

enum FooState consumes [char] from Start accepts [NonEmpty];

Start => {
    char match _ => NonEmpty
},

NonEmpty => {
    _ => NonEmpty
}

}

fn main() { let mut foo: Foo = Default::default(); assert!(!foo.isaccepting()); foo.consume('a'); assert!(foo.isaccepting()); foo.consume('b'); assert!(foo.isaccepting()); foo.consume('c'); assert!(foo.isaccepting()); } ```

License

This crate is published under the terms of the MIT license. See the LICENSE file for details.