zebra_chain/fmt/
time.rs
1use std::time::Duration;
4
5pub const MIN_SECONDS_ONLY_TIME: Duration = Duration::from_secs(5);
7
8pub fn duration_short(duration: impl Into<Duration>) -> String {
10 let duration = duration.into();
11
12 if duration >= MIN_SECONDS_ONLY_TIME {
13 humantime_seconds(duration)
14 } else {
15 humantime_milliseconds(duration)
16 }
17}
18
19pub fn humantime_seconds(duration: impl Into<Duration>) -> String {
23 let duration = duration.into();
24
25 let duration = Duration::from_secs(duration.as_secs());
27
28 let duration = humantime::format_duration(duration);
29
30 format!("{duration}")
31}
32
33pub fn humantime_milliseconds(duration: impl Into<Duration>) -> String {
35 let duration = duration.into();
36
37 let duration_secs = Duration::from_secs(duration.as_secs());
39 let duration_millis = Duration::from_millis(duration.subsec_millis().into());
40
41 let duration = humantime::format_duration(duration_secs + duration_millis);
42
43 format!("{duration}")
44}