10个版本
0.2.0 | 2023年11月27日 |
---|---|
0.1.6 | 2019年11月29日 |
0.1.4 | 2019年10月31日 |
0.0.2 | 2019年10月25日 |
#3 in #sequence
2,333,071 每月下载量
在 3,055 个crate中使用 (3 直接)
82KB
1.5K SLoC
ANSI转义序列提供程序及解析器
一个Rust库,提供ANSI转义序列(或代码,看您喜欢哪个)和一个解析器,允许您以原始模式从STDIN(或/dev/tty
)解析数据。
序列提供程序
终端支持
并非所有终端都支持所有ANSI转义序列。您可以使用交互式测试来测试它们。查看仓库,然后
$ cd anes-rs
$ cargo run --bin interactive-test
示例
点击显示Cargo.toml。
[dependencies]
anes = "0.1"
如何检索ANSI转义序列作为String
的示例
use anes::SaveCursorPosition;
fn main() {
let string = format!("{}", SaveCursorPosition);
assert_eq!(&string, "\x1B7");
}
如何使用ANSI转义序列的示例
use std::io::{Result, Write};
use anes::execute;
fn main() -> Result<()> {
let mut stdout = std::io::stdout();
execute!(
&mut stdout,
anes::SaveCursorPosition,
anes::MoveCursorTo(10, 10),
anes::RestoreCursorPosition
)?;
Ok(())
}
序列解析器
您必须启用parser
功能才能使用解析器。默认情况下是禁用的。
示例
点击显示Cargo.toml。
[dependencies]
anes = { version = "0.1", features = ["parser"] }
如何解析光标位置的示例
use anes::parser::{Parser, Sequence};
let mut parser = Parser::default();
parser.advance(b"\x1B[20;10R", false);
assert_eq!(Some(Sequence::CursorPosition(10, 20)), parser.next());
assert!(parser.next().is_none());
许可证
ANEScrate根据Apache 2.0和MIT条款双许可。
ANES项目中的版权归其贡献者所有。不需要进行版权转让即可为ANES项目做出贡献。