2个版本

使用旧版Rust 2015

0.1.1 2017年9月3日
0.1.0 2017年6月29日

#8 in #bars


pijul 中使用

GPL-2.0+

5KB
59

Rust CLI程序的Git-like进度条

一个小型库,用于在终端程序中显示类似Git的进度条。

作者认为,Git操作(如clone和pull)的输出既不太少也不太多——恰到好处。特别是,对于可能长时间运行的网络操作,显示进度是很有必要的。

待办事项

  • 将吞吐量添加到进度中

示例

remote: Counting objects: 218676, done.
remote: Compressing objects: 100% (58659/58659), done.
remote: Total 218676 (delta 162851), reused 213808 (delta 158032)
Receiving objects: 100% (218676/218676), done.
Resolving deltas: 100% (162851/162851), done.

lib.rs:

progrs:一个用于在终端程序中显示进度的小型库

目前有一些库可以用于进度显示,但作者认为这些库做的是“几乎”正确的——要么它们占据了太多的屏幕空间(没有坚持每件应该使用进度的事情占用一行),要么它们尝试左右对齐内容。

在作者谦逊的意见中,信息量与屏幕空间之间的最佳示例是Git进度输出(在克隆、拉取等操作时)。它使用每件东西一行,并且可能显示完成百分比(在已知的情况下)甚至吞吐量(对于网络传输)。

此库模仿Git显示进度的方法。

示例

let (mut n, nobjects) = (0, 218676);
let mut p = progrs::start("Collecting objects", Some(nobjects));
while n < nobjects {
    n += collect_more_objects();
    p.display(n);
}
p.stop("done");

这将产生以下输出

Collecting objects: 100% (218676/218676), done.

待办事项

  • 将吞吐量显示添加到 Progress

无运行时依赖