use state_macro::stateful;
fn inc(state: &mut u8) -> u8 {
*state += 1;
*state
}
#[stateful(&mut u8)]
fn inc_twice() -> u8 {
::inc() + ::inc()
}
fn main() {
let mut x = 0;
let result = inc_twice(&mut x);
println!("{}", result);
assert_eq!(result, 3);
}