aboutsummaryrefslogtreecommitdiff
path: root/src/util.rs
diff options
context:
space:
mode:
authorJoris Guyonvarch2026-01-17 20:56:18 +0100
committerJoris Guyonvarch2026-01-17 20:56:18 +0100
commitcf406c5c9c38a24549c9fdd7e807632aef051766 (patch)
tree12d05cbbc72057327523302e3cfec5ce4e6595bd /src/util.rs
parentc90bd8eba71539a8cd58fe865de5695813a57fbd (diff)
Show secondary metric when showing expirationmain
Diffstat (limited to 'src/util.rs')
-rw-r--r--src/util.rs18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/util.rs b/src/util.rs
index 27280b2..59ef485 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -25,11 +25,17 @@ pub fn sanitize_filename_part(s: &str) -> String {
pub fn pretty_print_duration(d: Duration) -> String {
if d.num_days() > 0 {
let plural = if d.num_days() > 1 { "s" } else { "" };
- format!("{} day{}", d.num_days(), plural)
+ let remaining_hours = d.num_hours() - d.num_days() * 24;
+ let formatted_hours = if remaining_hours > 0 { format!(" {remaining_hours} h") } else { "".to_string() };
+ format!("{} day{}{}", d.num_days(), plural, formatted_hours)
} else if d.num_hours() > 0 {
- format!("{} h", d.num_hours())
+ let remaining_minutes = d.num_minutes() - d.num_hours() * 60;
+ let formatted_minutes = if remaining_minutes > 0 { format!(" {remaining_minutes} min") } else { "".to_string() };
+ format!("{} h{}", d.num_hours(), formatted_minutes)
} else if d.num_minutes() > 0 {
- format!("{} min", d.num_minutes())
+ let remaining_seconds = d.num_seconds() - d.num_minutes() * 60;
+ let formatted_seconds = if remaining_seconds > 0 { format!(" {remaining_seconds} s") } else { "".to_string() };
+ format!("{} min{}", d.num_minutes(), formatted_seconds)
} else {
format!("{} s", d.num_seconds())
}
@@ -80,7 +86,7 @@ mod tests {
);
assert_eq!(
pretty_print_duration(Duration::hours(30)),
- "1 day".to_string()
+ "1 day 6 h".to_string()
);
assert_eq!(
pretty_print_duration(Duration::days(1)),
@@ -92,7 +98,7 @@ mod tests {
);
assert_eq!(
pretty_print_duration(Duration::minutes(70)),
- "1 h".to_string()
+ "1 h 10 min".to_string()
);
assert_eq!(
pretty_print_duration(Duration::minutes(44)),
@@ -100,7 +106,7 @@ mod tests {
);
assert_eq!(
pretty_print_duration(Duration::seconds(100)),
- "1 min".to_string()
+ "1 min 40 s".to_string()
);
assert_eq!(
pretty_print_duration(Duration::seconds(7)),