diff options
Diffstat (limited to 'vendor/tabled/examples/concat.rs')
-rw-r--r-- | vendor/tabled/examples/concat.rs | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/vendor/tabled/examples/concat.rs b/vendor/tabled/examples/concat.rs new file mode 100644 index 000000000..09afeed7b --- /dev/null +++ b/vendor/tabled/examples/concat.rs @@ -0,0 +1,58 @@ +//! This example demonstrates using the [`Concat`] [`TableOption`] to concatenate +//! [`tables`](Table) together. +//! +//! * [`Concat`] supports appending tables vertically and horizontally. +//! +//! * Note how the base tables style settings take take precedence over the appended table. +//! If the two tables are of unequal shape, additional blank cells are added as needed. + +use tabled::{ + settings::{object::Segment, Alignment, Concat, Modify, Style}, + Table, Tabled, +}; + +#[derive(Debug, Tabled)] +struct Weather { + temperature_c: f64, + wind_ms: f64, +} + +#[derive(Debug, Tabled)] +struct Location( + #[tabled(rename = "latitude")] f64, + #[tabled(rename = "longitude")] f64, +); + +fn main() { + let weather_data = [ + Weather { + temperature_c: 1.0, + wind_ms: 3.0, + }, + Weather { + temperature_c: -20.0, + wind_ms: 30.0, + }, + Weather { + temperature_c: 40.0, + wind_ms: 100.0, + }, + ]; + + let location_data = [ + Location(111.111, 333.333), + Location(5.111, 7282.1), + Location(0.0, 0.0), + Location(0.0, 0.0), + ]; + + let location_table = Table::new(location_data); + + let mut weather_table = Table::new(weather_data); + weather_table + .with(Concat::horizontal(location_table)) + .with(Style::empty()) + .with(Modify::new(Segment::all()).with(Alignment::left())); + + println!("{weather_table}"); +} |