mirror of
https://git.proxmox.com/git/rustc
synced 2025-08-26 05:23:31 +00:00
59 lines
1.4 KiB
Rust
59 lines
1.4 KiB
Rust
//! 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}");
|
|
}
|