counter_redux/
counter_redux.rs1use rui::*;
2
3#[derive(Clone)]
4enum Action {
5 Increment,
6 Decrement,
7}
8
9struct AppState {
10 count: i32,
11}
12
13impl AppState {
14 fn new() -> Self {
15 AppState { count: 1 }
16 }
17}
18
19fn reduce(state: &mut AppState, action: &Action) {
20 match action {
21 Action::Increment => state.count += 1,
22 Action::Decrement => state.count -= 1,
23 }
24}
25
26fn main() {
27 rui(redux(AppState::new, reduce, |state| {
28 vstack((
29 format!("{}", state.count).padding(Auto),
30 button_a("increment", Action::Increment).padding(Auto),
31 button_a("decrement", Action::Decrement).padding(Auto),
32 ))
33 }));
34}