1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use std::time::Duration;
pub fn format(duration: &Duration) -> String {
match duration.as_micros() > 99 {
false => format!("{}\u{00b5}s", duration.as_micros()),
true => match duration.as_millis() > 99 {
false => format!("{}ms", duration.as_millis()),
true => match duration.as_secs() > 99 {
false => format!("{}s", duration.as_secs()),
true => match duration.as_secs() > 5940 {
false => format!("{}m", duration.as_secs() / 60),
true => match duration.as_secs() > 356400 {
false => format!("{}h", duration.as_secs() / 3600),
true => match duration.as_secs() > 8553600 {
false => format!("{}d", duration.as_secs() / 86400),
true => format!("{} months", duration.as_secs() / (86400 * 30)),
},
},
},
},
},
}
}