Skip to main content

Fallback

Enum Fallback 

Source
#[non_exhaustive]
pub enum Fallback { Wrap, Stack, Shed, Menu, }
Expand description

What a group does when it is Room::Tight.

Authored, and required: the field carrying this has no Default and a group cannot be described without saying what it does when it runs out of room. Max ruled on that 2026-08-18 – more intentionality from layout designers is acceptable so long as the constraints are solvable, because the goal is enabling good layouts rather than rescuing bad ones. A default here would be the crate guessing, and the guess would be silently wrong on the screens that matter.

Relief resolves inside-out. A group asks its children to fall back before falling back itself, or an outer group collapses while an inner one still had slack.

§No Swap

An authored alternate group for the tight case is deliberately out of the first cut. It doubles the description for that group and the two halves can drift, which is the failure this vocabulary exists to end. Add it when a site proves it needs one.

#[non_exhaustive], Width’s reasoning. Unlike Priority there is no order to preserve, so a member can be appended.

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.
§

Wrap

One row becomes two. Every member stays, in the order described.

§

Stack

A row becomes a column. Every member stays, full width.

§

Shed

Members drop by Priority, down to Priority::Essential.

What a narrow table already does with its columns, applied to a group. What drops is gone from the screen, so this is right when the dropped members are facts the reader can do without and wrong when they are the only way to act.

§

Menu

The members Shed would drop move into one overflow control instead.

The answer when a group holds actions. A control is not a fact: dropping it does not cost the reader a detail, it costs them the only way to act, which is RowPart::priority’s argument one level up.

Trait Implementations§

Source§

impl Clone for Fallback

Source§

fn clone(&self) -> Fallback

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 Fallback

Source§

impl Debug for Fallback

Source§

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

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

impl Eq for Fallback

Source§

impl Hash for Fallback

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 Fallback

Source§

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

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> 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.