Struct nu_ansi_term::Style
source · pub struct Style {
pub foreground: Option<Color>,
pub background: Option<Color>,
pub is_bold: bool,
pub is_dimmed: bool,
pub is_italic: bool,
pub is_underline: bool,
pub is_blink: bool,
pub is_reverse: bool,
pub is_hidden: bool,
pub is_strikethrough: bool,
pub prefix_with_reset: bool,
}
Expand description
A style is a collection of properties that can format a string using ANSI escape codes.
§Examples
use nu_ansi_term::{Style, Color};
let style = Style::new().bold().on(Color::Black);
println!("{}", style.paint("Bold on black"));
Fields§
§foreground: Option<Color>
The style’s foreground color, if it has one.
background: Option<Color>
The style’s background color, if it has one.
is_bold: bool
Whether this style is bold.
is_dimmed: bool
Whether this style is dimmed.
is_italic: bool
Whether this style is italic.
is_underline: bool
Whether this style is underlined.
is_blink: bool
Whether this style is blinking.
is_reverse: bool
Whether this style has reverse colors.
Whether this style is hidden.
is_strikethrough: bool
Whether this style is struckthrough.
prefix_with_reset: bool
Wether this style is always displayed starting with a reset code to clear any remaining style artifacts
Implementations§
source§impl Style
impl Style
sourcepub const fn prefix(self) -> Prefix
pub const fn prefix(self) -> Prefix
The prefix bytes for this style. These are the bytes that tell the terminal to use a different color or font style.
§Examples
use nu_ansi_term::{Style, Color::Blue};
let style = Style::default().bold();
assert_eq!("\x1b[1m",
style.prefix().to_string());
let style = Blue.bold();
assert_eq!("\x1b[1;34m",
style.prefix().to_string());
let style = Style::default();
assert_eq!("",
style.prefix().to_string());
§Examples with gnu_legacy feature enabled
Styles like bold, underlined, etc. are two-digit now
use nu_ansi_term::{Style, Color::Blue};
let style = Style::default().bold();
assert_eq!("\x1b[01m",
style.prefix().to_string());
let style = Blue.bold();
assert_eq!("\x1b[01;34m",
style.prefix().to_string());
sourcepub const fn infix(self, next: Style) -> Infix
pub const fn infix(self, next: Style) -> Infix
The infix bytes between this style and next
style. These are the bytes
that tell the terminal to change the style to next
. These may include
a reset followed by the next color and style, depending on the two styles.
§Examples
use nu_ansi_term::{Style, Color::Green};
let style = Style::default().bold();
assert_eq!("\x1b[32m",
style.infix(Green.bold()).to_string());
let style = Green.normal();
assert_eq!("\x1b[1m",
style.infix(Green.bold()).to_string());
let style = Style::default();
assert_eq!("",
style.infix(style).to_string());
§Examples with gnu_legacy feature enabled
Styles like bold, underlined, etc. are two-digit now
use nu_ansi_term::Color::Green;
let style = Green.normal();
assert_eq!("\x1b[01m",
style.infix(Green.bold()).to_string());
sourcepub const fn suffix(self) -> Suffix
pub const fn suffix(self) -> Suffix
The suffix for this style. These are the bytes that tell the terminal to reset back to its normal color and font style.
§Examples
use nu_ansi_term::{Style, Color::Green};
let style = Style::default().bold();
assert_eq!("\x1b[0m",
style.suffix().to_string());
let style = Green.normal().bold();
assert_eq!("\x1b[0m",
style.suffix().to_string());
let style = Style::default();
assert_eq!("",
style.suffix().to_string());
source§impl Style
impl Style
sourcepub fn new() -> Style
pub fn new() -> Style
Creates a new Style with no properties set.
§Examples
use nu_ansi_term::Style;
let style = Style::new();
println!("{}", style.paint("hi"));
sourcepub const fn reset_before_style(&self) -> Style
pub const fn reset_before_style(&self) -> Style
sourcepub const fn bold(&self) -> Style
pub const fn bold(&self) -> Style
Returns a Style
with the bold property set.
§Examples
use nu_ansi_term::Style;
let style = Style::new().bold();
println!("{}", style.paint("hey"));
sourcepub const fn dimmed(&self) -> Style
pub const fn dimmed(&self) -> Style
Returns a Style
with the dimmed property set.
§Examples
use nu_ansi_term::Style;
let style = Style::new().dimmed();
println!("{}", style.paint("sup"));
sourcepub const fn italic(&self) -> Style
pub const fn italic(&self) -> Style
Returns a Style
with the italic property set.
§Examples
use nu_ansi_term::Style;
let style = Style::new().italic();
println!("{}", style.paint("greetings"));
sourcepub const fn underline(&self) -> Style
pub const fn underline(&self) -> Style
Returns a Style
with the underline property set.
§Examples
use nu_ansi_term::Style;
let style = Style::new().underline();
println!("{}", style.paint("salutations"));
sourcepub const fn blink(&self) -> Style
pub const fn blink(&self) -> Style
Returns a Style
with the blink property set.
§Examples
use nu_ansi_term::Style;
let style = Style::new().blink();
println!("{}", style.paint("wazzup"));
sourcepub const fn reverse(&self) -> Style
pub const fn reverse(&self) -> Style
Returns a Style
with the reverse property set.
§Examples
use nu_ansi_term::Style;
let style = Style::new().reverse();
println!("{}", style.paint("aloha"));
Returns a Style
with the hidden property set.
§Examples
use nu_ansi_term::Style;
let style = Style::new().hidden();
println!("{}", style.paint("ahoy"));
sourcepub const fn strikethrough(&self) -> Style
pub const fn strikethrough(&self) -> Style
Returns a Style
with the strikethrough property set.
§Examples
use nu_ansi_term::Style;
let style = Style::new().strikethrough();
println!("{}", style.paint("yo"));
sourcepub const fn fg(&self, foreground: Color) -> Style
pub const fn fg(&self, foreground: Color) -> Style
Returns a Style
with the foreground color property set.
§Examples
use nu_ansi_term::{Style, Color};
let style = Style::new().fg(Color::Yellow);
println!("{}", style.paint("hi"));
Trait Implementations§
source§impl Debug for Style
impl Debug for Style
Styles have a special Debug
implementation that only shows the fields that
are set. Fields that haven’t been touched aren’t included in the output.
This behaviour gets bypassed when using the alternate formatting mode
format!("{:#?}")
.
use nu_ansi_term::Color::{Red, Blue};
assert_eq!("Style { fg(Red), on(Blue), bold, italic }",
format!("{:?}", Red.on(Blue).bold().italic()));
source§impl Default for Style
impl Default for Style
source§fn default() -> Style
fn default() -> Style
Returns a style with no properties set. Formatting text using this style returns the exact same text.
use nu_ansi_term::Style;
assert_eq!(None, Style::default().foreground);
assert_eq!(None, Style::default().background);
assert_eq!(false, Style::default().is_bold);
assert_eq!("txt", Style::default().paint("txt").to_string());
source§impl From<Color> for Style
impl From<Color> for Style
source§fn from(color: Color) -> Style
fn from(color: Color) -> Style
You can turn a Color
into a Style
with the foreground color set
with the From
trait.
use nu_ansi_term::{Style, Color};
let green_foreground = Style::default().fg(Color::Green);
assert_eq!(green_foreground, Color::Green.normal());
assert_eq!(green_foreground, Color::Green.into());
assert_eq!(green_foreground, Style::from(Color::Green));
source§impl PartialEq for Style
impl PartialEq for Style
impl Copy for Style
impl Eq for Style
impl StructuralPartialEq 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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)