|  | //! # ANSI Escape Sequences provider & parser | 
|  | //! | 
|  | //! ## Sequences provider | 
|  | //! | 
|  | //! The `anes` crate provides ANSI escape sequences you can use to control the terminal | 
|  | //! cursor (show, hide, ...), colors (foreground, background), display attributes (bold, ...) | 
|  | //! and many others. | 
|  | //! | 
|  | //! Every sequence implements the standard library [`Display`](https://doc.rust-lang.org/std/fmt/trait.Display.html) | 
|  | //! trait. It means that these sequences can be used in macros like | 
|  | //! [`format!`](https://doc.rust-lang.org/std/macro.format.html) or | 
|  | //! [`write!`](https://doc.rust-lang.org/std/macro.write.html). | 
|  | //! | 
|  | //! Ask if you need more sequences or use the [`sequence!`](macro.sequence.html) macro to create | 
|  | //! your own sequences. | 
|  | //! | 
|  | //! | 
|  | //! ### 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. | 
|  | //! | 
|  | //! ### Examples | 
|  | //! | 
|  | //! Retrieve the sequence as a `String`: | 
|  | //! | 
|  | //! ```rust | 
|  | //! use anes::SaveCursorPosition; | 
|  | //! | 
|  | //! let string = format!("{}", SaveCursorPosition); | 
|  | //! assert_eq!(&string, "\x1B7"); | 
|  | //! ``` | 
|  | //! | 
|  | //! Execute the sequence on the standard output: | 
|  | //! | 
|  | //! ```rust | 
|  | //! use std::io::{Result, Write}; | 
|  | //! | 
|  | //! use anes::execute; | 
|  | //! | 
|  | //! fn main() -> Result<()> { | 
|  | //!     let mut stdout = std::io::stdout(); | 
|  | //!     execute!(&mut stdout, anes::ResetAttributes) | 
|  | //! } | 
|  | //! ``` | 
|  | //! | 
|  | //! ## Sequences parser | 
|  | //! | 
|  | //! Parser isn't available with default features. You have to enable `parser` feature if you'd like to use it. | 
|  | //! You can learn more about this feature in the [`parser`](parser/index.html) module documentation. | 
|  | #![warn(rust_2018_idioms)] | 
|  | #![deny(unused_imports, unused_must_use)] | 
|  |  | 
|  | // Keep it first to load all the macros before other modules. | 
|  | #[macro_use] | 
|  | mod macros; | 
|  |  | 
|  | pub use self::sequences::{ | 
|  | attribute::{Attribute, ResetAttributes, SetAttribute}, | 
|  | buffer::{ | 
|  | ClearBuffer, ClearLine, ScrollBufferDown, ScrollBufferUp, SwitchBufferToAlternate, | 
|  | SwitchBufferToNormal, | 
|  | }, | 
|  | color::{Color, SetBackgroundColor, SetForegroundColor}, | 
|  | cursor::{ | 
|  | DisableCursorBlinking, EnableCursorBlinking, HideCursor, MoveCursorDown, MoveCursorLeft, | 
|  | MoveCursorRight, MoveCursorTo, MoveCursorToColumn, MoveCursorToNextLine, | 
|  | MoveCursorToPreviousLine, MoveCursorUp, ReportCursorPosition, RestoreCursorPosition, | 
|  | SaveCursorPosition, ShowCursor, | 
|  | }, | 
|  | terminal::{DisableMouseEvents, EnableMouseEvents, ResizeTextArea}, | 
|  | }; | 
|  |  | 
|  | #[cfg(feature = "parser")] | 
|  | pub mod parser; | 
|  | mod sequences; |