use super::*;
#[derive(CustomDebug, Data, Default, New)]
pub struct HookContextInner {
#[debug(skip)]
#[get(pub)]
#[get_mut(pub)]
#[set(pub)]
pub hooks: Vec<Box<dyn Any>>,
#[get(pub, type(copy))]
#[get_mut(pub)]
#[set(pub)]
pub arm_changed: usize,
#[get(pub, type(copy))]
#[get_mut(pub)]
#[set(pub)]
pub hook_index: usize,
#[debug(skip)]
#[get(pub)]
#[get_mut(pub)]
#[set(pub)]
pub cleanups: Vec<Box<dyn FnOnce()>>,
}
#[derive(CustomDebug, Data, New)]
pub struct HookContext {
#[debug(skip)]
#[get(pub)]
#[get_mut(pub)]
#[set(pub)]
pub inner: Rc<RefCell<HookContextInner>>,
}
#[derive(Clone, Copy, Data, Debug, Default, Eq, Hash, New, Ord, PartialEq, PartialOrd)]
pub struct IntervalHandle {
#[get(type(copy))]
#[get_mut(pub)]
#[set(pub)]
pub(crate) interval_id: i32,
}