#[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
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
impl Clone for DesignLanguage
impl Copy for DesignLanguage
Source§impl Debug for DesignLanguage
impl Debug for DesignLanguage
Source§impl Default for DesignLanguage
impl Default for DesignLanguage
impl Eq for DesignLanguage
Source§impl PartialEq for DesignLanguage
impl PartialEq for DesignLanguage
impl StructuralPartialEq for DesignLanguage
Auto Trait Implementations§
impl Freeze for DesignLanguage
impl RefUnwindSafe for DesignLanguage
impl Send for DesignLanguage
impl Sync for DesignLanguage
impl Unpin for DesignLanguage
impl UnsafeUnpin for DesignLanguage
impl UnwindSafe for DesignLanguage
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<T> Brush for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.