Skip to main content

Theme

Struct Theme 

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

A mapping from SemanticRole to ResolvedStyle.

Themes provide a reusable appearance layer: the consumer assigns semantic roles, and the theme determines what each role looks like. This keeps style definitions shared across consumers instead of duplicated.

Missing roles fall back to ResolvedStyle::default().

Implementations§

Source§

impl Theme

Source

pub fn new(name: impl Into<String>) -> Self

Create a theme with the given name and empty style map.

Source

pub fn name(&self) -> &str

Theme name.

Source

pub fn set_base_fonts(&mut self, families: Vec<String>)

Set the base (body) font families.

Source

pub fn set_mono_fonts(&mut self, families: Vec<String>)

Set the monospace font families.

Source

pub fn base_fonts(&self) -> &[String]

Base font families.

Source

pub fn mono_fonts(&self) -> &[String]

Monospace font families.

Source

pub fn set_style(&mut self, role: SemanticRole, style: ResolvedStyle)

Register a style for a semantic role.

Source

pub fn style_for(&self, role: SemanticRole) -> ResolvedStyle

Get the style for a semantic role, falling back to ResolvedStyle::default().

Source

pub fn has_style(&self, role: SemanticRole) -> bool

Check whether a style is registered for the given role.

Source

pub fn len(&self) -> usize

Number of registered role styles.

Source

pub fn is_empty(&self) -> bool

Whether no role styles are registered.

Source

pub fn iter(&self) -> impl Iterator<Item = (&SemanticRole, &ResolvedStyle)>

Iterate all registered (role, style) pairs.

Source

pub fn merge(&mut self, overlay: &Theme)

Merge another theme on top of this one.

Styles from overlay replace styles in self for the same role. Styles in self that are not in overlay are preserved. Font families from overlay replace those in self if non-empty.

Source

pub fn academic() -> Self

Create the academic theme: serif-based document.

Source

pub fn technical() -> Self

Create the technical theme: monospace-heavy document.

Source

pub fn load(path: impl AsRef<Path>) -> Result<Self, ThemeLoadError>

Load a theme from a TOML file.

The loaded theme is merged on top of the default theme, so only overridden roles need to be specified.

Source

pub fn from_toml(toml_str: &str) -> Result<Self, ThemeLoadError>

Parse a theme from a TOML string.

The parsed theme is merged on top of the default theme, so only overridden roles need to be specified.

Trait Implementations§

Source§

impl Clone for Theme

Source§

fn clone(&self) -> Theme

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Theme

Source§

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

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

impl Default for Theme

Source§

fn default() -> Self

Create the default theme: clean sans-serif document (Noto Sans).

Auto Trait Implementations§

§

impl Freeze for Theme

§

impl RefUnwindSafe for Theme

§

impl Send for Theme

§

impl Sync for Theme

§

impl Unpin for Theme

§

impl UnsafeUnpin for Theme

§

impl UnwindSafe for Theme

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.