pub struct Style {
    pub foreground: Option<Colour>,
    pub background: Option<Colour>,
    pub is_bold: bool,
    pub is_dimmed: bool,
    pub is_italic: bool,
    pub is_underline: bool,
    pub is_blink: bool,
    pub is_reverse: bool,
    pub is_hidden: bool,
    pub is_strikethrough: bool,
}
Expand description

A style is a collection of properties that can format a string using ANSI escape codes.

Examples

use ansi_term::{Style, Colour};

let style = Style::new().bold().on(Colour::Black);
println!("{}", style.paint("Bold on black"));

Fields

foreground: Option<Colour>

The style’s foreground colour, if it has one.

background: Option<Colour>

The style’s background colour, if it has one.

is_bold: bool

Whether this style is bold.

is_dimmed: bool

Whether this style is dimmed.

is_italic: bool

Whether this style is italic.

is_underline: bool

Whether this style is underlined.

is_blink: bool

Whether this style is blinking.

is_reverse: bool

Whether this style has reverse colours.

is_hidden: bool

Whether this style is hidden.

is_strikethrough: bool

Whether this style is struckthrough.

Implementations

The prefix bytes for this style. These are the bytes that tell the terminal to use a different colour or font style.

Examples
use ansi_term::{Style, Colour::Blue};

let style = Style::default().bold();
assert_eq!("\x1b[1m",
           style.prefix().to_string());

let style = Blue.bold();
assert_eq!("\x1b[1;34m",
           style.prefix().to_string());

let style = Style::default();
assert_eq!("",
           style.prefix().to_string());

The infix bytes between this style and next style. These are the bytes that tell the terminal to change the style to next. These may include a reset followed by the next colour and style, depending on the two styles.

Examples
use ansi_term::{Style, Colour::Green};

let style = Style::default().bold();
assert_eq!("\x1b[32m",
           style.infix(Green.bold()).to_string());

let style = Green.normal();
assert_eq!("\x1b[1m",
           style.infix(Green.bold()).to_string());

let style = Style::default();
assert_eq!("",
           style.infix(style).to_string());

The suffix for this style. These are the bytes that tell the terminal to reset back to its normal colour and font style.

Examples
use ansi_term::{Style, Colour::Green};

let style = Style::default().bold();
assert_eq!("\x1b[0m",
           style.suffix().to_string());

let style = Green.normal().bold();
assert_eq!("\x1b[0m",
           style.suffix().to_string());

let style = Style::default();
assert_eq!("",
           style.suffix().to_string());

Creates a new Style with no properties set.

Examples
use ansi_term::Style;

let style = Style::new();
println!("{}", style.paint("hi"));

Returns a Style with the bold property set.

Examples
use ansi_term::Style;

let style = Style::new().bold();
println!("{}", style.paint("hey"));

Returns a Style with the dimmed property set.

Examples
use ansi_term::Style;

let style = Style::new().dimmed();
println!("{}", style.paint("sup"));

Returns a Style with the italic property set.

Examples
use ansi_term::Style;

let style = Style::new().italic();
println!("{}", style.paint("greetings"));

Returns a Style with the underline property set.

Examples
use ansi_term::Style;

let style = Style::new().underline();
println!("{}", style.paint("salutations"));

Returns a Style with the blink property set.

Examples
use ansi_term::Style;

let style = Style::new().blink();
println!("{}", style.paint("wazzup"));

Returns a Style with the reverse property set.

Examples
use ansi_term::Style;

let style = Style::new().reverse();
println!("{}", style.paint("aloha"));

Returns a Style with the hidden property set.

Examples
use ansi_term::Style;

let style = Style::new().hidden();
println!("{}", style.paint("ahoy"));

Returns a Style with the strikethrough property set.

Examples
use ansi_term::Style;

let style = Style::new().strikethrough();
println!("{}", style.paint("yo"));

Returns a Style with the foreground colour property set.

Examples
use ansi_term::{Style, Colour};

let style = Style::new().fg(Colour::Yellow);
println!("{}", style.paint("hi"));

Returns a Style with the background colour property set.

Examples
use ansi_term::{Style, Colour};

let style = Style::new().on(Colour::Blue);
println!("{}", style.paint("eyyyy"));

Return true if this Style has no actual styles, and can be written without any control characters.

Examples
use ansi_term::Style;

assert_eq!(true,  Style::default().is_plain());
assert_eq!(false, Style::default().bold().is_plain());

Paints the given text with this colour, returning an ANSI string.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Styles have a special Debug implementation that only shows the fields that are set. Fields that haven’t been touched aren’t included in the output.

This behaviour gets bypassed when using the alternate formatting mode format!("{:#?}").

use ansi_term::Colour::{Red, Blue};
assert_eq!("Style { fg(Red), on(Blue), bold, italic }",
           format!("{:?}", Red.on(Blue).bold().italic()));

Formats the value using the given formatter. Read more

Returns a style with no properties set. Formatting text using this style returns the exact same text.

use ansi_term::Style;
assert_eq!(None,  Style::default().foreground);
assert_eq!(None,  Style::default().background);
assert_eq!(false, Style::default().is_bold);
assert_eq!("txt", Style::default().paint("txt").to_string());

You can turn a Colour into a Style with the foreground colour set with the From trait.

use ansi_term::{Style, Colour};
let green_foreground = Style::default().fg(Colour::Green);
assert_eq!(green_foreground, Colour::Green.normal());
assert_eq!(green_foreground, Colour::Green.into());
assert_eq!(green_foreground, Style::from(Colour::Green));

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.