Struct colored_json::Style
source · pub struct Style {
pub foreground: Option<Color>,
pub background: Option<Color>,
pub condition: Option<Condition>,
/* private fields */
}
Expand description
A set of styling options.
§Equivalence and Ordering
Only a style’s foreground
, background
, and set of attributes
are
considered when testing for equivalence or producing an ordering via
PartialEq
or Eq
, and PartialOrd
or Ord
. A style’s quirks and
conditions are ignored.
Fields§
§foreground: Option<Color>
The foreground color. Defaults to None
.
use yansi::{Style, Color};
assert_eq!(Style::new().foreground, None);
assert_eq!(Style::new().green().foreground, Some(Color::Green));
background: Option<Color>
The background color. Defaults to None
.
use yansi::{Style, Color};
assert_eq!(Style::new().background, None);
assert_eq!(Style::new().on_red().background, Some(Color::Red));
condition: Option<Condition>
The condition.
To check a style’s condition directly, use Style::enabled()
:
use yansi::{Style, Condition};
let style = Style::new().whenever(Condition::ALWAYS);
assert!(style.enabled());
let style = Style::new().whenever(Condition::NEVER);
assert!(!style.enabled());
Implementations§
source§impl Style
impl Style
sourcepub const fn new() -> Style
pub const fn new() -> Style
Returns a new style with no foreground or background, no attributes
or quirks, and Condition::DEFAULT
.
This is the default returned by Default::default()
.
§Example
use yansi::Style;
assert_eq!(Style::new(), Style::default());
sourcepub fn enabled(&self) -> bool
pub fn enabled(&self) -> bool
Returns true
if this style is enabled, based on
condition
.
Note: For a style to be effected, both this method and
yansi::is_enabled()
must return true
.
When there is no condition set, this method always returns true
. When
a condition has been set, this evaluates the condition and returns the
result.
§Example
use yansi::{Style, Condition};
let style = Style::new().whenever(Condition::ALWAYS);
assert!(style.enabled());
let style = Style::new().whenever(Condition::NEVER);
assert!(!style.enabled());
sourcepub fn fmt_prefix(&self, f: &mut dyn Write) -> Result<(), Error>
pub fn fmt_prefix(&self, f: &mut dyn Write) -> Result<(), Error>
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 Painted
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 is_enabled()
.
§Example
use core::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 prefix(&self) -> Cow<'static, str>
pub fn prefix(&self) -> Cow<'static, str>
Returns the ANSI code sequence prefix for the style as a string.
This returns a string with the exact same sequence written by
fmt_prefix()
. See that method for details.
sourcepub fn fmt_suffix(&self, f: &mut dyn Write) -> Result<(), Error>
pub fn fmt_suffix(&self, f: &mut dyn Write) -> Result<(), Error>
Writes the ANSI code sequence suffix for the style.
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 Painted
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 is_enabled()
.
§Example
use core::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 suffix(&self) -> Cow<'static, str>
pub fn suffix(&self) -> Cow<'static, str>
Returns the ANSI code sequence suffix for the style as a string.
This returns a string with the exact same sequence written by
fmt_suffix()
. See that method for details.
sourcepub const fn fg(self, value: Color) -> Style
pub const fn fg(self, value: Color) -> Style
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) -> Style
pub const fn bright_black(self) -> Style
Returns self
with the
fg()
set to
Color::BrightBlack
.
§Example
println!("{}", value.bright_black());
sourcepub const fn bright_red(self) -> Style
pub const fn bright_red(self) -> Style
sourcepub const fn bright_green(self) -> Style
pub const fn bright_green(self) -> Style
Returns self
with the
fg()
set to
Color::BrightGreen
.
§Example
println!("{}", value.bright_green());
sourcepub const fn bright_yellow(self) -> Style
pub const fn bright_yellow(self) -> Style
Returns self
with the
fg()
set to
Color::BrightYellow
.
§Example
println!("{}", value.bright_yellow());
sourcepub const fn bright_blue(self) -> Style
pub const fn bright_blue(self) -> Style
sourcepub const fn bright_magenta(self) -> Style
pub const fn bright_magenta(self) -> Style
Returns self
with the
fg()
set to
Color::BrightMagenta
.
§Example
println!("{}", value.bright_magenta());
sourcepub const fn bright_cyan(self) -> Style
pub const fn bright_cyan(self) -> Style
sourcepub const fn bright_white(self) -> Style
pub const fn bright_white(self) -> Style
Returns self
with the
fg()
set to
Color::BrightWhite
.
§Example
println!("{}", value.bright_white());
sourcepub const fn bg(self, value: Color) -> Style
pub const fn bg(self, value: Color) -> Style
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) -> Style
pub const fn on_primary(self) -> Style
sourcepub const fn on_magenta(self) -> Style
pub const fn on_magenta(self) -> Style
sourcepub const fn on_bright_black(self) -> Style
pub const fn on_bright_black(self) -> Style
Returns self
with the
bg()
set to
Color::BrightBlack
.
§Example
println!("{}", value.on_bright_black());
sourcepub const fn on_bright_red(self) -> Style
pub const fn on_bright_red(self) -> Style
sourcepub const fn on_bright_green(self) -> Style
pub const fn on_bright_green(self) -> Style
Returns self
with the
bg()
set to
Color::BrightGreen
.
§Example
println!("{}", value.on_bright_green());
sourcepub const fn on_bright_yellow(self) -> Style
pub const fn on_bright_yellow(self) -> Style
Returns self
with the
bg()
set to
Color::BrightYellow
.
§Example
println!("{}", value.on_bright_yellow());
sourcepub const fn on_bright_blue(self) -> Style
pub const fn on_bright_blue(self) -> Style
Returns self
with the
bg()
set to
Color::BrightBlue
.
§Example
println!("{}", value.on_bright_blue());
sourcepub const fn on_bright_magenta(self) -> Style
pub const fn on_bright_magenta(self) -> Style
Returns self
with the
bg()
set to
Color::BrightMagenta
.
§Example
println!("{}", value.on_bright_magenta());
sourcepub const fn on_bright_cyan(self) -> Style
pub const fn on_bright_cyan(self) -> Style
Returns self
with the
bg()
set to
Color::BrightCyan
.
§Example
println!("{}", value.on_bright_cyan());
sourcepub const fn on_bright_white(self) -> Style
pub const fn on_bright_white(self) -> Style
Returns self
with the
bg()
set to
Color::BrightWhite
.
§Example
println!("{}", value.on_bright_white());
sourcepub const fn attr(self, value: Attribute) -> Style
pub const fn attr(self, value: Attribute) -> Style
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) -> Style
pub const fn underline(self) -> Style
Returns self
with the
attr()
set to
Attribute::Underline
.
§Example
println!("{}", value.underline());
sourcepub const fn rapid_blink(self) -> Style
pub const fn rapid_blink(self) -> Style
Returns self
with the
attr()
set to
Attribute::RapidBlink
.
§Example
println!("{}", value.rapid_blink());
sourcepub const fn quirk(self, value: Quirk) -> Style
pub const fn quirk(self, value: Quirk) -> Style
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 clear(self) -> Style
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
pub const fn clear(self) -> Style
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.sourcepub const fn whenever(self, value: Condition) -> Style
pub const fn whenever(self, value: Condition) -> Style
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 Ord for Style
impl Ord for Style
source§impl PartialEq for Style
impl PartialEq for Style
source§impl PartialOrd for Style
impl PartialOrd for Style
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moreimpl Copy for Style
impl Eq for Style
Auto Trait Implementations§
impl Freeze for Style
impl RefUnwindSafe for Style
impl Send for Style
impl Sync for Style
impl Unpin for Style
impl UnwindSafe for Style
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>
Returns self
with the
fg()
set to
Color::BrightBlack
.
§Example
println!("{}", value.bright_black());
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>
Returns self
with the
fg()
set to
Color::BrightGreen
.
§Example
println!("{}", value.bright_green());
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>
Returns self
with the
fg()
set to
Color::BrightWhite
.
§Example
println!("{}", value.bright_white());
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 clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.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);