| commit | c4b065dc13ef646bd4d068a48244f9ee300709f6 | [log] [tgz] |
|---|---|---|
| author | Jeff Vander Stoep <[email protected]> | Mon Mar 06 14:19:01 2023 +0000 |
| committer | Automerger Merge Worker <[email protected]> | Mon Mar 06 14:19:01 2023 +0000 |
| tree | 89adabe06a1be36a3671f51328fa6d10b5780a06 | |
| parent | 6ad53421c8b98154d373f40eea12e6b0f0e72454 [diff] | |
| parent | 19c5e7b78cb4752ef1eb38ad6da1ce2337a161bc [diff] |
Import anes 0.1.6 am: 0eb2bcfda7 am: 711a2c2fbc am: 19c5e7b78c Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/anes/+/2449525 Change-Id: Ia0d1dd4d0b5280c1cbf7e5246d390894379b7b67 Signed-off-by: Automerger Merge Worker <[email protected]>
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.
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
[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(()) }
You have to enable parser feature in order to use the parser. It's disabled by default.
[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());
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.