mirror of
https://git.proxmox.com/git/rustc
synced 2025-08-23 14:37:09 +00:00
57 lines
1.5 KiB
Rust
57 lines
1.5 KiB
Rust
//! This example demonstrates using the [`Format`] [`CellOption`] factory to alter
|
|
//! the cells of a [`Table`].
|
|
//!
|
|
//! * Note how [`Format::content()`] gives access to the respective cell content for replacement.
|
|
//! And [`Format::positioned()`] additionally provides the index coordinates of that cell.
|
|
//!
|
|
//! * Note how the [std] [`format!`] macro is used to update the values of the affected cells.
|
|
|
|
use tabled::{
|
|
settings::{
|
|
object::{Columns, Object, Rows},
|
|
Format, Style,
|
|
},
|
|
Table, Tabled,
|
|
};
|
|
|
|
#[derive(Tabled)]
|
|
struct Commit {
|
|
id: &'static str,
|
|
header: &'static str,
|
|
message: &'static str,
|
|
}
|
|
|
|
fn main() {
|
|
let data = [
|
|
Commit {
|
|
header: "bypass open-source transmitter",
|
|
message: "index neural panel",
|
|
id: "8ae4e8957caeaa467acbce963701e227af00a1c7",
|
|
},
|
|
Commit {
|
|
header: "program online alarm",
|
|
message: "copy bluetooth card",
|
|
id: "48c76de71bd685486d97dc8f4f05aa6fcc0c3f86",
|
|
},
|
|
Commit {
|
|
header: "CSV",
|
|
message: "reboot mobile capacitor",
|
|
id: "6ffc2a2796229fc7bf59471ad907f58b897005d0",
|
|
},
|
|
];
|
|
|
|
let table = Table::new(data)
|
|
.with(Style::psql())
|
|
.modify(
|
|
Rows::first(),
|
|
Format::positioned(|_, (_, column)| column.to_string()),
|
|
)
|
|
.modify(
|
|
Columns::first().not(Rows::first()),
|
|
Format::content(|s| format!("{s}...")),
|
|
)
|
|
.to_string();
|
|
|
|
println!("{table}");
|
|
}
|