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

Download history 430631/week @ 2024-04-08 443454/week @ 2024-04-15 467218/week @ 2024-04-22 439616/week @ 2024-04-29 444790/week @ 2024-05-06 474650/week @ 2024-05-13 463338/week @ 2024-05-20 483771/week @ 2024-05-27 556563/week @ 2024-06-03 578330/week @ 2024-06-10 553223/week @ 2024-06-17 583079/week @ 2024-06-24 542452/week @ 2024-07-01 603170/week @ 2024-07-08 590675/week @ 2024-07-15 565545/week @ 2024-07-22

2,333,071 每月下载量
3,055 个crate中使用 (3 直接)

MIT/Apache

82KB
1.5K SLoC

Stable Status Beta Status Nightly Status crates.io docs.rs MIT Apache 2.0 LOC

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.0MIT条款双许可。

ANES项目中的版权归其贡献者所有。不需要进行版权转让即可为ANES项目做出贡献。

依赖关系