[][src]Struct ansi_term::Style

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,
}

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.

Methods

impl Style[src]

pub fn prefix(self) -> Prefix[src]

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());

pub fn infix(self, next: Style) -> Infix[src]

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());

pub fn suffix(self) -> Suffix[src]

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());

impl Style[src]

pub fn new() -> Style[src]

Creates a new Style with no properties set.

Examples

use ansi_term::Style;

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

pub fn bold(&self) -> Style[src]

Returns a Style with the bold property set.

Examples

use ansi_term::Style;

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

pub fn dimmed(&self) -> Style[src]

Returns a Style with the dimmed property set.

Examples

use ansi_term::Style;

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

pub fn italic(&self) -> Style[src]

Returns a Style with the italic property set.

Examples

use ansi_term::Style;

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

pub fn underline(&self) -> Style[src]

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"));

pub fn reverse(&self) -> Style[src]

Returns a Style with the reverse property set.

Examples

use ansi_term::Style;

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

pub fn hidden(&self) -> Style[src]

Returns a Style with the hidden property set.

Examples

use ansi_term::Style;

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

pub fn strikethrough(&self) -> Style[src]

Returns a Style with the strikethrough property set.

Examples

use ansi_term::Style;

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

pub fn fg(&self, foreground: Colour) -> Style[src]

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"));

pub fn on(&self, background: Colour) -> Style[src]

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"));

pub fn is_plain(self) -> bool[src]

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());

impl Style[src]

#[must_use] pub fn paint<'a, I, S: 'a + ToOwned + ?Sized>(
    self,
    input: I
) -> ANSIGenericString<'a, S> where
    I: Into<Cow<'a, S>>,
    <S as ToOwned>::Owned: Debug
[src]

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

Trait Implementations

impl Clone for Style[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Default for Style[src]

fn default() -> Style[src]

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());

impl From<Colour> for Style[src]

fn from(colour: Colour) -> Style[src]

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));

impl Copy for Style[src]

impl PartialEq<Style> for Style[src]

impl Debug for Style[src]

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()));

Auto Trait Implementations

impl Unpin for Style

impl Sync for Style

impl Send for Style

impl UnwindSafe for Style

impl RefUnwindSafe for Style

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]