fsm-macro 0.1.0

A statically checked finite state machine written in rust.
Documentation
use fsm_macro::fsm;

fsm! {
    initial = A
        A
        B
        C
        end = C, B

        A -> B: b
        A -> A: a
        B -> C: c
}

fn main() {
    let fsm = FSM::FSM::new();
    let f = |from: &str, to: &str, ev: &str| {
        println!("{} -> {}: {}", from, to, ev);
    };

    let f_end = |to: &str| {
        println!("ended at: {}", to);
    };
    fsm.a_fn(f).a().a().b_fn(f).c().end_fn(f_end);
}