|
|
2 years ago | |
|---|---|---|
| .. | ||
| benches | 2 years ago | |
| examples | 2 years ago | |
| src | 2 years ago | |
| tests | 2 years ago | |
| .cargo_vcs_info.json | 2 years ago | |
| Android.bp | 2 years ago | |
| Cargo.lock | 2 years ago | |
| Cargo.toml | 2 years ago | |
| Cargo.toml.orig | 2 years ago | |
| LICENSE | 2 years ago | |
| LICENSE-APACHE | 2 years ago | |
| LICENSE-MIT | 2 years ago | |
| METADATA | 2 years ago | |
| MODULE_LICENSE_APACHE2 | 2 years ago | |
| OWNERS | 2 years ago | |
| README.md | 2 years ago | |
| cargo2android.json | 2 years ago | |
README.md
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:
$ cd anes-rs
$ cargo run --bin interactive-test
Examples
Click to show Cargo.toml.
[dependencies]
anes = "0.1"
An example how to retrieve the ANSI escape sequence as a String:
use anes::SaveCursorPosition;
fn main() {
let string = format!("{}", SaveCursorPosition);
assert_eq!(&string, "\x1B7");
}
An example how to use the ANSI escape sequence:
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.
[dependencies]
anes = { version = "0.1", features = ["parser"] }
An example how to parse cursor position:
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());
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.