multi-progress is a library to show multiple progress bars along with log outputs in terminal.
TaskProgress
trait for your task.MultiProgressBar
with a ProgressBar
implementation (provided in the bar module).MultiProgressBar::draw
to draw progress bars when needed.```rust 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
let mp = MultiProgressBar::new(ClassicProgressBar::new()); let task1 = Task { name: "task1".tostring(), progress: 0, total: 100, }; let task2 = Task { name: "task2".tostring(), progress: 33, total: 100, }; let tasks = vec![task1, task2]; mp.draw(&tasks).unwrap(); ```