pub struct Table { /* private fields */ }Expand description
A grid of cells rendered inside a box. Mirrors rich.table.Table.
Implementations§
Source§impl Table
impl Table
pub fn new() -> Self
Sourcepub fn border_style(self, style: Style) -> Self
pub fn border_style(self, style: Style) -> Self
Style the box border (edges + dividers). Composed over the table-level
style: border = style + border_style. Port of Table(border_style=…).
Sourcepub fn show_header(self, show: bool) -> Self
pub fn show_header(self, show: bool) -> Self
Whether to render the header row.
Sourcepub fn show_lines(self, show: bool) -> Self
pub fn show_lines(self, show: bool) -> Self
Draw a separator line between each body row.
Sourcepub fn show_edge(self, show: bool) -> Self
pub fn show_edge(self, show: bool) -> Self
Draw the outer box edges (top/bottom borders + left/right glyphs). When
off, only the internal dividers and content remain. Port of show_edge.
Sourcepub fn pad_edge(self, pad: bool) -> Self
pub fn pad_edge(self, pad: bool) -> Self
Pad the outer cell edges. When off, the first column drops its left pad
and the last column its right pad. Port of pad_edge.
Sourcepub fn collapse_padding(self, collapse: bool) -> Self
pub fn collapse_padding(self, collapse: bool) -> Self
Merge adjacent cell padding: an interior column’s left pad is reduced by
the previous column’s right pad. Port of collapse_padding.
Sourcepub fn style(self, style: Style) -> Self
pub fn style(self, style: Style) -> Self
Default style for the whole table. Upstream applies it as the base of the
border style (border_style = style + border_style); cell content keeps
its own styles. Port of Table(style=…).
Sourcepub fn title(self, title: impl Into<String>) -> Self
pub fn title(self, title: impl Into<String>) -> Self
A centered title rendered above the table.
Sourcepub fn caption(self, caption: impl Into<String>) -> Self
pub fn caption(self, caption: impl Into<String>) -> Self
A centered caption rendered below the table.
Sourcepub fn add_column(&mut self, header: impl Into<String>) -> &mut Self
pub fn add_column(&mut self, header: impl Into<String>) -> &mut Self
Add a left-justified column with the given header.
Sourcepub fn add_column_justify(
&mut self,
header: impl Into<String>,
justify: Justify,
) -> &mut Self
pub fn add_column_justify( &mut self, header: impl Into<String>, justify: Justify, ) -> &mut Self
Add a column with an explicit justification.
Sourcepub fn column_width(&mut self, width: usize) -> &mut Self
pub fn column_width(&mut self, width: usize) -> &mut Self
Pin the most-recently-added column to an explicit content width. Content
wider than this wraps (with ellipsis overflow) instead of shrinking the
column. Chain after add_column.
Sourcepub fn column_ratio(&mut self, ratio: usize) -> &mut Self
pub fn column_ratio(&mut self, ratio: usize) -> &mut Self
Give the most-recently-added column a flex ratio: when the table is
expanded, ratio columns share the free width in proportion. Chain after
add_column. Port of Column.ratio.
Sourcepub fn column_min_width(&mut self, min_width: usize) -> &mut Self
pub fn column_min_width(&mut self, min_width: usize) -> &mut Self
Set a minimum content width on the most-recently-added column. Chain after
add_column. Port of Column.min_width.
Sourcepub fn column_max_width(&mut self, max_width: usize) -> &mut Self
pub fn column_max_width(&mut self, max_width: usize) -> &mut Self
Set a maximum content width on the most-recently-added column — wider
cells wrap. Chain after add_column. Port of Column.max_width.
Sourcepub fn column_style(&mut self, style: Style) -> &mut Self
pub fn column_style(&mut self, style: Style) -> &mut Self
Apply a style to the most-recently-added column’s body cells. Chain after
add_column.
Sourcepub fn column_header_style(&mut self, style: Style) -> &mut Self
pub fn column_header_style(&mut self, style: Style) -> &mut Self
Style the most-recently-added column’s header content (the visible
characters), leaving its padding as the base header_style. Chain after
add_column. Mirrors upstream stylizing the heading Text.
Sourcepub fn column_header_fill(&mut self, style: Style) -> &mut Self
pub fn column_header_fill(&mut self, style: Style) -> &mut Self
Style the most-recently-added column’s whole header cell (content +
padding), combined over the table-level header_style. Chain after
add_column. Port of Column.header_style.
Sourcepub fn column_no_wrap(&mut self) -> &mut Self
pub fn column_no_wrap(&mut self) -> &mut Self
Mark the most-recently-added column no_wrap: its cells crop to a single
line (with ellipsis) instead of wrapping. Chain after add_column.
Trait Implementations§
Source§impl LineRenderable for Table
impl LineRenderable for Table
Source§fn try_for_each_line<E>(
&self,
console: &Console,
options: &ConsoleOptions,
emit: impl FnMut(Vec<Segment>) -> Result<(), E>,
) -> Result<(), E>
fn try_for_each_line<E>( &self, console: &Console, options: &ConsoleOptions, emit: impl FnMut(Vec<Segment>) -> Result<(), E>, ) -> Result<(), E>
Render visual lines in order without retaining the full rendered table.
Like upstream’s Table.__rich_console__ / _render generators, this
measures all columns first, then renders only one row block at a time.
Lines contain styled segments without a trailing newline. The callback
may write each line immediately; its first error stops rendering.
The table still owns its source rows for column-width measurement.
Source§impl OwnedTableRows for Table
impl OwnedTableRows for Table
Source§impl Renderable for Table
impl Renderable for Table
fn rich_render( &self, console: &Console, options: &ConsoleOptions, ) -> Vec<Segment>
Source§fn measure(&self, _console: &Console, options: &ConsoleOptions) -> Measurement
fn measure(&self, _console: &Console, options: &ConsoleOptions) -> Measurement
(minimum, maximum) cell width this renderable wants. The default
assumes the renderable fills the available width (e.g. Panel, Table);
Text overrides it with its content width so the top-level print path can
shrink to fit. Port of __rich_measure__ / Measurement.get.