rust/hg-core/src/progress.rs
author Rapha?l Gom?s <rgomes@octobus.net>
Mon, 30 Sep 2024 16:02:30 +0200
changeset 52037 3ae7c43ad8aa
child 52038 92e23ba257d1
permissions -rw-r--r--
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.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
52037
3ae7c43ad8aa rust: add `Progress` trait for progress bars
Rapha?l Gom?s <rgomes@octobus.net>
parents:
diff changeset
     1
//! Progress-bar related things
3ae7c43ad8aa rust: add `Progress` trait for progress bars
Rapha?l Gom?s <rgomes@octobus.net>
parents:
diff changeset
     2
3ae7c43ad8aa rust: add `Progress` trait for progress bars
Rapha?l Gom?s <rgomes@octobus.net>
parents:
diff changeset
     3
/// A generic determinate progress bar trait
3ae7c43ad8aa rust: add `Progress` trait for progress bars
Rapha?l Gom?s <rgomes@octobus.net>
parents:
diff changeset
     4
pub trait Progress: Send + Sync + 'static {
3ae7c43ad8aa rust: add `Progress` trait for progress bars
Rapha?l Gom?s <rgomes@octobus.net>
parents:
diff changeset
     5
    /// Set the current position and optionally the total
3ae7c43ad8aa rust: add `Progress` trait for progress bars
Rapha?l Gom?s <rgomes@octobus.net>
parents:
diff changeset
     6
    fn update(&self, pos: u64, total: Option<u64>);
3ae7c43ad8aa rust: add `Progress` trait for progress bars
Rapha?l Gom?s <rgomes@octobus.net>
parents:
diff changeset
     7
    /// Increment the current position and optionally the total
3ae7c43ad8aa rust: add `Progress` trait for progress bars
Rapha?l Gom?s <rgomes@octobus.net>
parents:
diff changeset
     8
    fn increment(&self, step: u64, total: Option<u64>);
3ae7c43ad8aa rust: add `Progress` trait for progress bars
Rapha?l Gom?s <rgomes@octobus.net>
parents:
diff changeset
     9
    /// Declare that progress is over and the progress bar should be deleted
3ae7c43ad8aa rust: add `Progress` trait for progress bars
Rapha?l Gom?s <rgomes@octobus.net>
parents:
diff changeset
    10
    fn complete(self);
3ae7c43ad8aa rust: add `Progress` trait for progress bars
Rapha?l Gom?s <rgomes@octobus.net>
parents:
diff changeset
    11
}