12 个版本
0.3.9 | 2024 年 3 月 3 日 |
---|---|
0.3.8 | 2023 年 12 月 2 日 |
0.3.7 | 2023 年 7 月 29 日 |
0.3.5 | 2022 年 10 月 26 日 |
0.3.3 | 2022 年 7 月 30 日 |
#256 在 命令行界面
284 每月下载量
在 cnsprcy 中使用
175KB
3K SLoC
用于编写交互式 CLI 程序的 WIP 库。
目前非常不稳定,API 有点不寻常。随着使用和实现缺失的功能,将进行重大更改。旨在实现 Python click
库提供而 clap
缺失的功能。在此基础上,提供与 CLI 交互的有用抽象。
功能
- 美观的
status
、info
、warn
和error
消息 - 方便的 特质 和 方法 用于在可用时打印颜色转义码
- 打印
List
和Tree
- 使用颜色
Palette
简化处理终端颜色 - 请求和验证用户 [输入]
- 启动
$EDITOR
来 [编辑] 纯文本和键入数据 - 动画旋转器(使用
tokio
用于async
项目,否则使用std::thread
)
范围之外
- 非 UNIX 平台
- 配置文件处理
- 参数解析(打算与
clap
一起使用) - 进度条(目前如此)
curses
-风格的 文本用户界面(TUI)将画布绘制到终端
最初,这个库被编写为 termcolor 的扩展,但现在所需的功能已被吸收/复制/重写。因此,一些想法和设计借鉴于此,应该给予相应的认可。
在执行 cargo test
时捕获输出
如 core::Stream
所述,存在一个问题,即 cargo test
只能捕获使用 print!
、println!
、eprint!
和 eprintln!
宏的输出(参见 rust#12309 和 rust#90785)。
作为一个解决方案,这个crate提供了一个 test_capture
功能标志,它使得所有输出都通过这些宏进行。这虽然不是很好(参见 core::Stream
了解详情),但它确实使得 cargo test
能够正确地捕获输出。
幸运的是,有一种方法可以在需要时才启用此功能:只需将此crate作为 开发依赖 同时 添加,并在该条目上 仅 启用 test_capture
功能,而不是在常规依赖项上,如下所示
[dependencies]
conciliator = "…"
[dev-dependencies.conciliator]
version = "…"
features = ["test_capture"]
这样,test_capture
功能将仅在编译 "测试、示例和基准测试" 时启用(参见 cargo 参考),而不是在构建二进制文件时。
依赖关系
~2–12MB
~152K SLoC