You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
818 B
Rust
40 lines
818 B
Rust
pub struct SimpleProgress {
|
|
pub current: u64,
|
|
pub total: u64,
|
|
}
|
|
|
|
impl Default for SimpleProgress {
|
|
fn default() -> Self {
|
|
Self {
|
|
total: 100,
|
|
current: 0,
|
|
}
|
|
}
|
|
}
|
|
|
|
impl SimpleProgress {
|
|
pub fn new(total: u64) -> Self {
|
|
Self { total, current: 0 }
|
|
}
|
|
|
|
/// Sets the total count
|
|
pub fn set_total(&mut self, total: u64) {
|
|
self.total = total;
|
|
}
|
|
|
|
/// Increments the current progress by 1
|
|
pub fn tick(&mut self) {
|
|
self.current += 1;
|
|
}
|
|
|
|
/// Sets the current progress to a defined value
|
|
pub fn set_current(&mut self, current: u64) {
|
|
self.current = current;
|
|
}
|
|
|
|
/// Returns the total progress in percent
|
|
pub fn percent(&self) -> f64 {
|
|
(self.current as f64) / (self.total as f64)
|
|
}
|
|
}
|