40 个版本
0.15.8 | 2024年1月9日 |
---|---|
0.15.7 | 2023年5月21日 |
0.15.5 | 2023年1月14日 |
0.15.3 | 2022年12月27日 |
0.5.0 | 2017年6月28日 |
#10 in 命令行界面
2,849,058 每月下载量
用于 4,203 个 crate (897 直接)
115KB
3K SLoC
console
console 是一个 Rust 库,提供对各种终端功能的访问,以便您构建更美观的命令行界面。它包含各种工具和实用程序,用于处理终端和格式化文本。
与家族中的其他库搭配使用最佳
终端访问
终端通过 console::Term
类型进行抽象。它可以直接提供对连接的终端的访问,或者通过缓冲命令。但是,在 Windows 上,由于光标移动目前是直接传递的,所以缓冲终端不会被完全缓冲。
示例用法
use std::thread;
use std::time::Duration;
use console::Term;
let term = Term::stdout();
term.write_line("Hello World!")?;
thread::sleep(Duration::from_millis(2000));
term.clear_line()?;
颜色和样式
console
会自动检测是否使用颜色,基于 tty 标志。它还提供了高级包装器来对文本和其他可以与 style
函数和实用类型一起显示的内容进行样式化。
示例用法
use console::style;
println!("This is {} neat", style("quite").cyan());
您还可以存储样式,并在以后将其应用到文本上
use console::Style;
let cyan = Style::new().cyan();
println!("This is {} neat", cyan.apply_to("quite"));
处理 ANSI 代码
此 crate 提供了 strip_ansi_codes
函数,用于从字符串中删除 ANSI 代码,以及 measure_text_width
函数,用于计算字符串在终端中的显示宽度。这两个函数结合在一起,对更复杂的格式化非常有用。
Unicode 宽度支持
默认情况下,此 crate 依赖于 unicode-width
crate 来计算终端字符的宽度。如果您不需要此功能,可以禁用 unicode-width
功能,这将减少依赖项。
许可证: MIT
依赖项
~0.3–8.5MB
~58K SLoC