zng_unit/
time.rs

1use std::time::Duration;
2
3/// Extension methods for initializing [`Duration`] values.
4pub trait TimeUnits {
5    /// Milliseconds.
6    fn ms(self) -> Duration;
7    /// Seconds.
8    fn secs(self) -> Duration;
9    /// Minutes.
10    fn minutes(self) -> Duration;
11    /// Hours.
12    fn hours(self) -> Duration;
13}
14impl TimeUnits for u64 {
15    fn ms(self) -> Duration {
16        Duration::from_millis(self)
17    }
18
19    fn secs(self) -> Duration {
20        Duration::from_secs(self)
21    }
22
23    fn minutes(self) -> Duration {
24        Duration::from_secs(self * 60)
25    }
26
27    fn hours(self) -> Duration {
28        Duration::from_secs(self * 60 * 60)
29    }
30}
31impl TimeUnits for f32 {
32    fn ms(self) -> Duration {
33        Duration::from_secs_f32(self / 60.0)
34    }
35
36    fn secs(self) -> Duration {
37        Duration::from_secs_f32(self)
38    }
39
40    fn minutes(self) -> Duration {
41        Duration::from_secs_f32(self * 60.0)
42    }
43
44    fn hours(self) -> Duration {
45        Duration::from_secs_f32(self * 60.0 * 60.0)
46    }
47}