use std::time::Duration;
pub struct TaskGuard {
inner: timer::Guard
}
pub struct Scheduler {
timer: timer::Timer
}
impl Scheduler {
pub fn new() -> Scheduler {
Scheduler {
timer: timer::Timer::new()
}
}
pub fn schedule_once<F>(&self, duration: Duration, f: F) -> TaskGuard
where F: 'static + FnMut() + Send
{
let g = self.timer.schedule_with_delay(chrono::Duration::from_std(duration).ok().unwrap(), f);
TaskGuard { inner: g }
}
pub fn schedule_periodic<F>(&self, interval: Duration, f: F) -> TaskGuard
where F: 'static + FnMut() + Send
{
let g = self.timer.schedule_repeating(chrono::Duration::from_std(interval).ok().unwrap(), f);
TaskGuard { inner: g }
}
}