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