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.
35 lines
708 B
Rust
35 lines
708 B
Rust
3 years ago
|
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 }
|
||
|
}
|
||
|
|
||
|
/// 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)
|
||
|
}
|
||
|
}
|