use crate::*;
#[derive(Clone, Copy, Data, New)]
pub(crate) struct IntervalHandle {
#[get(pub(crate), type(copy))]
#[set(pub(crate))]
pub(crate) interval_id: i32,
}
#[derive(Clone, Copy, Data, New)]
pub(crate) struct UseStopwatch {
#[get(pub, type(copy))]
pub(crate) seconds: Signal<i32>,
#[get(pub, type(copy))]
pub(crate) running: Signal<bool>,
#[get(pub, type(copy))]
pub(crate) handle: Signal<Option<IntervalHandle>>,
}
#[derive(Clone, Copy, Data, New)]
pub(crate) struct UseCountdown {
#[get(pub, type(copy))]
pub(crate) total: Signal<i32>,
#[get(pub, type(copy))]
pub(crate) remaining: Signal<i32>,
#[get(pub, type(copy))]
pub(crate) running: Signal<bool>,
#[get(pub, type(copy))]
pub(crate) handle: Signal<Option<IntervalHandle>>,
#[get(pub, type(copy))]
pub(crate) input: Signal<String>,
}