#[repr(packed)]pub struct Style { /* private fields */ }Expand description
Represents a set of styling options.
See the crate level documentation for usage information.
Method Glossary
The Style structure exposes many methods for convenience. The majority of
these methods are shared with Paint.
Foreground Color Constructors
Return a new Style structure with a foreground color applied.
Setters
Set a style property on a given Style structure.
style.fg(color: Color)style.bg(color: Color)style.mask()style.wrap()style.bold()style.dimmed()style.italic()style.underline()style.blink()style.invert()style.hidden()style.strikethrough()
These methods can be chained:
use yansi::{Style, Color::{Red, Magenta}};
Style::new(Red).bg(Magenta).underline().invert().italic().dimmed().bold();Converters
Convert a Style into another structure.
Getters
Return information about a Style structure.
style.fg_color()style.bg_color()style.is_masked()style.is_wrapping()style.is_bold()style.is_dimmed()style.is_italic()style.is_underline()style.is_blink()style.is_invert()style.is_hidden()style.is_strikethrough()
Raw Formatters
Write the raw ANSI codes for a given Style to any fmt::Write.
Implementations
sourceimpl Style
impl Style
sourcepub fn new(color: Color) -> Style
pub fn new(color: Color) -> Style
Default style with the foreground set to color and no other set
properties.
use yansi::Style;
let plain = Style::default();
assert_eq!(plain, Style::default());sourcepub fn fg(self, color: Color) -> Style
pub fn fg(self, color: Color) -> Style
Sets the foreground to color.
use yansi::{Color, Style};
let red_fg = Style::default().fg(Color::Red);sourcepub fn bg(self, color: Color) -> Style
pub fn bg(self, color: Color) -> Style
Sets the background to color.
use yansi::{Color, Style};
let red_bg = Style::default().bg(Color::Red);sourcepub fn mask(self) -> Style
pub fn mask(self) -> Style
Sets self to be masked.
An item with masked styling is not written out when painting is
disabled during Display or Debug invocations. When painting is
enabled, masking has no effect.
use yansi::Style;
let masked = Style::default().mask();
// "Whoops! " will only print when coloring is enabled.
println!("{}Something happened.", masked.paint("Whoops! "));sourcepub fn wrap(self) -> Style
pub fn wrap(self) -> Style
Sets self to be wrapping.
A wrapping Style converts all color resets written out by the internal
value to the styling of itself. This allows for seamless color wrapping
of other colored text.
Performance
In order to wrap an internal value, the internal value must first be written out to a local buffer and examined. As a result, displaying a wrapped value is likely to result in a heap allocation and copy.
use yansi::{Paint, Style, Color};
let inner = format!("{} and {}", Paint::red("Stop"), Paint::green("Go"));
let wrapping = Style::new(Color::Blue).wrap();
// 'Hey!' will be unstyled, "Stop" will be red, "and" will be blue, and
// "Go" will be green. Without a wrapping `Paint`, "and" would be
// unstyled.
println!("Hey! {}", wrapping.paint(inner));sourcepub fn bold(self) -> Style
pub fn bold(self) -> Style
Enables the bold style on self.
use yansi::Paint;
println!("Using bold: {}", Paint::new("hi").bold());sourcepub fn dimmed(self) -> Style
pub fn dimmed(self) -> Style
Enables the dimmed style on self.
use yansi::Paint;
println!("Using dimmed: {}", Paint::new("hi").dimmed());sourcepub fn italic(self) -> Style
pub fn italic(self) -> Style
Enables the italic style on self.
use yansi::Paint;
println!("Using italic: {}", Paint::new("hi").italic());sourcepub fn underline(self) -> Style
pub fn underline(self) -> Style
Enables the underline style on self.
use yansi::Paint;
println!("Using underline: {}", Paint::new("hi").underline());sourcepub fn blink(self) -> Style
pub fn blink(self) -> Style
Enables the blink style on self.
use yansi::Paint;
println!("Using blink: {}", Paint::new("hi").blink());sourcepub fn invert(self) -> Style
pub fn invert(self) -> Style
Enables the invert style on self.
use yansi::Paint;
println!("Using invert: {}", Paint::new("hi").invert());Enables the hidden style on self.
use yansi::Paint;
println!("Using hidden: {}", Paint::new("hi").hidden());sourcepub fn strikethrough(self) -> Style
pub fn strikethrough(self) -> Style
Enables the strikethrough style on self.
use yansi::Paint;
println!("Using strikethrough: {}", Paint::new("hi").strikethrough());sourcepub fn paint<T>(self, item: T) -> Paint<T>
pub fn paint<T>(self, item: T) -> Paint<T>
Constructs a new Paint structure that encapsulates item with the
style set to self.
use yansi::{Style, Color};
let alert = Style::new(Color::Red).bold().underline();
println!("Alert: {}", alert.paint("This thing happened!"));sourcepub fn fg_color(&self) -> Color
pub fn fg_color(&self) -> Color
Returns the foreground color of self.
use yansi::{Style, Color};
let plain = Style::default();
assert_eq!(plain.fg_color(), Color::Unset);
let red = plain.fg(Color::Red);
assert_eq!(red.fg_color(), Color::Red);sourcepub fn bg_color(&self) -> Color
pub fn bg_color(&self) -> Color
Returns the foreground color of self.
use yansi::{Style, Color};
let plain = Style::default();
assert_eq!(plain.bg_color(), Color::Unset);
let white = plain.bg(Color::White);
assert_eq!(white.bg_color(), Color::White);sourcepub fn is_masked(&self) -> bool
pub fn is_masked(&self) -> bool
Returns true if self is masked.
use yansi::Style;
let plain = Style::default();
assert!(!plain.is_masked());
let masked = plain.mask();
assert!(masked.is_masked());sourcepub fn is_wrapping(&self) -> bool
pub fn is_wrapping(&self) -> bool
Returns true if self is wrapping.
use yansi::Style;
let plain = Style::default();
assert!(!plain.is_wrapping());
let wrapping = plain.wrap();
assert!(wrapping.is_wrapping());sourcepub fn is_bold(&self) -> bool
pub fn is_bold(&self) -> bool
Returns true if the bold property is set on self.
use yansi::Style;
let plain = Style::default();
assert!(!plain.is_bold());
let styled = plain.bold();
assert!(styled.is_bold());sourcepub fn is_dimmed(&self) -> bool
pub fn is_dimmed(&self) -> bool
Returns true if the dimmed property is set on self.
use yansi::Style;
let plain = Style::default();
assert!(!plain.is_dimmed());
let styled = plain.dimmed();
assert!(styled.is_dimmed());sourcepub fn is_italic(&self) -> bool
pub fn is_italic(&self) -> bool
Returns true if the italic property is set on self.
use yansi::Style;
let plain = Style::default();
assert!(!plain.is_italic());
let styled = plain.italic();
assert!(styled.is_italic());sourcepub fn is_underline(&self) -> bool
pub fn is_underline(&self) -> bool
Returns true if the underline property is set on self.
use yansi::Style;
let plain = Style::default();
assert!(!plain.is_underline());
let styled = plain.underline();
assert!(styled.is_underline());sourcepub fn is_blink(&self) -> bool
pub fn is_blink(&self) -> bool
Returns true if the blink property is set on self.
use yansi::Style;
let plain = Style::default();
assert!(!plain.is_blink());
let styled = plain.blink();
assert!(styled.is_blink());sourcepub fn is_invert(&self) -> bool
pub fn is_invert(&self) -> bool
Returns true if the invert property is set on self.
use yansi::Style;
let plain = Style::default();
assert!(!plain.is_invert());
let styled = plain.invert();
assert!(styled.is_invert());Returns true if the hidden property is set on self.
use yansi::Style;
let plain = Style::default();
assert!(!plain.is_hidden());
let styled = plain.hidden();
assert!(styled.is_hidden());sourcepub fn is_strikethrough(&self) -> bool
pub fn is_strikethrough(&self) -> bool
Returns true if the strikethrough property is set on self.
use yansi::Style;
let plain = Style::default();
assert!(!plain.is_strikethrough());
let styled = plain.strikethrough();
assert!(styled.is_strikethrough());sourcepub fn fmt_prefix(&self, f: &mut dyn Write) -> Result
pub fn fmt_prefix(&self, f: &mut dyn Write) -> Result
Writes the ANSI code prefix for the currently set styles.
This method is intended to be used inside of fmt::Display and
fmt::Debug implementations for custom or specialized use-cases. Most
users should use Paint for all painting needs.
This method writes the ANSI code prefix irrespective of whether painting
is currently enabled or disabled. To write the prefix only if painting
is enabled, condition a call to this method on Paint::is_enabled().
Example
use std::fmt;
use yansi::Style;
struct CustomItem {
item: u32,
style: Style
}
impl fmt::Display for CustomItem {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
self.style.fmt_prefix(f)?;
write!(f, "number: {}", self.item)?;
self.style.fmt_suffix(f)
}
}sourcepub fn fmt_suffix(&self, f: &mut dyn Write) -> Result
pub fn fmt_suffix(&self, f: &mut dyn Write) -> Result
Writes the ANSI code suffix for the currently set styles.
This method is intended to be used inside of fmt::Display and
fmt::Debug implementations for custom or specialized use-cases. Most
users should use Paint for all painting needs.
This method writes the ANSI code suffix irrespective of whether painting
is currently enabled or disabled. To write the suffix only if painting
is enabled, condition a call to this method on Paint::is_enabled().
Example
use std::fmt;
use yansi::Style;
struct CustomItem {
item: u32,
style: Style
}
impl fmt::Display for CustomItem {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
self.style.fmt_prefix(f)?;
write!(f, "number: {}", self.item)?;
self.style.fmt_suffix(f)
}
}Trait Implementations
sourceimpl Ord for Style
impl Ord for Style
1.21.0 · sourcefn max(self, other: Self) -> Self
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
1.21.0 · sourcefn min(self, other: Self) -> Self
fn min(self, other: Self) -> Self
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
Restrict a value to a certain interval. Read more
sourceimpl PartialOrd<Style> for Style
impl PartialOrd<Style> for Style
sourcefn partial_cmp(&self, other: &Style) -> Option<Ordering>
fn partial_cmp(&self, other: &Style) -> Option<Ordering>
This method returns an ordering between self and other values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
impl Copy for Style
impl Eq for Style
impl StructuralEq for Style
Auto Trait Implementations
impl RefUnwindSafe for Style
impl Send for Style
impl Sync for Style
impl Unpin for Style
impl UnwindSafe for Style
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more