Crate microstate [] [src]

MicroState

A minimal Finite State Machine.

Example:

#[macro_use] extern crate microstate;
microstate! {
    Simple { A }
    states { A, B }

    next {
        A => B
        B => A
    }
}

use Simple::State::*;

let mut machine = Simple::new();
assert_eq!(A, machine.state());
assert_eq!(Some(B), machine.next());
assert_eq!(Some(A), machine.next());

Macros

microstate

Create a new state machine