fix #3331: improve progress for last snapshot in group

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 <f.gruenbichler@proxmox.com>
This commit is contained in:
Fabian Grünbichler 2021-05-07 10:03:08 +02:00 committed by Dietmar Maurer
parent d8769d659e
commit 8081e4aa7b
1 changed files with 14 additions and 0 deletions

View File

@ -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,