diff options
Diffstat (limited to 'vendor/anes/README.md')
-rw-r--r-- | vendor/anes/README.md | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/vendor/anes/README.md b/vendor/anes/README.md new file mode 100644 index 000000000..6a3c23676 --- /dev/null +++ b/vendor/anes/README.md @@ -0,0 +1,129 @@ +[![Stable Status][actions-stable-badge]][actions-link] +[![Beta Status][actions-beta-badge]][actions-link] +[![Nightly Status][actions-nightly-badge]][actions-link] +[![crates.io][crates-badge]][crates-link] +[![docs.rs][docs-badge]][docs-link] +[![MIT][mit-license-badge]][mit-license-link] +[![Apache 2.0][apache-license-badge]][apache-license-link] +![LOC][loc-badge] + +# 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](https://github.com/zrzka/anes-rs/tree/master/interactive-test) to test them. +Checkout the repository and then: + +```bash +$ cd anes-rs +$ cargo run --bin interactive-test +``` + +### Examples + +<details> +<summary> +Click to show Cargo.toml. +</summary> + +```toml +[dependencies] +anes = "0.1" +``` + +</details> +<p></p> + + +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 + +<details> +<summary> +Click to show Cargo.toml. +</summary> + +```toml +[dependencies] +anes = { version = "0.1", features = ["parser"] } +``` + +</details> +<p></p> + +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); + +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][apache-license-link] and +[MIT][mit-license-link] terms. + +Copyrights in the ANES project are retained by their contributors. No +copyright assignment is required to contribute to the ANES project. + +[actions-stable-badge]: https://github.com/zrzka/anes-rs/workflows/stable/badge.svg +[actions-beta-badge]: https://github.com/zrzka/anes-rs/workflows/beta/badge.svg +[actions-nightly-badge]: https://github.com/zrzka/anes-rs/workflows/nightly/badge.svg +[actions-link]: https://github.com/zrzka/anes-rs/actions + +[crates-badge]: https://img.shields.io/crates/v/anes.svg +[crates-link]: https://crates.io/crates/anes + +[docs-badge]: https://docs.rs/anes/badge.svg +[docs-link]: https://docs.rs/anes + +[mit-license-badge]: https://img.shields.io/badge/license-MIT-blue.svg +[mit-license-link]: ./LICENSE-MIT +[apache-license-badge]: https://img.shields.io/badge/license-Apache2-blue.svg +[apache-license-link]: /LICENSE-APACHE + +[loc-badge]: https://tokei.rs/b1/github/zrzka/anes-rs?category=code |