use setting_tracker::Setting;
use std::cell::Cell;
#[derive(Default, Debug)]
struct Settings {
str: Setting<String>,
cell: Setting<Cell<u16>>,
vec: Setting<Vec<u8>>,
}
fn main() {
let mut settings = Settings::default();
settings.cell.cb(|o, n| println!("{:?} -> {:?}", o, n));
settings.vec.cb(|o, n| println!("{:?} -> {:?}", o, n));
println!("name should be empty by default: {:?}", settings.str.get());
settings.str.set("new_name".to_string());
settings.cell.set(10.into());
settings.cell.set(2222.into());
let mut vec = settings.vec.get();
vec.extend([1, 2, 3, 4]);
settings.vec.set(vec);
println!("{:?}", settings);
}