Skip to main content

DesignLanguage

Enum DesignLanguage 

Source
#[non_exhaustive]
pub enum DesignLanguage { Material3, Cupertino, Glyph, Custom(&'static str), }
Expand description

Which design language assembled a Theme — a Theme itself stays a single, language-agnostic aggregate struct; this is just a tag app/shell code can branch on (e.g. to pick per-platform interaction affordances), not a second Theme type. No constructor in this crate produces anything but the derived default: a design system sets its own tag through ThemeBuilder::design_language while assembling its baseline, from its own crate.

The tag is identity, not behavior: a design system styles itself entirely via Theme‘s tokens plus Theme::extensions (see ThemeExtensions) — this enum just lets a host/widget recognize which system is active, or deliberately ignore an unrecognized one. #[non_exhaustive] and Custom together mean a new built-in variant, or a third-party system tagging itself, is never a breaking change for downstream code: the built-in ==-based branch site (frust-widgets’ slider) already treats anything that isn’t Cupertino as the neutral path by construction, so an unrecognized Custom id falls through safely. Two Custom tags compare equal by string content, not by pointer/interning identity.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Material3

Material 3 (Android/cross-platform baseline). Default — the tag Theme::neutral carries for want of a neutral variant (see that constructor’s caveat), and the one frust-material sets explicitly.

§

Cupertino

Cupertino (iOS) — the tag frust-cupertino sets.

§

Glyph

Glyph — the tag frust-glyph sets.

§

Custom(&'static str)

A third-party design system’s identity tag — the id is the system’s stable name (e.g. "yaru"). Carried so hosts/widgets that branch on language can recognize (or deliberately ignore) an external system; the built-in == branch site (the slider) treats any Custom as the neutral path by construction. Compared by string content — Custom("yaru") == Custom("yaru") even across two distinct &'static str allocations with the same bytes.

Trait Implementations§

Source§

impl Clone for DesignLanguage

Source§

fn clone(&self) -> Self

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 DesignLanguage

Source§

impl Debug for DesignLanguage

Source§

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

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

impl Default for DesignLanguage

Source§

fn default() -> Self

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

impl Eq for DesignLanguage

Source§

impl PartialEq for DesignLanguage

Source§

fn eq(&self, other: &Self) -> 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 DesignLanguage

Auto Trait Implementations§

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> Brush for T
where T: Clone + PartialEq + Default + Debug,

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

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> StorageAccess<T> for T

Source§

fn as_borrowed(&self) -> &T

Borrows the value.
Source§

fn into_taken(self) -> T

Takes the value.
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 = !

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

fn try_from(value: U) -> Result<T, !>

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.