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>
impl<T> Painted<T>
sourcepub const fn fg(self, value: Color) -> Self
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();
sourcepub const fn bright_black(self) -> Self
pub const fn bright_black(self) -> Self
sourcepub const fn bright_red(self) -> Self
pub const fn bright_red(self) -> Self
sourcepub const fn bright_green(self) -> Self
pub const fn bright_green(self) -> Self
sourcepub const fn bright_yellow(self) -> Self
pub const fn bright_yellow(self) -> Self
Returns self
with the
fg()
set to
Color::BrightYellow
.
Example
println!("{}", value.bright_yellow());
sourcepub const fn bright_blue(self) -> Self
pub const fn bright_blue(self) -> Self
sourcepub const fn bright_magenta(self) -> Self
pub const fn bright_magenta(self) -> Self
Returns self
with the
fg()
set to
Color::BrightMagenta
.
Example
println!("{}", value.bright_magenta());
sourcepub const fn bright_cyan(self) -> Self
pub const fn bright_cyan(self) -> Self
sourcepub const fn bright_white(self) -> Self
pub const fn bright_white(self) -> Self
sourcepub const fn bg(self, value: Color) -> Self
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();
sourcepub const fn on_primary(self) -> Self
pub const fn on_primary(self) -> Self
sourcepub const fn on_magenta(self) -> Self
pub const fn on_magenta(self) -> Self
sourcepub const fn on_bright_black(self) -> Self
pub const fn on_bright_black(self) -> Self
Returns self
with the
bg()
set to
Color::BrightBlack
.
Example
println!("{}", value.on_bright_black());
sourcepub const fn on_bright_red(self) -> Self
pub const fn on_bright_red(self) -> Self
sourcepub const fn on_bright_green(self) -> Self
pub const fn on_bright_green(self) -> Self
Returns self
with the
bg()
set to
Color::BrightGreen
.
Example
println!("{}", value.on_bright_green());
sourcepub const fn on_bright_yellow(self) -> Self
pub const fn on_bright_yellow(self) -> Self
Returns self
with the
bg()
set to
Color::BrightYellow
.
Example
println!("{}", value.on_bright_yellow());
sourcepub const fn on_bright_blue(self) -> Self
pub const fn on_bright_blue(self) -> Self
Returns self
with the
bg()
set to
Color::BrightBlue
.
Example
println!("{}", value.on_bright_blue());
sourcepub const fn on_bright_magenta(self) -> Self
pub const fn on_bright_magenta(self) -> Self
Returns self
with the
bg()
set to
Color::BrightMagenta
.
Example
println!("{}", value.on_bright_magenta());
sourcepub const fn on_bright_cyan(self) -> Self
pub const fn on_bright_cyan(self) -> Self
Returns self
with the
bg()
set to
Color::BrightCyan
.
Example
println!("{}", value.on_bright_cyan());
sourcepub const fn on_bright_white(self) -> Self
pub const fn on_bright_white(self) -> Self
Returns self
with the
bg()
set to
Color::BrightWhite
.
Example
println!("{}", value.on_bright_white());
sourcepub const fn attr(self, value: Attribute) -> Self
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();
sourcepub const fn underline(self) -> Self
pub const fn underline(self) -> Self
Returns self
with the
attr()
set to
Attribute::Underline
.
Example
println!("{}", value.underline());
sourcepub const fn rapid_blink(self) -> Self
pub const fn rapid_blink(self) -> Self
Returns self
with the
attr()
set to
Attribute::RapidBlink
.
Example
println!("{}", value.rapid_blink());
sourcepub const fn quirk(self, value: Quirk) -> Self
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();
sourcepub const fn whenever(self, value: Condition) -> Self
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§
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere T: ?Sized,
source§fn fg(&self, value: Color) -> Painted<&T>
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 bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
source§fn bright_yellow(&self) -> Painted<&T>
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>
fn bright_blue(&self) -> Painted<&T>
source§fn bright_magenta(&self) -> Painted<&T>
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>
fn bright_cyan(&self) -> Painted<&T>
source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
source§fn bg(&self, value: Color) -> Painted<&T>
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>
fn on_primary(&self) -> Painted<&T>
source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
source§fn on_bright_black(&self) -> Painted<&T>
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>
fn on_bright_red(&self) -> Painted<&T>
source§fn on_bright_green(&self) -> Painted<&T>
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>
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>
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>
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>
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>
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>
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 underline(&self) -> Painted<&T>
fn underline(&self) -> Painted<&T>
Returns self
with the
attr()
set to
Attribute::Underline
.
Example
println!("{}", value.underline());
source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Returns self
with the
attr()
set to
Attribute::RapidBlink
.
Example
println!("{}", value.rapid_blink());
source§fn quirk(&self, value: Quirk) -> Painted<&T>
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 whenever(&self, value: Condition) -> Painted<&T>
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);