From f867ef9c4a689a482e9a1a7ec530536c356aea8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= Date: Mon, 30 Nov 2020 16:27:20 +0100 Subject: [PATCH] progress: add format variants MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit for iterating over a single group, or iterating just on the group level Signed-off-by: Fabian Grünbichler --- src/backup/datastore.rs | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/src/backup/datastore.rs b/src/backup/datastore.rs index c8a33043..8c212ab1 100644 --- a/src/backup/datastore.rs +++ b/src/backup/datastore.rs @@ -795,14 +795,32 @@ impl StoreProgress { impl std::fmt::Display for StoreProgress { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!( - f, - "{:.2}% ({} of {} groups, {} of {} group snapshots)", - self.percentage() * 100.0, - self.done_groups, - self.total_groups, - self.done_snapshots, - self.group_snapshots, - ) + if self.group_snapshots == 0 { + write!( + f, + "{:.2}% ({} of {} groups)", + self.percentage() * 100.0, + self.done_groups, + self.total_groups, + ) + } else if self.total_groups == 1 { + write!( + f, + "{:.2}% ({} of {} snapshots)", + self.percentage() * 100.0, + self.done_snapshots, + self.group_snapshots, + ) + } else { + write!( + f, + "{:.2}% ({} of {} groups, {} of {} group snapshots)", + self.percentage() * 100.0, + self.done_groups, + self.total_groups, + self.done_snapshots, + self.group_snapshots, + ) + } } }