3个版本
0.1.2 | 2019年7月22日 |
---|---|
0.1.1 | 2019年7月21日 |
0.1.0 | 2019年7月20日 |
#5 in #转义
19KB
348 行
终端转义
客户端应用程序控制符合ANSI转义序列的终端设备的一些工具。
extern crate terminal_escapes;
use terminal_escapes::{
Sequence::*,
Attribute::*,
Color
};
fn main() {
println!(
"{}Hello {}World!{}",
SetAttributes(&[Foreground(Color::Red)]),
SetAttributes(&[Foreground(Color::Blue), Bright]),
SetAttributes(&[Default]),
);
}
目前支持的转义序列相当有限,并且库还没有经过广泛的测试。我很快就会回到这个项目上来,以便有更全面的协议实现。在此期间,欢迎您参与。
非交互式序列
如果您只计划使用这个crate来格式化带有颜色的输出,那么您可以直接使用 Sequence
枚举将转义序列放入输出流中。
print!("{}", Sequence::SetAttributes(Background(Color::Green)));
与终端的交互
转义序列也可以用来与终端交互,就像常规的客户端-服务器协议一样。在这种情况下,使用 Device
结构的设置会更复杂,因为它需要访问程序输入流。
路线图
以下是我想在将来添加到这个crate的一些元素
- 备用屏幕缓冲区支持。
- 非缓冲输入。
- 异步事件处理键盘/鼠标/调整大小等事件。
- 等等。
许可
根据您选择,许可协议为
- Apache许可证第2版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据Apache-2.0许可证定义,应双许可如上所述,无任何额外条款或条件。