23 个版本 (11 个破坏性更新)

0.11.0-beta2022 年 2 月 28 日
0.9.1-beta2022 年 2 月 20 日

#703 in 命令行界面

MIT 许可证

38KB
758

stati

Rust 进度条库

警告

此 crate 仍在开发中,尽管应该可以正常使用,但任何时间都可能出现变化

crate 功能

  • 公平性
    • 启用使用 parking_lotFairMutex
    • (增加一些开销但可能解决一些问题?)
  • 夜间
    • 启用使用 nighlty rust (generic_associated_types) 进行一些额外优化

安装

将此行添加到您的 Cargo.toml

stati = "0.11.0-beta"

使用

这是一个创建和进度条进度简单示例

use std::thread;

extern crate stati;

use stati::prelude::*;
use stati::BarManager;

let mut manager = BarManager::new();
let mut bar = manager.register(bars::SimpleBar::new(&"Working...", 100));
for i in 0..=100 {
    bar.bar().set_progress(i);
    manager.print();
    thread::sleep_ms(100);
}

要使用进度条打印文本,请使用 printlnprint 宏,如下所示

let mut manager = BarManager::new();
stati::println!(manager, "Made some progress");

为什么?

我过去使用的许多进度条都存在一些问题,如不能同时有多个进度条,或者在进度条运行时不能打印其他消息。这个 crate 旨在解决所有这些问题,并且通常使使用更加愉快。

许可证

MIT,请参阅 LICENSE

待办事项

  • 添加有趣的 spini spinner wheeeeeeeeeeeeeeeeee
  • 非夜间支持
  • 添加可选的夜间功能
  • 添加构建模式支持以制作进度条
  • 多线程!
  • Windows 支持
  • 改进文档
  • 改进测试
  • 改进示例
  • 更好的迭代跟踪
  • 创建类似于 indicatif 的字符串格式化条
  • 更新以使用 Vec::drain_filter 一旦稳定化
  • 使条使用更好的格式化

依赖关系

~0.4–5.5MB
~12K SLoC