pub trait OwoColorize: Sized {
Show 57 methods
// Provided methods
fn fg<C: Color>(&self) -> FgColorDisplay<'_, C, Self> { ... }
fn bg<C: Color>(&self) -> BgColorDisplay<'_, C, Self> { ... }
fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self> { ... }
fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self> { ... }
fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self> { ... }
fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self> { ... }
fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self> { ... }
fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self> { ... }
fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self> { ... }
fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self> { ... }
fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self> { ... }
fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self> { ... }
fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self> { ... }
fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self> { ... }
fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self> { ... }
fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self> { ... }
fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self> { ... }
fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self> { ... }
fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self> { ... }
fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self> { ... }
fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self> { ... }
fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self> { ... }
fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self> { ... }
fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self> { ... }
fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self> { ... }
fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self> { ... }
fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self> { ... }
fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self> { ... }
fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self> { ... }
fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self> { ... }
fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self> { ... }
fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self> { ... }
fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self> { ... }
fn on_bright_magenta<'a>(
&'a self,
) -> BgColorDisplay<'a, BrightMagenta, Self> { ... }
fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self> { ... }
fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self> { ... }
fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self> { ... }
fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self> { ... }
fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self> { ... }
fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self> { ... }
fn bold<'a>(&'a self) -> BoldDisplay<'a, Self> { ... }
fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self> { ... }
fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self> { ... }
fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self> { ... }
fn blink<'a>(&'a self) -> BlinkDisplay<'a, Self> { ... }
fn blink_fast<'a>(&'a self) -> BlinkFastDisplay<'a, Self> { ... }
fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self> { ... }
fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self> { ... }
fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self> { ... }
fn color<Color: DynColor>(
&self,
color: Color,
) -> FgDynColorDisplay<'_, Color, Self> { ... }
fn on_color<Color: DynColor>(
&self,
color: Color,
) -> BgDynColorDisplay<'_, Color, Self> { ... }
fn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self> { ... }
fn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self> { ... }
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self> { ... }
fn on_truecolor(
&self,
r: u8,
g: u8,
b: u8,
) -> BgDynColorDisplay<'_, Rgb, Self> { ... }
fn style(&self, style: Style) -> Styled<&Self> { ... }
fn if_supports_color<'a, Out, ApplyFn>(
&'a self,
stream: Stream,
apply: ApplyFn,
) -> SupportsColorsDisplay<'a, Self, Out, ApplyFn>
where ApplyFn: Fn(&'a Self) -> Out { ... }
}
Expand description
Extension trait for colorizing a type which implements any std formatter
(Display
, Debug
, UpperHex
,
etc.)
§Example
use owo_colors::OwoColorize;
println!("My number is {:#x}!", 10.green());
println!("My number is not {}!", 4.on_red());
§How to decide which method to use
Do you have a specific color you want to use?
Use the specific color’s method, such as blue
or
on_green
.
Do you want your colors configurable via generics?
Use fg
and bg
to make it compile-time configurable.
Do you need to pick a color at runtime?
Use the color
, on_color
,
truecolor
or on_truecolor
.
Do you need some other text modifier?
Do you want it to only display colors if it’s a terminal?
- Enable the
supports-colors
feature - Colorize inside
if_supports_color
Do you need to store a set of colors/effects to apply to multiple things?
Provided Methods§
Sourcefn fg<C: Color>(&self) -> FgColorDisplay<'_, C, Self>
fn fg<C: Color>(&self) -> FgColorDisplay<'_, C, Self>
Set the foreground color generically
use owo_colors::{OwoColorize, colors::*};
println!("{}", "red foreground".fg::<Red>());
Sourcefn bg<C: Color>(&self) -> BgColorDisplay<'_, C, Self>
fn bg<C: Color>(&self) -> BgColorDisplay<'_, C, Self>
Set the background color generically.
use owo_colors::{OwoColorize, colors::*};
println!("{}", "black background".bg::<Black>());
Sourcefn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>
fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>
Change the foreground color to black
Sourcefn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>
fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>
Change the background color to black
Sourcefn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>
fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>
Change the foreground color to red
Sourcefn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>
fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>
Change the background color to red
Sourcefn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>
fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>
Change the foreground color to green
Sourcefn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>
fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>
Change the background color to green
Sourcefn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>
fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>
Change the foreground color to yellow
Sourcefn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>
fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>
Change the background color to yellow
Sourcefn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>
fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>
Change the foreground color to blue
Sourcefn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>
fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>
Change the background color to blue
Sourcefn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>
fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>
Change the foreground color to magenta
Sourcefn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
Change the background color to magenta
Sourcefn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>
fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>
Change the foreground color to purple
Sourcefn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
Change the background color to purple
Sourcefn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>
fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>
Change the foreground color to cyan
Sourcefn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>
fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>
Change the background color to cyan
Sourcefn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>
fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>
Change the foreground color to white
Sourcefn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>
fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>
Change the background color to white
Sourcefn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>
fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>
Change the foreground color to the terminal default
Sourcefn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>
fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>
Change the background color to the terminal default
Sourcefn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>
fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>
Change the foreground color to bright black
Sourcefn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>
fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>
Change the background color to bright black
Sourcefn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>
fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>
Change the foreground color to bright red
Sourcefn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>
fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>
Change the background color to bright red
Sourcefn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>
fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>
Change the foreground color to bright green
Sourcefn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>
fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>
Change the background color to bright green
Sourcefn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>
fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>
Change the foreground color to bright yellow
Sourcefn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>
fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>
Change the background color to bright yellow
Sourcefn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>
fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>
Change the foreground color to bright blue
Sourcefn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>
fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>
Change the background color to bright blue
Sourcefn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
Change the foreground color to bright magenta
Sourcefn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
Change the background color to bright magenta
Sourcefn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
Change the foreground color to bright purple
Sourcefn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
Change the background color to bright purple
Sourcefn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>
fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>
Change the foreground color to bright cyan
Sourcefn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>
fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>
Change the background color to bright cyan
Sourcefn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>
fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>
Change the foreground color to bright white
Sourcefn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>
fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>
Change the background color to bright white
Sourcefn bold<'a>(&'a self) -> BoldDisplay<'a, Self>
fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>
Make the text bold
Sourcefn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>
fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>
Make the text dim
Sourcefn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>
fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>
Make the text italicized
Sourcefn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>
fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>
Make the text italicized
Sourcefn blink<'a>(&'a self) -> BlinkDisplay<'a, Self>
fn blink<'a>(&'a self) -> BlinkDisplay<'a, Self>
Make the text blink
Sourcefn blink_fast<'a>(&'a self) -> BlinkFastDisplay<'a, Self>
fn blink_fast<'a>(&'a self) -> BlinkFastDisplay<'a, Self>
Make the text blink (but fast!)
Sourcefn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>
fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>
Swap the foreground and background colors
Hide the text
Sourcefn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>
fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>
Cross out the text
Sourcefn color<Color: DynColor>(
&self,
color: Color,
) -> FgDynColorDisplay<'_, Color, Self>
fn color<Color: DynColor>( &self, color: Color, ) -> FgDynColorDisplay<'_, Color, Self>
Set the foreground color at runtime. Only use if you do not know which color will be used at
compile-time. If the color is constant, use either OwoColorize::fg
or
a color-specific method, such as OwoColorize::green
,
use owo_colors::{OwoColorize, AnsiColors};
println!("{}", "green".color(AnsiColors::Green));
Sourcefn on_color<Color: DynColor>(
&self,
color: Color,
) -> BgDynColorDisplay<'_, Color, Self>
fn on_color<Color: DynColor>( &self, color: Color, ) -> BgDynColorDisplay<'_, Color, Self>
Set the background color at runtime. Only use if you do not know what color to use at
compile-time. If the color is constant, use either OwoColorize::bg
or
a color-specific method, such as OwoColorize::on_yellow
,
use owo_colors::{OwoColorize, AnsiColors};
println!("{}", "yellow background".on_color(AnsiColors::BrightYellow));
Sourcefn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the foreground color to a specific RGB value.
Sourcefn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the background color to a specific RGB value.
Sourcefn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
Sets the foreground color to an RGB value.
Sourcefn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
Sets the background color to an RGB value.
Sourcefn if_supports_color<'a, Out, ApplyFn>(
&'a self,
stream: Stream,
apply: ApplyFn,
) -> SupportsColorsDisplay<'a, Self, Out, ApplyFn>where
ApplyFn: Fn(&'a Self) -> Out,
fn if_supports_color<'a, Out, ApplyFn>(
&'a self,
stream: Stream,
apply: ApplyFn,
) -> SupportsColorsDisplay<'a, Self, Out, ApplyFn>where
ApplyFn: Fn(&'a Self) -> Out,
Apply a given transformation function to all formatters if the given stream supports at least basic ANSI colors, allowing you to conditionally apply given styles/colors.
Requires the supports-colors
feature.
use owo_colors::{OwoColorize, Stream};
println!(
"{}",
"woah! error! if this terminal supports colors, it's blue"
.if_supports_color(Stream::Stdout, |text| text.bright_blue())
);
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.