Macro hooks_core::dyn_hook
source · macro_rules! dyn_hook {
(
$($lt:lifetime +)?
$(for < $($generic_lt:lifetime),* $(,)? >)?
($($arg:ty),* $(,)?) -> $value:ty
$(: $($bounds:tt)+)?
) => { ... };
}
Expand description
Use this macro to write dyn ErasedHook
easily.
let _: Box<dyn_hook![(i32) -> &'hook SharedStateData<i32>]> = Box::new(use_shared_state());
#[hook]
fn use_demo() -> i32 {
let (state, updater) = use_state(0);
let updater = updater.clone();
use_effect(move |v: &i32| {
if *v < 2 {
updater.set(*v + 1)
}
}, *state);
*state
}
let _: Box<dyn_hook![() -> i32]> = Box::new(use_demo());
let _: Box<DynNonLendingHook<(), i32>> = Box::new(use_demo());