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