state-macro 0.1.1

Syntax sugar for stateful functions
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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);
}