#[non_exhaustive]pub enum Width {
Content,
Fixed,
Fill,
}Expand description
How much room a placement asks for.
A column says it, and so does a Field. An intent, so the actual floor
stays with makeover-geometry. goingson’s task table spells these as
minmax(200px, 1fr), 140px and content-sized; only the first three words
of that survive deferral.
#[non_exhaustive], for the reason Fill and FieldKind are: a
renderer matches on this and a vocabulary that grows must not break every
renderer when it does.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Content
Takes what it needs and no more.
Fixed
A fixed share, the same at every width.
Fill
Absorbs whatever is left over.
Several fills divide what is left equally. Stated because it would
otherwise be undefined and each renderer would invent something, and
stated this way because equal division is the only sharing rule that
answers to “Any width, one answer” without a tiebreak: allocating in
declaration order makes the result depend on the order the description
was written in, which is a fact about the source file and not about the
screen. It documents what both renderers already do — CSS grid gives
1fr 1fr, ratatui gives each a Constraint::Fill(1) — rather than
changing anything.
So a row of fills is a legal thing to describe, and there is no rule against it. Measured 2026-08-16, every table in the tree uses exactly one, which is the discipline this would otherwise have had to forbid.