Track progress of any type in your Rust application.
Allows you to track part of your work with individual scales.
```rust use std::{fmt::Debug, thread, time::Duration}; use error::CloseError; use progress_monitor::prelude::*;
fn main() {
// Numeric work
let mut mon = CallbackProgressMonitor::new("root", 300, |a: &NumericWork
// Set work
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
pub enum MyWork {
ResourcesLoaded,
ConnectionEstablished,
SystemInitialized,
}
let mut mon = CallbackProgressMonitor::new(
"root",
&[MyWork::ResourcesLoaded, MyWork::SystemInitialized],
|a: &SetWork<MyWork>, w: &SetWork<MyWork>| println!("{}/{}", w, a),
);
thread::sleep(Duration::from_secs(1));
mon.worked(MyWork::ResourcesLoaded);
thread::sleep(Duration::from_secs(1));
mon.worked(MyWork::ConnectionEstablished);
thread::sleep(Duration::from_secs(1));
mon.worked(MyWork::SystemInitialized);
mon.close().unwrap();
} ```
The minimum supported rust version is 1.60.0