use crate::*;
#[derive(CustomDebug, Data, Default, New)]
pub(crate) struct HookContextInner {
#[debug(skip)]
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) hooks: Vec<Box<dyn Any>>,
#[get(pub(crate), type(copy))]
#[set(pub(crate))]
pub(crate) arm_changed: usize,
#[get(pub(crate), type(copy))]
#[set(pub(crate))]
pub(crate) hook_index: usize,
#[debug(skip)]
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) cleanups: Vec<Box<dyn FnOnce()>>,
}
#[derive(CustomDebug, Data, New)]
pub struct HookContext {
#[debug(skip)]
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) inner: Rc<RefCell<HookContextInner>>,
}