Expand description
§multi-progress
multi-progress is a library to show multiple progress bars along with log outputs in terminal.
§Usage
- Implement TaskProgress trait for your task.
- Call MultiProgressBar::new with a ProgressBar implementation (provided in the bar module).
- Call MultiProgressBar::draw to draw progress bars when needed.
use multi_progressbar::{
MultiProgressBar, TaskProgress,
bar::classic::ClassicProgressBar
};
struct Task {
name: String,
progress: u64,
total: u64,
}
impl TaskProgress for Task {
fn progress(&self) -> (u64, u64) {
(self.progress, self.total)
}
fn after(&self) -> Option<String> {
Some(format!("{}/{} completed", self.progress, self.total))
}
fn before(&self) -> Option<String> {
Some(self.name.clone())
}
}
let mp = MultiProgressBar::new(ClassicProgressBar::new());
let task1 = Task {
name: "task1".to_string(),
progress: 0,
total: 100,
};
let task2 = Task {
name: "task2".to_string(),
progress: 33,
total: 100,
};
let tasks = vec![task1, task2];
mp.draw(&tasks).unwrap();
Modules§
- bar
- bar module contains premade progress bar styles.
Structs§
- Multi
Progress Bar - MultiProgress is the main struct of this library. It handles drawing progress bars and log outputs.
Traits§
- Progress
Bar - ProgressBar is an abstraction for the appearance of a progress bar.
- Task
Progress - Task is abstraction for one single running task.