| //! This example demonstrates using the [`Alignment`], [`AlignmentStrategy`], and [`TrimStrategy`] [`CellOptions`] |
| //! to align the content of a [`Table`] in several nuanced ways. |
| //! |
| //! * Note how [`AlignmentStrategy`] and [`TrimStrategy`] provide useful tools for managing multiline cells and |
| //! cell values that are bloated with whitespace. |
| |
| use tabled::{ |
| settings::{ |
| formatting::{AlignmentStrategy, TrimStrategy}, |
| object::Segment, |
| Alignment, Modify, Style, |
| }, |
| Table, |
| }; |
| |
| fn main() { |
| let some_json = r#" |
| [ |
| "foo", |
| { |
| "bar": 1, |
| "baz": [ |
| 2, |
| 3 |
| ] |
| } |
| ]"#; |
| |
| let mut table = Table::new([some_json]); |
| table |
| .with(Style::rounded()) |
| .with(Modify::new(Segment::all()).with(Alignment::center())); |
| |
| println!("A default Alignment settings\n{table}"); |
| |
| table.with(Modify::new(Segment::all()).with(AlignmentStrategy::PerLine)); |
| |
| println!("Per line Alignment strategy\n{table}"); |
| |
| table.with( |
| Modify::new(Segment::all()) |
| .with(AlignmentStrategy::PerCell) |
| .with(TrimStrategy::Both), |
| ); |
| |
| println!("A default Alignment; allowing vertical and horizontal trim\n{table}"); |
| } |