Struct yansi::Painted

source ·
pub struct Painted<T> {
    pub value: T,
    pub style: Style,
}
Expand description

An arbitrary value with a Style applied to it.

A Painted can be directly formatted. This results in the internal value being formatted as specified and ANSI code styling sequences corresponding to style being prefixed and suffixed as necessary. Both the global and local Condition affects whether styling sequences are actually emitted: both must evaluated to true. Otherwise, no styling sequences are emitted.

use yansi::{Paint, Condition};

println!("Hello, {}!", "world".red().underline().blink());
// > Hello, world! # world is red, underlined, and blinking

let v = format!("{}", "world".red().underline().blink());
assert_eq!(v, "\u{1b}[4;5;31mworld\u{1b}[0m");
println!("{}", v); // > world # world is red, underlined, and blinking

let v = format!("{}", "world".red().underline().blink().whenever(Condition::NEVER));
assert_eq!(v, "world");

Fields§

§value: T

The value to be styled.

§style: Style

The style to apply.

Implementations§

source§

impl<T> Painted<T>

source

pub const fn new(value: T) -> Painted<T>

Create a new Painted with a default Style.

Example
use yansi::Painted;

let painted = Painted::new("hello");
assert_eq!(painted.style, yansi::Style::new());
source

pub const fn fg(self, value: Color) -> Self

Returns a styled value derived from self with the foreground set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like red() and green(), which have the same functionality but are pithier.

Example

Set foreground color to white using fg():

use yansi::{Paint, Color};

painted.fg(Color::White);

Set foreground color to white using white().

use yansi::Paint;

painted.white();
source

pub const fn primary(self) -> Self

Returns self with the fg() set to Color::Primary.

Example
println!("{}", value.primary());
source

pub const fn fixed(self, color: u8) -> Self

Returns self with the fg() set to Color::Fixed.

Example
println!("{}", value.fixed(color));
source

pub const fn rgb(self, r: u8, g: u8, b: u8) -> Self

Returns self with the fg() set to Color::Rgb.

Example
println!("{}", value.rgb(r, g, b));
source

pub const fn black(self) -> Self

Returns self with the fg() set to Color::Black.

Example
println!("{}", value.black());
source

pub const fn red(self) -> Self

Returns self with the fg() set to Color::Red.

Example
println!("{}", value.red());
source

pub const fn green(self) -> Self

Returns self with the fg() set to Color::Green.

Example
println!("{}", value.green());
source

pub const fn yellow(self) -> Self

Returns self with the fg() set to Color::Yellow.

Example
println!("{}", value.yellow());
source

pub const fn blue(self) -> Self

Returns self with the fg() set to Color::Blue.

Example
println!("{}", value.blue());
source

pub const fn magenta(self) -> Self

Returns self with the fg() set to Color::Magenta.

Example
println!("{}", value.magenta());
source

pub const fn cyan(self) -> Self

Returns self with the fg() set to Color::Cyan.

Example
println!("{}", value.cyan());
source

pub const fn white(self) -> Self

Returns self with the fg() set to Color::White.

Example
println!("{}", value.white());
source

pub const fn bright_black(self) -> Self

Returns self with the fg() set to Color::BrightBlack.

Example
println!("{}", value.bright_black());
source

pub const fn bright_red(self) -> Self

Returns self with the fg() set to Color::BrightRed.

Example
println!("{}", value.bright_red());
source

pub const fn bright_green(self) -> Self

Returns self with the fg() set to Color::BrightGreen.

Example
println!("{}", value.bright_green());
source

pub const fn bright_yellow(self) -> Self

Returns self with the fg() set to Color::BrightYellow.

Example
println!("{}", value.bright_yellow());
source

pub const fn bright_blue(self) -> Self

Returns self with the fg() set to Color::BrightBlue.

Example
println!("{}", value.bright_blue());
source

pub const fn bright_magenta(self) -> Self

Returns self with the fg() set to Color::BrightMagenta.

Example
println!("{}", value.bright_magenta());
source

pub const fn bright_cyan(self) -> Self

Returns self with the fg() set to Color::BrightCyan.

Example
println!("{}", value.bright_cyan());
source

pub const fn bright_white(self) -> Self

Returns self with the fg() set to Color::BrightWhite.

Example
println!("{}", value.bright_white());
source

pub const fn bg(self, value: Color) -> Self

Returns a styled value derived from self with the background set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like on_red() and on_green(), which have the same functionality but are pithier.

Example

Set background color to red using fg():

use yansi::{Paint, Color};

painted.bg(Color::Red);

Set background color to red using on_red().

use yansi::Paint;

painted.on_red();
source

pub const fn on_primary(self) -> Self

Returns self with the bg() set to Color::Primary.

Example
println!("{}", value.on_primary());
source

pub const fn on_fixed(self, color: u8) -> Self

Returns self with the bg() set to Color::Fixed.

Example
println!("{}", value.on_fixed(color));
source

pub const fn on_rgb(self, r: u8, g: u8, b: u8) -> Self

Returns self with the bg() set to Color::Rgb.

Example
println!("{}", value.on_rgb(r, g, b));
source

pub const fn on_black(self) -> Self

Returns self with the bg() set to Color::Black.

Example
println!("{}", value.on_black());
source

pub const fn on_red(self) -> Self

Returns self with the bg() set to Color::Red.

Example
println!("{}", value.on_red());
source

pub const fn on_green(self) -> Self

Returns self with the bg() set to Color::Green.

Example
println!("{}", value.on_green());
source

pub const fn on_yellow(self) -> Self

Returns self with the bg() set to Color::Yellow.

Example
println!("{}", value.on_yellow());
source

pub const fn on_blue(self) -> Self

Returns self with the bg() set to Color::Blue.

Example
println!("{}", value.on_blue());
source

pub const fn on_magenta(self) -> Self

Returns self with the bg() set to Color::Magenta.

Example
println!("{}", value.on_magenta());
source

pub const fn on_cyan(self) -> Self

Returns self with the bg() set to Color::Cyan.

Example
println!("{}", value.on_cyan());
source

pub const fn on_white(self) -> Self

Returns self with the bg() set to Color::White.

Example
println!("{}", value.on_white());
source

pub const fn on_bright_black(self) -> Self

Returns self with the bg() set to Color::BrightBlack.

Example
println!("{}", value.on_bright_black());
source

pub const fn on_bright_red(self) -> Self

Returns self with the bg() set to Color::BrightRed.

Example
println!("{}", value.on_bright_red());
source

pub const fn on_bright_green(self) -> Self

Returns self with the bg() set to Color::BrightGreen.

Example
println!("{}", value.on_bright_green());
source

pub const fn on_bright_yellow(self) -> Self

Returns self with the bg() set to Color::BrightYellow.

Example
println!("{}", value.on_bright_yellow());
source

pub const fn on_bright_blue(self) -> Self

Returns self with the bg() set to Color::BrightBlue.

Example
println!("{}", value.on_bright_blue());
source

pub const fn on_bright_magenta(self) -> Self

Returns self with the bg() set to Color::BrightMagenta.

Example
println!("{}", value.on_bright_magenta());
source

pub const fn on_bright_cyan(self) -> Self

Returns self with the bg() set to Color::BrightCyan.

Example
println!("{}", value.on_bright_cyan());
source

pub const fn on_bright_white(self) -> Self

Returns self with the bg() set to Color::BrightWhite.

Example
println!("{}", value.on_bright_white());
source

pub const fn attr(self, value: Attribute) -> Self

Enables the styling Attribute value.

This method should be used rarely. Instead, prefer to use attribute-specific builder methods like bold() and underline(), which have the same functionality but are pithier.

Example

Make text bold using attr():

use yansi::{Paint, Attribute};

painted.attr(Attribute::Bold);

Make text bold using using bold().

use yansi::Paint;

painted.bold();
source

pub const fn bold(self) -> Self

Returns self with the attr() set to Attribute::Bold.

Example
println!("{}", value.bold());
source

pub const fn dim(self) -> Self

Returns self with the attr() set to Attribute::Dim.

Example
println!("{}", value.dim());
source

pub const fn italic(self) -> Self

Returns self with the attr() set to Attribute::Italic.

Example
println!("{}", value.italic());
source

pub const fn underline(self) -> Self

Returns self with the attr() set to Attribute::Underline.

Example
println!("{}", value.underline());

Returns self with the attr() set to Attribute::Blink.

Example
println!("{}", value.blink());

Returns self with the attr() set to Attribute::RapidBlink.

Example
println!("{}", value.rapid_blink());
source

pub const fn invert(self) -> Self

Returns self with the attr() set to Attribute::Invert.

Example
println!("{}", value.invert());
source

pub const fn conceal(self) -> Self

Returns self with the attr() set to Attribute::Conceal.

Example
println!("{}", value.conceal());
source

pub const fn strike(self) -> Self

Returns self with the attr() set to Attribute::Strike.

Example
println!("{}", value.strike());
source

pub const fn quirk(self, value: Quirk) -> Self

Enables the yansi Quirk value.

This method should be used rarely. Instead, prefer to use quirk-specific builder methods like mask() and wrap(), which have the same functionality but are pithier.

Example

Enable wrapping using .quirk():

use yansi::{Paint, Quirk};

painted.quirk(Quirk::Wrap);

Enable wrapping using wrap().

use yansi::Paint;

painted.wrap();
source

pub const fn mask(self) -> Self

Returns self with the quirk() set to Quirk::Mask.

Example
println!("{}", value.mask());
source

pub const fn wrap(self) -> Self

Returns self with the quirk() set to Quirk::Wrap.

Example
println!("{}", value.wrap());
source

pub const fn linger(self) -> Self

Returns self with the quirk() set to Quirk::Linger.

Example
println!("{}", value.linger());
source

pub const fn clear(self) -> Self

Returns self with the quirk() set to Quirk::Clear.

Example
println!("{}", value.clear());
source

pub const fn bright(self) -> Self

Returns self with the quirk() set to Quirk::Bright.

Example
println!("{}", value.bright());
source

pub const fn on_bright(self) -> Self

Returns self with the quirk() set to Quirk::OnBright.

Example
println!("{}", value.on_bright());
source

pub const fn whenever(self, value: Condition) -> Self

Conditionally enable styling based on whether the Condition value applies. Replaces any previous condition.

See the crate level docs for more details.

Example

Enable styling painted only when both stdout and stderr are TTYs:

use yansi::{Paint, Condition};

painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);

Trait Implementations§

source§

impl<T: Binary> Binary for Painted<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl<T: Clone> Clone for Painted<T>

source§

fn clone(&self) -> Painted<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T: Debug> Debug for Painted<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T: Display> Display for Painted<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T> From<Painted<T>> for Style

source§

fn from(painted: Painted<T>) -> Self

Converts to this type from the input type.
source§

impl<T: LowerExp> LowerExp for Painted<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl<T: LowerHex> LowerHex for Painted<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl<T: Octal> Octal for Painted<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl<T: Pointer> Pointer for Painted<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl<T: UpperExp> UpperExp for Painted<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl<T: UpperHex> UpperHex for Painted<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl<T: Copy> Copy for Painted<T>

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for Painted<T>where T: RefUnwindSafe,

§

impl<T> Send for Painted<T>where T: Send,

§

impl<T> Sync for Painted<T>where T: Sync,

§

impl<T> Unpin for Painted<T>where T: Unpin,

§

impl<T> UnwindSafe for Painted<T>where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

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

source§

impl<T> Paint for Twhere T: ?Sized,

source§

fn fg(&self, value: Color) -> Painted<&T>

Returns a styled value derived from self with the foreground set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like red() and green(), which have the same functionality but are pithier.

Example

Set foreground color to white using fg():

use yansi::{Paint, Color};

painted.fg(Color::White);

Set foreground color to white using white().

use yansi::Paint;

painted.white();
source§

fn primary(&self) -> Painted<&T>

Returns self with the fg() set to Color::Primary.

Example
println!("{}", value.primary());
source§

fn fixed(&self, color: u8) -> Painted<&T>

Returns self with the fg() set to Color::Fixed.

Example
println!("{}", value.fixed(color));
source§

fn rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the fg() set to Color::Rgb.

Example
println!("{}", value.rgb(r, g, b));
source§

fn black(&self) -> Painted<&T>

Returns self with the fg() set to Color::Black.

Example
println!("{}", value.black());
source§

fn red(&self) -> Painted<&T>

Returns self with the fg() set to Color::Red.

Example
println!("{}", value.red());
source§

fn green(&self) -> Painted<&T>

Returns self with the fg() set to Color::Green.

Example
println!("{}", value.green());
source§

fn yellow(&self) -> Painted<&T>

Returns self with the fg() set to Color::Yellow.

Example
println!("{}", value.yellow());
source§

fn blue(&self) -> Painted<&T>

Returns self with the fg() set to Color::Blue.

Example
println!("{}", value.blue());
source§

fn magenta(&self) -> Painted<&T>

Returns self with the fg() set to Color::Magenta.

Example
println!("{}", value.magenta());
source§

fn cyan(&self) -> Painted<&T>

Returns self with the fg() set to Color::Cyan.

Example
println!("{}", value.cyan());
source§

fn white(&self) -> Painted<&T>

Returns self with the fg() set to Color::White.

Example
println!("{}", value.white());
source§

fn bright_black(&self) -> Painted<&T>

Returns self with the fg() set to Color::BrightBlack.

Example
println!("{}", value.bright_black());
source§

fn bright_red(&self) -> Painted<&T>

Returns self with the fg() set to Color::BrightRed.

Example
println!("{}", value.bright_red());
source§

fn bright_green(&self) -> Painted<&T>

Returns self with the fg() set to Color::BrightGreen.

Example
println!("{}", value.bright_green());
source§

fn bright_yellow(&self) -> Painted<&T>

Returns self with the fg() set to Color::BrightYellow.

Example
println!("{}", value.bright_yellow());
source§

fn bright_blue(&self) -> Painted<&T>

Returns self with the fg() set to Color::BrightBlue.

Example
println!("{}", value.bright_blue());
source§

fn bright_magenta(&self) -> Painted<&T>

Returns self with the fg() set to Color::BrightMagenta.

Example
println!("{}", value.bright_magenta());
source§

fn bright_cyan(&self) -> Painted<&T>

Returns self with the fg() set to Color::BrightCyan.

Example
println!("{}", value.bright_cyan());
source§

fn bright_white(&self) -> Painted<&T>

Returns self with the fg() set to Color::BrightWhite.

Example
println!("{}", value.bright_white());
source§

fn bg(&self, value: Color) -> Painted<&T>

Returns a styled value derived from self with the background set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like on_red() and on_green(), which have the same functionality but are pithier.

Example

Set background color to red using fg():

use yansi::{Paint, Color};

painted.bg(Color::Red);

Set background color to red using on_red().

use yansi::Paint;

painted.on_red();
source§

fn on_primary(&self) -> Painted<&T>

Returns self with the bg() set to Color::Primary.

Example
println!("{}", value.on_primary());
source§

fn on_fixed(&self, color: u8) -> Painted<&T>

Returns self with the bg() set to Color::Fixed.

Example
println!("{}", value.on_fixed(color));
source§

fn on_rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the bg() set to Color::Rgb.

Example
println!("{}", value.on_rgb(r, g, b));
source§

fn on_black(&self) -> Painted<&T>

Returns self with the bg() set to Color::Black.

Example
println!("{}", value.on_black());
source§

fn on_red(&self) -> Painted<&T>

Returns self with the bg() set to Color::Red.

Example
println!("{}", value.on_red());
source§

fn on_green(&self) -> Painted<&T>

Returns self with the bg() set to Color::Green.

Example
println!("{}", value.on_green());
source§

fn on_yellow(&self) -> Painted<&T>

Returns self with the bg() set to Color::Yellow.

Example
println!("{}", value.on_yellow());
source§

fn on_blue(&self) -> Painted<&T>

Returns self with the bg() set to Color::Blue.

Example
println!("{}", value.on_blue());
source§

fn on_magenta(&self) -> Painted<&T>

Returns self with the bg() set to Color::Magenta.

Example
println!("{}", value.on_magenta());
source§

fn on_cyan(&self) -> Painted<&T>

Returns self with the bg() set to Color::Cyan.

Example
println!("{}", value.on_cyan());
source§

fn on_white(&self) -> Painted<&T>

Returns self with the bg() set to Color::White.

Example
println!("{}", value.on_white());
source§

fn on_bright_black(&self) -> Painted<&T>

Returns self with the bg() set to Color::BrightBlack.

Example
println!("{}", value.on_bright_black());
source§

fn on_bright_red(&self) -> Painted<&T>

Returns self with the bg() set to Color::BrightRed.

Example
println!("{}", value.on_bright_red());
source§

fn on_bright_green(&self) -> Painted<&T>

Returns self with the bg() set to Color::BrightGreen.

Example
println!("{}", value.on_bright_green());
source§

fn on_bright_yellow(&self) -> Painted<&T>

Returns self with the bg() set to Color::BrightYellow.

Example
println!("{}", value.on_bright_yellow());
source§

fn on_bright_blue(&self) -> Painted<&T>

Returns self with the bg() set to Color::BrightBlue.

Example
println!("{}", value.on_bright_blue());
source§

fn on_bright_magenta(&self) -> Painted<&T>

Returns self with the bg() set to Color::BrightMagenta.

Example
println!("{}", value.on_bright_magenta());
source§

fn on_bright_cyan(&self) -> Painted<&T>

Returns self with the bg() set to Color::BrightCyan.

Example
println!("{}", value.on_bright_cyan());
source§

fn on_bright_white(&self) -> Painted<&T>

Returns self with the bg() set to Color::BrightWhite.

Example
println!("{}", value.on_bright_white());
source§

fn attr(&self, value: Attribute) -> Painted<&T>

Enables the styling Attribute value.

This method should be used rarely. Instead, prefer to use attribute-specific builder methods like bold() and underline(), which have the same functionality but are pithier.

Example

Make text bold using attr():

use yansi::{Paint, Attribute};

painted.attr(Attribute::Bold);

Make text bold using using bold().

use yansi::Paint;

painted.bold();
source§

fn bold(&self) -> Painted<&T>

Returns self with the attr() set to Attribute::Bold.

Example
println!("{}", value.bold());
source§

fn dim(&self) -> Painted<&T>

Returns self with the attr() set to Attribute::Dim.

Example
println!("{}", value.dim());
source§

fn italic(&self) -> Painted<&T>

Returns self with the attr() set to Attribute::Italic.

Example
println!("{}", value.italic());
source§

fn underline(&self) -> Painted<&T>

Returns self with the attr() set to Attribute::Underline.

Example
println!("{}", value.underline());

Returns self with the attr() set to Attribute::Blink.

Example
println!("{}", value.blink());

Returns self with the attr() set to Attribute::RapidBlink.

Example
println!("{}", value.rapid_blink());
source§

fn invert(&self) -> Painted<&T>

Returns self with the attr() set to Attribute::Invert.

Example
println!("{}", value.invert());
source§

fn conceal(&self) -> Painted<&T>

Returns self with the attr() set to Attribute::Conceal.

Example
println!("{}", value.conceal());
source§

fn strike(&self) -> Painted<&T>

Returns self with the attr() set to Attribute::Strike.

Example
println!("{}", value.strike());
source§

fn quirk(&self, value: Quirk) -> Painted<&T>

Enables the yansi Quirk value.

This method should be used rarely. Instead, prefer to use quirk-specific builder methods like mask() and wrap(), which have the same functionality but are pithier.

Example

Enable wrapping using .quirk():

use yansi::{Paint, Quirk};

painted.quirk(Quirk::Wrap);

Enable wrapping using wrap().

use yansi::Paint;

painted.wrap();
source§

fn mask(&self) -> Painted<&T>

Returns self with the quirk() set to Quirk::Mask.

Example
println!("{}", value.mask());
source§

fn wrap(&self) -> Painted<&T>

Returns self with the quirk() set to Quirk::Wrap.

Example
println!("{}", value.wrap());
source§

fn linger(&self) -> Painted<&T>

Returns self with the quirk() set to Quirk::Linger.

Example
println!("{}", value.linger());
source§

fn clear(&self) -> Painted<&T>

Returns self with the quirk() set to Quirk::Clear.

Example
println!("{}", value.clear());
source§

fn bright(&self) -> Painted<&T>

Returns self with the quirk() set to Quirk::Bright.

Example
println!("{}", value.bright());
source§

fn on_bright(&self) -> Painted<&T>

Returns self with the quirk() set to Quirk::OnBright.

Example
println!("{}", value.on_bright());
source§

fn whenever(&self, value: Condition) -> Painted<&T>

Conditionally enable styling based on whether the Condition value applies. Replaces any previous condition.

See the crate level docs for more details.

Example

Enable styling painted only when both stdout and stderr are TTYs:

use yansi::{Paint, Condition};

painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);
source§

fn new(self) -> Painted<Self>where Self: Sized,

Create a new Painted with a default Style. Read more
source§

fn paint<S: Into<Style>>(&self, style: S) -> Painted<&Self>

Apply a style wholesale to self. Any previous style is replaced. Read more
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.