pub struct Row<'a> { /* private fields */ }
Expand description
A single row of data to be displayed in a Table
widget.
A Row
is a collection of Cell
s.
By default, a row has a height of 1 but you can change this using Row::height
.
You can set the style of the entire row using Row::style
. This Style
will be combined
with the Style
of each individual Cell
by adding the Style
of the Cell
to the
Style
of the Row
.
§Examples
You can create Row
s from simple strings.
use ratatui::widgets::Row;
Row::new(vec!["Cell1", "Cell2", "Cell3"]);
If you need a bit more control over individual cells, you can explicitly create Cell
s:
use ratatui::{
style::Stylize,
widgets::{Cell, Row},
};
Row::new(vec![
Cell::from("Cell1"),
Cell::from("Cell2").red().italic(),
]);
You can also construct a row from any type that can be converted into Text
:
use std::borrow::Cow;
use ratatui::widgets::{Cell, Row};
Row::new(vec![
Cow::Borrowed("hello"),
Cow::Owned("world".to_uppercase()),
]);
An iterator whose item type is convertible into Text
can be collected into a row.
use ratatui::widgets::Row;
(0..10).map(|i| format!("{i}")).collect::<Row>();
Row
implements Styled
which means you can use style shorthands from the Stylize
trait
to set the style of the row concisely.
use ratatui::{style::Stylize, widgets::Row};
let cells = vec!["Cell1", "Cell2", "Cell3"];
Row::new(cells).red().italic();
Implementations§
Source§impl<'a> Row<'a>
impl<'a> Row<'a>
Sourcepub fn new<T>(cells: T) -> Self
pub fn new<T>(cells: T) -> Self
Creates a new Row
The cells
parameter accepts any value that can be converted into an iterator of anything
that can be converted into a Cell
(e.g. Vec<&str>
, &[Cell<'a>]
, Vec<String>
, etc.)
§Examples
use ratatui::widgets::{Cell, Row};
let row = Row::new(vec!["Cell 1", "Cell 2", "Cell 3"]);
let row = Row::new(vec![
Cell::new("Cell 1"),
Cell::new("Cell 2"),
Cell::new("Cell 3"),
]);
Sourcepub fn cells<T>(self, cells: T) -> Self
pub fn cells<T>(self, cells: T) -> Self
Set the cells of the Row
The cells
parameter accepts any value that can be converted into an iterator of anything
that can be converted into a Cell
(e.g. Vec<&str>
, &[Cell<'a>]
, Vec<String>
, etc.)
This is a fluent setter method which must be chained or used as it consumes self
§Examples
use ratatui::widgets::{Cell, Row};
let row = Row::default().cells(vec!["Cell 1", "Cell 2", "Cell 3"]);
let row = Row::default().cells(vec![
Cell::new("Cell 1"),
Cell::new("Cell 2"),
Cell::new("Cell 3"),
]);
Sourcepub const fn height(self, height: u16) -> Self
pub const fn height(self, height: u16) -> Self
Set the fixed height of the Row
Any Cell
whose content has more lines than this height will see its content truncated.
By default, the height is 1
.
This is a fluent setter method which must be chained or used as it consumes self
§Examples
use ratatui::widgets::Row;
let cells = vec!["Cell 1\nline 2", "Cell 2", "Cell 3"];
let row = Row::new(cells).height(2);
Sourcepub const fn top_margin(self, margin: u16) -> Self
pub const fn top_margin(self, margin: u16) -> Self
Set the top margin. By default, the top margin is 0
.
The top margin is the number of blank lines to be displayed before the row.
This is a fluent setter method which must be chained or used as it consumes self
§Examples
use ratatui::widgets::Row;
let cells = vec!["Cell 1", "Cell 2", "Cell 3"];
let row = Row::default().top_margin(1);
Sourcepub const fn bottom_margin(self, margin: u16) -> Self
pub const fn bottom_margin(self, margin: u16) -> Self
Set the bottom margin. By default, the bottom margin is 0
.
The bottom margin is the number of blank lines to be displayed after the row.
This is a fluent setter method which must be chained or used as it consumes self
§Examples
use ratatui::widgets::Row;
let cells = vec!["Cell 1", "Cell 2", "Cell 3"];
let row = Row::default().bottom_margin(1);
Sourcepub fn style<S: Into<Style>>(self, style: S) -> Self
pub fn style<S: Into<Style>>(self, style: S) -> Self
Set the Style
of the entire row
style
accepts any type that is convertible to Style
(e.g. Style
, Color
, or
your own type that implements Into<Style>
).
This Style
can be overridden by the Style
of a any individual Cell
or by their
Text
content.
This is a fluent setter method which must be chained or used as it consumes self
§Examples
use ratatui::{
style::{Style, Stylize},
widgets::Row,
};
let cells = vec!["Cell 1", "Cell 2", "Cell 3"];
let row = Row::new(cells).style(Style::new().red().italic());
Row
also implements the Styled
trait, which means you can use style shorthands from
the Stylize
trait to set the style of the widget more concisely.
use ratatui::{style::Stylize, widgets::Row};
let cells = vec!["Cell 1", "Cell 2", "Cell 3"];
let row = Row::new(cells).red().italic();
Trait Implementations§
Source§impl<'a, Item> FromIterator<Item> for Row<'a>
impl<'a, Item> FromIterator<Item> for Row<'a>
Source§fn from_iter<IterCells: IntoIterator<Item = Item>>(cells: IterCells) -> Self
fn from_iter<IterCells: IntoIterator<Item = Item>>(cells: IterCells) -> Self
impl<'a> Eq for Row<'a>
impl<'a> StructuralPartialEq for Row<'a>
Auto Trait Implementations§
impl<'a> Freeze for Row<'a>
impl<'a> RefUnwindSafe for Row<'a>
impl<'a> Send for Row<'a>
impl<'a> Sync for Row<'a>
impl<'a> Unpin for Row<'a>
impl<'a> UnwindSafe for Row<'a>
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
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<'a, T, U> Stylize<'a, T> for Uwhere
U: Styled<Item = T>,
impl<'a, T, U> Stylize<'a, T> for Uwhere
U: Styled<Item = T>,
fn bg<C>(self, color: C) -> T
fn fg<C>(self, color: C) -> T
fn add_modifier(self, modifier: Modifier) -> T
fn remove_modifier(self, modifier: Modifier) -> T
fn reset(self) -> T
Source§fn on_magenta(self) -> T
fn on_magenta(self) -> T
magenta
.Source§fn on_dark_gray(self) -> T
fn on_dark_gray(self) -> T
dark_gray
.Source§fn on_light_red(self) -> T
fn on_light_red(self) -> T
light_red
.Source§fn light_green(self) -> T
fn light_green(self) -> T
light_green
.Source§fn on_light_green(self) -> T
fn on_light_green(self) -> T
light_green
.Source§fn light_yellow(self) -> T
fn light_yellow(self) -> T
light_yellow
.Source§fn on_light_yellow(self) -> T
fn on_light_yellow(self) -> T
light_yellow
.Source§fn light_blue(self) -> T
fn light_blue(self) -> T
light_blue
.Source§fn on_light_blue(self) -> T
fn on_light_blue(self) -> T
light_blue
.Source§fn light_magenta(self) -> T
fn light_magenta(self) -> T
light_magenta
.Source§fn on_light_magenta(self) -> T
fn on_light_magenta(self) -> T
light_magenta
.Source§fn light_cyan(self) -> T
fn light_cyan(self) -> T
light_cyan
.Source§fn on_light_cyan(self) -> T
fn on_light_cyan(self) -> T
light_cyan
.Source§fn not_italic(self) -> T
fn not_italic(self) -> T
ITALIC
modifier.Source§fn underlined(self) -> T
fn underlined(self) -> T
UNDERLINED
modifier.Source§fn not_underlined(self) -> T
fn not_underlined(self) -> T
UNDERLINED
modifier.Source§fn slow_blink(self) -> T
fn slow_blink(self) -> T
SLOW_BLINK
modifier.Source§fn not_slow_blink(self) -> T
fn not_slow_blink(self) -> T
SLOW_BLINK
modifier.Source§fn rapid_blink(self) -> T
fn rapid_blink(self) -> T
RAPID_BLINK
modifier.Source§fn not_rapid_blink(self) -> T
fn not_rapid_blink(self) -> T
RAPID_BLINK
modifier.Source§fn not_reversed(self) -> T
fn not_reversed(self) -> T
REVERSED
modifier.HIDDEN
modifier.HIDDEN
modifier.Source§fn crossed_out(self) -> T
fn crossed_out(self) -> T
CROSSED_OUT
modifier.Source§fn not_crossed_out(self) -> T
fn not_crossed_out(self) -> T
CROSSED_OUT
modifier.