#[non_exhaustive]pub enum Attribute {
Show 28 variants
Reset,
Bold,
Dim,
Italic,
Underlined,
DoubleUnderlined,
Undercurled,
Underdotted,
Underdashed,
SlowBlink,
RapidBlink,
Reverse,
Hidden,
CrossedOut,
Fraktur,
NoBold,
NormalIntensity,
NoItalic,
NoUnderline,
NoBlink,
NoReverse,
NoHidden,
NotCrossedOut,
Framed,
Encircled,
OverLined,
NotFramedOrEncircled,
NotOverLined,
}
Expand description
Represents an attribute.
§Platform-specific Notes
- Only UNIX and Windows 10 terminals do support text attributes.
- Keep in mind that not all terminals support all attributes.
- Crossterm implements almost all attributes listed in the SGR parameters.
Attribute | Windows | UNIX | Notes |
---|---|---|---|
Reset | ✓ | ✓ | |
Bold | ✓ | ✓ | |
Dim | ✓ | ✓ | |
Italic | ? | ? | Not widely supported, sometimes treated as inverse. |
Underlined | ✓ | ✓ | |
SlowBlink | ? | ? | Not widely supported, sometimes treated as inverse. |
RapidBlink | ? | ? | Not widely supported. MS-DOS ANSI.SYS; 150+ per minute. |
Reverse | ✓ | ✓ | |
Hidden | ✓ | ✓ | Also known as Conceal. |
Fraktur | ✗ | ✓ | Legible characters, but marked for deletion. |
DefaultForegroundColor | ? | ? | Implementation specific (according to standard). |
DefaultBackgroundColor | ? | ? | Implementation specific (according to standard). |
Framed | ? | ? | Not widely supported. |
Encircled | ? | ? | This should turn on the encircled attribute. |
OverLined | ? | ? | This should draw a line at the top of the text. |
§Examples
Basic usage:
use crossterm::style::Attribute;
println!(
"{} Underlined {} No Underline",
Attribute::Underlined,
Attribute::NoUnderline
);
Style existing text:
use crossterm::style::Stylize;
println!("{}", "Bold text".bold());
println!("{}", "Underlined text".underlined());
println!("{}", "Negative text".negative());
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Reset
Resets all the attributes.
Bold
Increases the text intensity.
Dim
Decreases the text intensity.
Italic
Emphasises the text.
Underlined
Underlines the text.
DoubleUnderlined
Double underlines the text.
Undercurled
Undercurls the text.
Underdotted
Underdots the text.
Underdashed
Underdashes the text.
SlowBlink
Makes the text blinking (< 150 per minute).
RapidBlink
Makes the text blinking (>= 150 per minute).
Reverse
Swaps foreground and background colors.
Hidden
Hides the text (also known as Conceal).
CrossedOut
Crosses the text.
Fraktur
Sets the Fraktur typeface.
Mostly used for mathematical alphanumeric symbols.
NoBold
Turns off the Bold
attribute. - Inconsistent - Prefer to use NormalIntensity
NormalIntensity
Switches the text back to normal intensity (no bold, italic).
NoItalic
Turns off the Italic
attribute.
NoUnderline
Turns off the Underlined
attribute.
NoBlink
Turns off the text blinking (SlowBlink
or RapidBlink
).
NoReverse
Turns off the Reverse
attribute.
NoHidden
Turns off the Hidden
attribute.
NotCrossedOut
Turns off the CrossedOut
attribute.
Framed
Makes the text framed.
Encircled
Makes the text encircled.
OverLined
Draws a line at the top of the text.
NotFramedOrEncircled
Turns off the Frame
and Encircled
attributes.
NotOverLined
Turns off the OverLined
attribute.
Implementations§
source§impl Attribute
impl Attribute
sourcepub const fn bytes(self) -> u32
pub const fn bytes(self) -> u32
Returns a u32 with one bit set, which is the signature of this attribute in the Attributes bitset.
The +1 enables storing Reset (whose index is 0) in the bitset Attributes.
sourcepub fn sgr(self) -> String
pub fn sgr(self) -> String
Returns the SGR attribute value.
See https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters
Trait Implementations§
source§impl BitAnd<Attribute> for Attributes
impl BitAnd<Attribute> for Attributes
source§impl BitOr<Attribute> for Attributes
impl BitOr<Attribute> for Attributes
source§impl BitXor<Attribute> for Attributes
impl BitXor<Attribute> for Attributes
source§impl From<Attribute> for Attributes
impl From<Attribute> for Attributes
source§impl Ord for Attribute
impl Ord for Attribute
source§impl PartialEq for Attribute
impl PartialEq for Attribute
source§impl PartialOrd for Attribute
impl PartialOrd for Attribute
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 more