#terminal-size #bar #loading #customizable #color #automatic #adjusts

bin+lib rbar

一个简单、可定制的加载/进度条,会获取终端宽度并自动调整

7 个版本

1.1.1 2023年4月27日
1.0.4 2023年4月27日
0.2.2 2023年6月10日
0.2.1 2023年4月28日
0.0.0 2023年4月27日

#8 in #terminal-size

Download history 4/week @ 2024-03-29

每月下载量 107

MIT 许可证

6KB
58 代码行

rBar

这是一个简单的可定制的加载条,可以扩展到您的终端大小,并具有打印消息的能力

详情

当前版本为 0.2.2

str_to_color

接受一个参数,颜色,并将其转换为 ansi 转义序列
  • 支持的颜色有:黑色、红色、绿色、黄色、蓝色、品红色、青色和白色

  • 其他任何内容都将导致默认终端颜色

  • 您也可以使用自定义的 ascii 序列而不使用此功能

BarConf

  • 颜色:字符串中的 ansi 转义代码,您可以使用 get_bar_color 来实现

  • 字符:从左到右的字符列表

    [开始轮廓、填充、填充边缘、未填充、结束轮廓]

draw_bar

参数包括:百分比、消息、消息之前、条形图配置

  • 百分比是 u8 类型(通常是 0-100)
  • 消息是任意长度的字符串
  • 消息之前是一个布尔值,用于确定加载时的消息是在条形图文本之前还是之后
  • 条形图配置是前面列出的结构体

示例

use rbar;
use std::{thread, time};

// this example makes a loading bar similar to the one used by cargo
fn main() {
  for i in 0..100 {
    let bar = rbar::BarConf {
      color: rbar::str_to_color("default"),
      chars: ['[','=','>','-',']']
    };

    rbar::draw_bar(i, "Loading...", false, bar);
    thread::sleep(time::Duration::from_millis(100));
  }
}

输出

[=>--------------------------------] 1%      Loading...

稍后...

[==================================] 100%    Loading...

依赖项

~2–13MB
~129K SLoC