2 个版本
0.1.15 | 2023年2月12日 |
---|---|
0.1.14 | 2023年2月7日 |
0.1.11 |
|
#381 in 命令行界面
59 每月下载次数
在 chunker 中使用
10KB
174 代码行
progression
简约(174 SLOC)且快速(更新受限制)的 Rust 进度条。
00:00:05 475 / 1,000 [########################## ] 48% ETA 00:00:06
00:00:04 394 / 1,000 [=====================> ] 39% ETA 00:00:07
用法
cargo add progression
依赖项是可选的(使用 cargo add --no-default-features progression
或在 Cargo.toml
中设置 default-features = false
)禁用
terminal_size
— 获取终端宽度num-format
— 使用分隔符格式化数字
示例
use std::{thread, time::Duration};
fn main() {
// Default
for _ in progression::bar(0..1_000) {
thread::sleep(Duration::from_millis(1));
}
// Cargo style
for _ in progression::bar_with_config(0..1_000, progression::Config::cargo()) {
thread::sleep(Duration::from_millis(1));
}
// Unicode style
for _ in progression::bar_with_config(0..1_000, progression::Config::unicode()) {
thread::sleep(Duration::from_millis(1));
}
// Uses `slice.chunks` internally for lower overhead on large numbers of items
for _ in progression::bar_chunks(10, &[0; 1_000]) {
thread::sleep(Duration::from_millis(1));
}
// Custom
for _ in progression::bar_with_config(0..1_000,
progression::Config { style: progression::Style::Mono('·'), ..Default::default() }) {
thread::sleep(Duration::from_millis(1));
}
// Manual
let items = vec![1, 2, 3, 4, 5];
let bar = progression::Bar::new(items.len() as u64,
progression::Config { prefix: "(items) ", ..progression::Config::cargo() });
for _ in items {
thread::sleep(Duration::from_millis(100));
bar.inc(1);
}
bar.finish();
}
依赖项
~2–14MB
~140K SLoC