Skip to main content

sequoia_core/
time.rs

1use std::time::Duration;
2
3pub trait DurationExt {
4    fn ms(self) -> Duration;
5
6    fn secs(self) -> Duration;
7}
8
9impl DurationExt for u64 {
10    fn ms(self) -> Duration {
11        Duration::from_millis(self)
12    }
13
14    fn secs(self) -> Duration {
15        Duration::from_secs(self)
16    }
17}
18
19impl DurationExt for f64 {
20    fn ms(self) -> Duration {
21        Duration::from_secs_f64(self / 1000.0)
22    }
23
24    fn secs(self) -> Duration {
25        Duration::from_secs_f64(self)
26    }
27}
28
29#[cfg(test)]
30mod tests {
31    use super::*;
32
33    #[test]
34    fn conversions() {
35        assert_eq!(250.ms(), Duration::from_millis(250));
36        assert_eq!(2.secs(), Duration::from_secs(2));
37
38        assert_eq!(1500.0.ms(), Duration::from_millis(1500));
39        assert_eq!(1.5.secs(), Duration::from_millis(1500));
40    }
41}