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

ANSI Escape Sequences provider & parser

A Rust library which provides an ANSI escape sequences (or codes, whatever you like more) and a parser allowing you to parse data from the STDIN (or /dev/tty) in the raw mode.

Sequences provider

Terminal support

Not all ANSI escape sequences are supported by all terminals. You can use the interactive-test to test them. Checkout the repository and then:

bash $ cd anes-rs $ cargo run --bin interactive-test

Examples

Click to show Cargo.toml.

toml [dependencies] anes = "0.1"

An example how to retrieve the ANSI escape sequence as a String:

```rust use anes::SaveCursorPosition;

fn main() { let string = format!("{}", SaveCursorPosition); assert_eq!(&string, "\x1B7"); } ```

An example how to use the ANSI escape sequence:

```rust 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(()) } ```

Sequences parser

You have to enable parser feature in order to use the parser. It's disabled by default.

Examples

Click to show Cargo.toml.

toml [dependencies] anes = { version = "0.1", features = ["parser"] }

An example how to parse cursor position:

```rust use anes::parser::{Parser, Sequence};

let mut parser = Parser::default(); parser.advance(b"\x1B[20;10R", false);

asserteq!(Some(Sequence::CursorPosition(10, 20)), parser.next()); assert!(parser.next().isnone()); ```

License

The ANES crate is dual-licensed under Apache 2.0 and MIT terms.

Copyrights in the ANES project are retained by their contributors. No copyright assignment is required to contribute to the ANES project.