From cf406c5c9c38a24549c9fdd7e807632aef051766 Mon Sep 17 00:00:00 2001 From: Joris Guyonvarch Date: Sat, 17 Jan 2026 20:56:18 +0100 Subject: Show secondary metric when showing expiration --- src/util.rs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src') 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)), -- cgit v1.2.3