pub struct Style { /* private fields */ }Expand description
A style consisting of foreground and background color.
§Examples
use retroglyph_core::color::{Color, Style};
let style = Style::new().fg(Color::GREEN).bg(Color::BLACK);
assert_eq!(style.foreground(), Color::GREEN);
assert_eq!(style.background(), Color::BLACK);Implementations§
Source§impl Style
impl Style
Sourcepub const fn fg(self, color: Color) -> Self
pub const fn fg(self, color: Color) -> Self
Sets the foreground color, which colors the cell’s glyph.
Does not tint a sprite: on a pixel backend, a cell whose glyph resolves to a sprite is
composited from the sprite’s own pixels and ignores this color entirely. The same cell
drawn by a cell backend falls back to its glyph and is colored by it, so one value can
read very differently across backends. See
Surface::put_span.
Sourcepub const fn foreground(&self) -> Color
pub const fn foreground(&self) -> Color
Returns the foreground color.
Sourcepub const fn background(&self) -> Color
pub const fn background(&self) -> Color
Returns the background color.
Sourcepub fn patch(self, other: Self) -> Self
pub fn patch(self, other: Self) -> Self
Overlays another style onto this one, only if fields in other are non-default.
Color::Default in other means “unset”, not “reset to default”: a field left at
Color::Default is skipped, and self’s existing value for that field is kept. This
mirrors ratatui’s Style::patch convention, so Style::new().fg(Color::Default) is a
no-op when patched onto anything, and there is no way to use patch to explicitly clear a
field back to Color::Default; use Style::reset_fg or Style::reset_bg for that.
use retroglyph_core::color::{Color, Style};
let base = Style::new().fg(Color::RED).bg(Color::BLUE);
// Patching with a default `fg` leaves `base`'s red foreground untouched.
let patched = base.patch(Style::new().bg(Color::GREEN));
assert_eq!(patched.foreground(), Color::RED);
assert_eq!(patched.background(), Color::GREEN);Sourcepub const fn reset_fg(self) -> Self
pub const fn reset_fg(self) -> Self
Resets the foreground color to Color::Default.
Unlike Style::patch, which treats Color::Default as “leave unset”, this explicitly
clears the field. Use this when a caller needs to undo a previously patched-in foreground
color rather than merge in a new one.
Sourcepub const fn reset_bg(self) -> Self
pub const fn reset_bg(self) -> Self
Resets the background color to Color::Default.
Unlike Style::patch, which treats Color::Default as “leave unset”, this explicitly
clears the field. Use this when a caller needs to undo a previously patched-in background
color rather than merge in a new one.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Style
impl<'de> Deserialize<'de> for Style
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
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 UnsafeUnpin 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,
§impl<C> WithAlpha for Cwhere
C: Copy,
impl<C> WithAlpha for Cwhere
C: Copy,
§fn with_alpha_first<A>(self, alpha: A) -> AlphaFirst<A, Self>
fn with_alpha_first<A>(self, alpha: A) -> AlphaFirst<A, Self>
self with alpha, storing alpha before the color in memory
(see [AlphaFirst]).§fn with_alpha_last<A>(self, alpha: A) -> AlphaLast<A, Self>
fn with_alpha_last<A>(self, alpha: A) -> AlphaLast<A, Self>
self with alpha, storing alpha after the color in memory
(see [AlphaLast]).