@@ -2,25 +2,23 @@ use std::cell::RefCell;
22
33use crate :: functional:: { hook, Effect , Hook , HookContext } ;
44
5- struct UseEffectBase < T , F , D , R >
5+ struct UseEffectBase < T , F , D >
66where
77 F : FnOnce ( & T ) -> D + ' static ,
88 T : ' static ,
99 D : FnOnce ( ) + ' static ,
10- R : Fn ( Option < & T > , Option < & T > ) -> bool + ' static ,
1110{
1211 runner_with_deps : Option < ( T , F ) > ,
1312 destructor : Option < D > ,
1413 deps : Option < T > ,
15- effect_changed_fn : R ,
14+ effect_changed_fn : fn ( Option < & T > , Option < & T > ) -> bool ,
1615}
1716
18- impl < T , F , D , R > Effect for RefCell < UseEffectBase < T , F , D , R > >
17+ impl < T , F , D > Effect for RefCell < UseEffectBase < T , F , D > >
1918where
2019 F : FnOnce ( & T ) -> D + ' static ,
2120 T : ' static ,
2221 D : FnOnce ( ) + ' static ,
23- R : Fn ( Option < & T > , Option < & T > ) -> bool + ' static ,
2422{
2523 fn rendered ( & self ) {
2624 let mut this = self . borrow_mut ( ) ;
@@ -42,12 +40,11 @@ where
4240 }
4341}
4442
45- impl < T , F , D , R > Drop for UseEffectBase < T , F , D , R >
43+ impl < T , F , D > Drop for UseEffectBase < T , F , D >
4644where
4745 F : FnOnce ( & T ) -> D + ' static ,
4846 T : ' static ,
4947 D : FnOnce ( ) + ' static ,
50- R : Fn ( Option < & T > , Option < & T > ) -> bool + ' static ,
5148{
5249 fn drop ( & mut self ) {
5350 if let Some ( destructor) = self . destructor . take ( ) {
@@ -59,30 +56,28 @@ where
5956fn use_effect_base < T , D > (
6057 runner : impl FnOnce ( & T ) -> D + ' static ,
6158 deps : T ,
62- effect_changed_fn : impl Fn ( Option < & T > , Option < & T > ) -> bool + ' static ,
59+ effect_changed_fn : fn ( Option < & T > , Option < & T > ) -> bool ,
6360) -> impl Hook < Output = ( ) >
6461where
6562 T : ' static ,
6663 D : FnOnce ( ) + ' static ,
6764{
68- struct HookProvider < T , F , D , R >
65+ struct HookProvider < T , F , D >
6966 where
7067 F : FnOnce ( & T ) -> D + ' static ,
7168 T : ' static ,
7269 D : FnOnce ( ) + ' static ,
73- R : Fn ( Option < & T > , Option < & T > ) -> bool + ' static ,
7470 {
7571 runner : F ,
7672 deps : T ,
77- effect_changed_fn : R ,
73+ effect_changed_fn : fn ( Option < & T > , Option < & T > ) -> bool ,
7874 }
7975
80- impl < T , F , D , R > Hook for HookProvider < T , F , D , R >
76+ impl < T , F , D > Hook for HookProvider < T , F , D >
8177 where
8278 F : FnOnce ( & T ) -> D + ' static ,
8379 T : ' static ,
8480 D : FnOnce ( ) + ' static ,
85- R : Fn ( Option < & T > , Option < & T > ) -> bool + ' static ,
8681 {
8782 type Output = ( ) ;
8883
9388 effect_changed_fn,
9489 } = self ;
9590
96- let state = ctx. next_effect ( |_| -> RefCell < UseEffectBase < T , F , D , R > > {
91+ let state = ctx. next_effect ( |_| -> RefCell < UseEffectBase < T , F , D > > {
9792 RefCell :: new ( UseEffectBase {
9893 runner_with_deps : None ,
9994 destructor : None ,
0 commit comments