1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
//! This example demonstrates an alternative method for creating a [`Table`].
//! [`Builder`] is an efficient implementation of the [builder design pattern](https://en.wikipedia.org/wiki/Builder_pattern).
//!
//! > The intent of the Builder design pattern is to separate the construction of a complex object from its representation.
//! > -- <cite>Wikipedia</cite>
//!
//! * Note how [Builder] can be used to define a table's shape manually
//! and can be populated through iteration if it is mutable. This flexibility
//! is useful when you don't have direct control over the datasets you intend to [table](tabled).
use tabled::{builder::Builder, settings::Style};
fn main() {
let oceans = "Atlantic, Pacific, Indian, Southern, Arctic";
let mut builder = Builder::default();
builder.push_record(["#", "Ocean"]);
for (i, ocean) in oceans.split(", ").enumerate() {
builder.push_record([i.to_string(), ocean.to_string()]);
}
let mut table = builder.build();
table.with(Style::markdown().remove_horizontals());
println!("{table}");
}
|