anstyle/
lib.rs

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]
54mod macros;
55
56mod color;
57mod effect;
58mod reset;
59mod style;
60
61pub use color::*;
62pub use effect::*;
63pub use reset::*;
64pub use style::*;