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) -> Style
pub const fn fg(self, color: Color) -> Style
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: Style) -> Style
pub fn patch(self, other: Style) -> Style
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) -> Style
pub const fn reset_fg(self) -> Style
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) -> Style
pub const fn reset_bg(self) -> Style
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§
impl Copy for Style
Source§impl<'de> Deserialize<'de> for Style
impl<'de> Deserialize<'de> for Style
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Style, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Style, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for Style
Source§impl Serialize for Style
impl Serialize for Style
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> WasmNotSend for Twhere
T: Send,
impl<T> WasmNotSendSync for Twhere
T: WasmNotSend + WasmNotSync,
impl<T> WasmNotSync for Twhere
T: Sync,
§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]).