1use std::time::Duration;
2
3pub fn format_duration(duration: Duration) -> String {
4 let secs = duration.as_secs();
5 let millis = duration.subsec_millis();
6 let hours = secs / 3600;
7 let minutes = (secs % 3600) / 60;
8 let seconds = secs % 60;
9 if hours > 0 {
10 format!("{:02}:{:02}:{:02}.{:03}", hours, minutes, seconds, millis)
11 } else if minutes > 0 {
12 format!("{:02}:{:02}.{:03}", minutes, seconds, millis)
13 } else {
14 format!("{:02}.{:03}", seconds, millis)
15 }
16}
17pub fn format_duration_secs(d: Duration) -> String {
19 let secs = d.as_secs();
20 let millis = d.subsec_millis();
21 format!("{}.{:03} secs", secs, millis)
22}
23
24pub fn format_bytes(bytes: usize) -> String {
26 if bytes < 1024 {
27 format!("{} B", bytes)
28 } else if bytes < 1024 * 1024 {
29 format!("{:.2} KB", bytes as f64 / 1024.0)
30 } else if bytes < 1024 * 1024 * 1024 {
31 format!("{:.2} MB", bytes as f64 / (1024.0 * 1024.0))
32 } else {
33 format!("{:.2} GB", bytes as f64 / (1024.0 * 1024.0 * 1024.0))
34 }
35}