//! 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}"); }