From 8081e4aa7b0b3d0f54d3c8e0f064b1c35c261435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= Date: Fri, 7 May 2021 10:03:08 +0200 Subject: [PATCH] fix #3331: improve progress for last snapshot in group MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit especially for the last group, without this the progress would report: "percentage done: 100.00% (1 of 2 groups, 1 of 1 group snapshots)" instead of the more logical "percentage done: 100.00% (2 of 2 groups)" Signed-off-by: Fabian Grünbichler --- src/backup/store_progress.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/backup/store_progress.rs b/src/backup/store_progress.rs index 83696f6d..115c14c2 100644 --- a/src/backup/store_progress.rs +++ b/src/backup/store_progress.rs @@ -33,6 +33,12 @@ impl StoreProgress { impl std::fmt::Display for StoreProgress { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let current_group = if self.done_groups < self.total_groups { + self.done_groups + 1 + } else { + self.done_groups + }; + if self.group_snapshots == 0 { write!( f, @@ -49,6 +55,14 @@ impl std::fmt::Display for StoreProgress { self.done_snapshots, self.group_snapshots, ) + } else if self.done_snapshots == self.group_snapshots { + write!( + f, + "{:.2}% ({} of {} groups)", + self.percentage() * 100.0, + current_group, + self.total_groups, + ) } else { write!( f,