1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
mod reactivity; pub use reactivity::{batch, Effect, Memo, Signal}; #[test] fn test_effect() { let mut a = Signal::new(1); let mut b = Signal::new(2); let c; { let a = a.clone(); let b = b.clone(); c = Memo::new(move || *a.read() + *b.read()); } let _effect = Effect::new(move || println!("{}", *c.read())); *a.write() = 3; batch(|| { *a.write() = 10; *b.write() = 12; }); } #[test] fn test_calmed() { let mut a: Signal<i32> = Signal::new(1); let b; { let a = a.clone(); b = Memo::new_calmed_eq(move || *a.read()); } let _effect = Effect::new(move || println!("{}", *b.read())); *a.write() = 2; *a.write() = 2; *a.write() = 3; }