more_complex/
more_complex.rs1use setting_tracker::Setting;
2use std::cell::Cell;
3
4#[derive(Default, Debug)]
5struct Settings {
6 str: Setting<String>,
7 cell: Setting<Cell<u16>>,
8 vec: Setting<Vec<u8>>,
9}
10
11fn main() {
12 let mut settings = Settings::default();
13
14 settings.cell.cb(|o, n| println!("{:?} -> {:?}", o, n));
15 settings.vec.cb(|o, n| println!("{:?} -> {:?}", o, n));
16
17 println!("name should be empty by default: {:?}", settings.str.get());
19
20 settings.str.set("new_name".to_string());
22 settings.cell.set(10.into());
23 settings.cell.set(2222.into());
24
25 let mut vec = settings.vec.get();
27 vec.extend([1, 2, 3, 4]);
28 settings.vec.set(vec);
29
30 println!("{:?}", settings);
31}
32
33