From 79923dfbb4e29d5cfbf556abeb84d9beb799c052 Mon Sep 17 00:00:00 2001 From: Erik Kundt Date: Mon, 26 Feb 2024 10:07:26 +0100 Subject: [PATCH] lib: Add formatable span for list progress --- src/flux/ui/span.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/flux/ui/span.rs b/src/flux/ui/span.rs index 4c46d01e..6e0c7b73 100644 --- a/src/flux/ui/span.rs +++ b/src/flux/ui/span.rs @@ -55,3 +55,21 @@ pub fn notification_id(content: String) -> Span<'static> { pub fn notification_type(content: String) -> Span<'static> { default(content).style(style::gray().dim()) } + +pub fn progress(step: usize, len: usize, fill_zeros: bool) -> Span<'static> { + if fill_zeros { + if len > 10 { + badge(format!("{:-02}/{:-02}", step, len)) + } else if len > 100 { + badge(format!("{:-03}/{:-03}", step, len)) + } else if len > 1000 { + badge(format!("{:-04}/{:-04}", step, len)) + } else if len > 10000 { + badge(format!("{:-05}/{:-05}", step, len)) + } else { + badge(format!("{}/{}", step, len)) + } + } else { + badge(format!("{}/{}", step, len)) + } +}