use std::time::Duration;
pub trait NumTimeDuration: num_traits::PrimInt {
fn nanoseconds(&self) -> Duration;
fn microseconds(&self) -> Duration;
fn milliseconds(&self) -> Duration;
fn seconds(&self) -> Duration;
fn minutes(&self) -> Duration;
fn hours(&self) -> Duration;
fn days(&self) -> Duration;
fn weeks(&self) -> Duration;
}
impl NumTimeDuration for i32 {
fn nanoseconds(&self) -> Duration {
Duration::from_nanos(*self as u64)
}
fn microseconds(&self) -> Duration {
Duration::from_micros(*self as u64)
}
fn milliseconds(&self) -> Duration {
Duration::from_millis(*self as u64)
}
fn seconds(&self) -> Duration {
Duration::from_secs(*self as u64)
}
fn minutes(&self) -> Duration {
let seconds: Duration = self.seconds();
60 * seconds
}
fn hours(&self) -> Duration {
let minutes: Duration = self.minutes();
60 * minutes
}
fn days(&self) -> Duration {
let hours: Duration = self.hours();
24 * hours
}
fn weeks(&self) -> Duration {
let days: Duration = self.days();
7 * days
}
}