#[macro_use]
extern crate microstate;
microstate!{
MicroMachine { New }
states { New, Confirmed, Ignored }
confirm {
New => Confirmed
}
ignore {
New => Ignored
}
reset {
Confirmed => New
Ignored => New
}
}
fn main() {
let mut machine = MicroMachine::new();
println!("{:?}", machine.confirm());
println!("{:?}", machine.state());
println!("{:?}", machine.ignore());
println!("{:?}", machine.state());
println!("{:?}", machine.reset());
println!("{:?}", machine.state());
println!("{:?}", machine.ignore());
println!("{:?}", machine.state());
}