1个不稳定版本
0.1.0 | 2023年7月12日 |
---|
#97 in #progress-bar
14KB
252 代码行
multi-progress
multi-progress是一个库,用于在终端中显示多个进度条以及日志输出。
用法
- 为您的任务实现
TaskProgress
特质。 - 使用
ProgressBar
实现(由bar模块提供)创建一个MultiProgressBar
。 - 在需要时调用
MultiProgressBar::draw
来绘制进度条。
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();
依赖项
~1–12MB
~87K SLoC