rust: add `Progress` trait for progress bars
This will be used in the next few changes to introduce a progress bar for
the `hg update` fastpath.
--- a/rust/hg-core/src/lib.rs Mon Sep 30 19:15:19 2024 +0200
+++ b/rust/hg-core/src/lib.rs Mon Sep 30 16:02:30 2024 +0200
@@ -35,6 +35,7 @@
pub mod lock;
pub mod logging;
pub mod operations;
+pub mod progress;
pub mod revset;
pub mod utils;
pub mod vfs;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rust/hg-core/src/progress.rs Mon Sep 30 16:02:30 2024 +0200
@@ -0,0 +1,11 @@
+//! Progress-bar related things
+
+/// A generic determinate progress bar trait
+pub trait Progress: Send + Sync + 'static {
+ /// Set the current position and optionally the total
+ fn update(&self, pos: u64, total: Option<u64>);
+ /// Increment the current position and optionally the total
+ fn increment(&self, step: u64, total: Option<u64>);
+ /// Declare that progress is over and the progress bar should be deleted
+ fn complete(self);
+}