summaryrefslogtreecommitdiffstats
path: root/vendor/tabled/examples/concat.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/tabled/examples/concat.rs')
-rw-r--r--vendor/tabled/examples/concat.rs58
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}");
+}