Skip to main content

Module table

Module table 

Source
Expand description

Listings, in the two shapes their two readers need.

A row is built once and formatted twice. That is the whole point of this module: the data a terminal shows and the data a pipe shows are the same values in the same order, and only the arrangement differs (ADR 3).

A pipe gets fixed-width columns. Every run of a command produces the same byte offsets whatever the window is and whatever the rows contain, which is what makes the output safe to cut, to diff, and to cache.

A terminal gets a table sized to its contents, because a person is not parsing byte offsets and a column padded to a width nothing in it uses is just wasted screen. Columns shrink to fit the window, widest first, so the keys stay readable when the summaries do not fit.

Structs§

Column
One column: how a pipe lays it out, and how it is painted.

Enums§

Paint
How a column’s cells are painted.

Functions§

render
Render rows as a listing, without the tally that follows them.
tally
The shown N of M line every listing ends with, and the next page when one exists.