Skip to main content

Style

Struct Style 

Source
pub struct Style { /* private fields */ }
Expand description

A style consisting of foreground and background color.

No text modifiers (bold, italic, underline, etc.) by design – retroglyph is a spiritual remake of BearLibTerminal, which doesn’t support them either. A pixel/bitmap-font renderer can’t fake most of them (no bold font variant, no underline stroke) without real per-style assets, so rather than have them work in a real terminal and silently do nothing in the software backend, they’re not part of the API at all. Color and glyph choice are the only two knobs, in every backend.

Implementations§

Source§

impl Style

Source

pub fn new() -> Self

Creates a new style with default values.

Source

pub const fn fg(self, color: Color) -> Self

Sets the foreground color.

Source

pub const fn bg(self, color: Color) -> Self

Sets the background color.

Source

pub const fn foreground(&self) -> Color

Returns the foreground color.

Source

pub const fn background(&self) -> Color

Returns the background color.

Source

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, 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);
Source

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.

Source

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 Clone for Style

Source§

fn clone(&self) -> Style

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Style

Source§

impl Debug for Style

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Style

Source§

fn default() -> Style

Returns the “default value” for a type. Read more
Source§

impl Eq for Style

Source§

impl Hash for Style

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Style

Source§

fn eq(&self, other: &Style) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<C> WithAlpha for C
where C: Copy,

Source§

fn with_alpha_first<A>(self, alpha: A) -> AlphaFirst<A, Self>

Wraps self with alpha, storing alpha before the color in memory (see AlphaFirst).
Source§

fn with_alpha_last<A>(self, alpha: A) -> AlphaLast<A, Self>

Wraps self with alpha, storing alpha after the color in memory (see AlphaLast).