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}