pub enum Color {
}
Expand description
Enum representing a terminal color.
Note: The color examples below are purely demonstrative. The actual color rendered depends entirely on the terminal and its configuration, the latter of which is entirely arbitrary.
Variants§
Primary
Terminal primary color #9. (foreground code 39
, background code 49
).
This is the terminal’s defined “primary” color, that is, the configured default foreground and background colors. As such, this color as a foreground looks “good” against the terminal’s default background color, and this color is a “good” background color for the terminal’s default foreground color.
Fixed(u8)
A color from 0 to 255, for use in 256-color terminals.
Rgb(u8, u8, u8)
A 24-bit R G B “true color”, as specified by ISO-8613-3.
Black
Black #0
(foreground code 30
, background code 40
).
Red
Red #1
(foreground code 31
, background code 41
).
Green
Green: #2
(foreground code 32
, background code 42
).
Yellow
Yellow: #3
(foreground code 33
, background code 43
).
Blue
Blue: #4
(foreground code 34
, background code 44
).
Magenta
Magenta: #5
(foreground code 35
, background code 45
).
Cyan
Cyan: #6
(foreground code 36
, background code 46
).
White
White: #7
(foreground code 37
, background code 47
).
BrightBlack
Bright Black #0
(foreground code 90
, background code 100
).
BrightRed
Bright Red #1
(foreground code 91
, background code 101
).
BrightGreen
Bright Green: #2
(foreground code 92
, background code 102
).
BrightYellow
Bright Yellow: #3
(foreground code 93
, background code 103
).
BrightBlue
Bright Blue: #4
(foreground code 94
, background code 104
).
BrightMagenta
Bright Magenta: #5
(foreground code 95
, background code 105
).
BrightCyan
Bright Cyan: #6
(foreground code 96
, background code 106
).
BrightWhite
Bright White: #7
(foreground code 97
, background code 107
).
Implementations§
source§impl Color
impl Color
sourcepub const fn foreground(self) -> Style
pub const fn foreground(self) -> Style
Returns a Style
with a foreground color of self
.
§Example
use yansi::{Style, Color::*};
// A style with a foreground color of "yellow".
static DEBUG: Style = Yellow.foreground();
// This is equivalent to the above.
static DEBUG_S: Style = Style::new().fg(Yellow);
// The following two are equivalent. The latter is preferred.
static DEBUG_A: Style = Yellow.foreground().bold();
static DEBUG_B: Style = Yellow.bold();
sourcepub const fn background(self) -> Style
pub const fn background(self) -> Style
Returns a Style
with a background color of self
.
§Example
use yansi::{Style, Color::*};
// A style with a background color of "yellow".
static DEBUG: Style = Yellow.background();
// This is equivalent to the above.
static DEBUG_S: Style = Style::new().bg(Yellow);
// The following two are equivalent. The latter is preferred.
static DEBUG_A: Style = Yellow.background().green();
static DEBUG_B: Style = Green.on_yellow();
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 Color
impl Ord for Color
source§impl PartialEq for Color
impl PartialEq for Color
source§impl PartialOrd for Color
impl PartialOrd for Color
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 Color
impl Eq for Color
impl StructuralPartialEq for Color
Auto Trait Implementations§
impl Freeze for Color
impl RefUnwindSafe for Color
impl Send for Color
impl Sync for Color
impl Unpin for Color
impl UnwindSafe for Color
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);