Crate owo_colors[][src]

Expand description

This crate provides OwoColorize, an extension trait for colorizing a given type.

Example

use owo_colors::OwoColorize;

fn main() {
    // 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::*;

fn main() {
    // 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));

Modules

Module for drop-in colored support to aid in porting code from colored to owo-colors.

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 or OwoColorize::on_color

A pre-computed style that can be applied to a struct using OwoColorize::style. Its interface mimicks that of OwoColorize, but instead of chaining methods on your object, you instead chain them on the Style object before applying it.

A wrapper type which applies a Style when displaying the inner type

SupportsColorsDisplaysupports-colors

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 or OwoColorize::on_color

Available CSS colors for use with OwoColorize::color or OwoColorize::on_color

An enum describing runtime-configurable colors which can be displayed using FgDynColorDisplay or BgDynColorDisplay, allowing for multiple types of colors to be used at runtime.

A runtime-configurable text effect for use with Style

Streamsupports-colors

possible stream sources

Available Xterm colors for use with OwoColorize::color or OwoColorize::on_color

Traits

A trait for describing a type which can be used with FgColorDisplay or BgCBgColorDisplay

A trait describing a runtime-configurable color which can displayed using FgDynColorDisplay or BgDynColorDisplay. If your color will be known at compile time it is recommended you avoid this.

Extension trait for colorizing a type which implements any std formatter (Display, Debug, UpperHex, etc.)

Functions

set_overridesupports-colors

Set an override value for whether or not colors are supported.

Helper to create Styles more ergonomically

unset_overridesupports-colors

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.