| 1 | //! ANSI Text Styling |
| 2 | //! |
| 3 | //! *A portmanteau of "ansi style"* |
| 4 | //! |
| 5 | //! `anstyle` provides core types describing [ANSI styling escape |
| 6 | //! codes](https://en.wikipedia.org/wiki/ANSI_escape_code) for interoperability |
| 7 | //! between crates. |
| 8 | //! |
| 9 | //! Example use cases: |
| 10 | //! - An argument parser allowing callers to define the colors used in the help-output without |
| 11 | //! putting the text formatting crate in the public API |
| 12 | //! - A style description parser that can work with any text formatting crate |
| 13 | //! |
| 14 | //! Priorities: |
| 15 | //! 1. API stability |
| 16 | //! 2. Low compile-time and binary-size overhead |
| 17 | //! 3. `const` friendly API for callers to statically define their stylesheet |
| 18 | //! |
| 19 | //! For integration with text styling crate, see: |
| 20 | //! - [anstyle-ansi-term](https://docs.rs/anstyle-ansi-term) |
| 21 | //! - [anstyle-crossterm](https://docs.rs/anstyle-crossterm) |
| 22 | //! - [anstyle-owo-colors](https://docs.rs/anstyle-owo-colors) |
| 23 | //! - [anstyle-termcolor](https://docs.rs/anstyle-termcolor) |
| 24 | //! - [anstyle-yansi](https://docs.rs/anstyle-yansi) |
| 25 | //! |
| 26 | //! User-styling parsers: |
| 27 | //! - [anstyle-git](https://docs.rs/anstyle-git): Parse Git style descriptions |
| 28 | //! - [anstyle-ls](https://docs.rs/anstyle-ls): Parse `LS_COLORS` style descriptions |
| 29 | //! |
| 30 | //! Convert to other formats |
| 31 | //! - [anstream](https://docs.rs/anstream): A simple cross platform library for writing colored text to a terminal |
| 32 | //! - [anstyle-roff](https://docs.rs/anstyle-roff): For converting to ROFF |
| 33 | //! - [anstyle-syntect](https://docs.rs/anstyle-syntect): For working with syntax highlighting |
| 34 | //! |
| 35 | //! Utilities |
| 36 | //! - [anstyle-lossy](https://docs.rs/anstyle-lossy): Convert between `anstyle::Color` types |
| 37 | //! - [anstyle-parse](https://docs.rs/anstyle-parse): Parsing ANSI Style Escapes |
| 38 | //! - [anstyle-wincon](https://docs.rs/anstyle-wincon): Styling legacy Microsoft terminals |
| 39 | //! |
| 40 | //! # Examples |
| 41 | //! |
| 42 | //! The core type is [`Style`]: |
| 43 | //! ```rust |
| 44 | //! let style = anstyle::Style::new().bold(); |
| 45 | //! ``` |
| 46 | |
| 47 | #![cfg_attr (not(feature = "std" ), no_std)] |
| 48 | #![cfg_attr (docsrs, feature(doc_auto_cfg))] |
| 49 | #![warn (missing_docs)] |
| 50 | #![warn (clippy::print_stderr)] |
| 51 | #![warn (clippy::print_stdout)] |
| 52 | |
| 53 | #[macro_use ] |
| 54 | mod macros; |
| 55 | |
| 56 | mod color; |
| 57 | mod effect; |
| 58 | mod reset; |
| 59 | mod style; |
| 60 | |
| 61 | pub use color::*; |
| 62 | pub use effect::*; |
| 63 | pub use reset::*; |
| 64 | pub use style::*; |
| 65 | |