Crate owo_colors
source ·Expand description
Quick Links | OwoColorize | Style | StyledList | github |
---|
This crate provides OwoColorize
, an extension trait for colorizing a
given type.
§Example
use owo_colors::OwoColorize;
// Foreground colors
println!("My number is {:#x}!", 10.green());
// Background colors
println!("My number is not {}!", 4.on_red());
§Generically color
use owo_colors::OwoColorize;
use owo_colors::colors::*;
// Generically color
println!("My number might be {}!", 4.fg::<Black>().bg::<Yellow>());
§Stylize
use owo_colors::OwoColorize;
println!("{}", "strikethrough".strikethrough());
§Only Style on Supported Terminals
use owo_colors::{OwoColorize, Stream::Stdout};
println!(
"{}",
"colored blue if a supported terminal"
.if_supports_color(Stdout, |text| text.bright_blue())
);
Supports NO_COLOR
/FORCE_COLOR
environment variables, checks if it’s a tty, checks
if it’s running in CI (and thus likely supports color), and checks which terminal is being
used. (Note: requires supports-colors
feature)
§Style Objects
owo-colors also features the ability to create a Style
object and use it to
apply the same set of colors/effects to any number of things to display.
use owo_colors::{OwoColorize, Style};
let my_style = Style::new()
.red()
.on_white()
.strikethrough();
let text = "red text, white background, struck through";
println!("{}", text.style(my_style));
Re-exports§
pub use supports_colors::Stream;
Modules§
- Color types for used for being generic over the color
- Different display styles (strikethrough, bold, etc.)
Structs§
- Transparent wrapper around a type which implements all the formatters the wrapped type does, with the addition of changing the background color. Recommended to be constructed using
OwoColorize
. - Wrapper around a type which implements all the formatters the wrapped type does, with the addition of changing the background color. Is not recommended unless compile-time coloring is not an option.
- A wrapper type which applies both a foreground and background color
- Transparent wrapper around a type which implements all the formatters the wrapped type does, with the addition of changing the foreground color. Recommended to be constructed using
OwoColorize
. - Wrapper around a type which implements all the formatters the wrapped type does, with the addition of changing the foreground color. Is not recommended unless compile-time coloring is not an option.
- An error for when the color can not be parsed from a string at runtime
- Available RGB colors for use with
OwoColorize::color
orOwoColorize::on_color
- A pre-computed style that can be applied to a struct using
OwoColorize::style
. - A wrapper type which applies a
Style
when displaying the inner type - A collection of
Styled
items that are displayed in such a way as to minimize the amount of characters that are written when displayed. - A display wrapper which applies a transformation based on if the given stream supports colored terminal output
Enums§
- Available standard ANSI colors for use with
OwoColorize::color
orOwoColorize::on_color
- Available CSS colors for use with
OwoColorize::color
orOwoColorize::on_color
- An enum describing runtime-configurable colors
- A runtime-configurable text effect for use with
Style
- Available Xterm colors for use with
OwoColorize::color
orOwoColorize::on_color
Traits§
- A trait for describing a type which can be used with
FgColorDisplay
orBgColorDisplay
- A trait describing a runtime-configurable color which can displayed using
FgDynColorDisplay
orBgDynColorDisplay
. If your color will be known at compile time it is recommended you avoid this.
Functions§
- Set an override value for whether or not colors are supported.
- Helper to create
Style
s more ergonomically - Remove any override value for whether or not colors are supported. This means
if_supports_color
will resume checking if the given terminal output (Stream
) supports colors. - Set an override value for whether or not colors are supported using
set_override
while executing the closure provided.
Type Aliases§
- A helper alias for
StyledList
for easier usage withalloc::vec::Vec
.