mk_ext_prettytable 0.11.0

A library for printing pretty formatted tables in terminal
Documentation
use prettytable::format::*;
use prettytable::{
  color,
  ptable,
  row,
  table,
  Attr,
  Cell,
  Row,
  Table,
}; // Import macros

// trace_macros!(true);

#[allow(dead_code)]
fn main() {
  let _ = table!();
  let mut table = Table::new();
  table.add_row(row![FrByH2b->"This is a long spanning cell", "DEFG", "HIJKLMN"]);
  table.add_row(row!["foobar", "bar", "foo"]);
  table.add_row(row![]);
  // Add style to a full row
  table.add_row(row![FY => "styled", "bar", "foo"]);
  table.add_row(Row::new(vec![
    Cell::new("foobar2"),
    // Create a cell with a red foreground color
    Cell::new_align("bar2", Alignment::CENTER)
      .with_style(Attr::ForegroundColor(color::RED))
      .with_hspan(2),
    // Create a cell with red foreground color, yellow background color, with bold characters
    Cell::new("foo2").style_spec("FrByb"),
  ]));
  for cell in table.column_iter_mut(2) {
    cell.align(Alignment::RIGHT);
  }
  for cell in table.column_iter_mut(1) {
    cell.align(Alignment::CENTER);
  }
  table.printstd();
  println!("Modified : ");
  table.set_element("new_foo", 2, 1).unwrap();
  table.printstd();
  // table.get_format().indent(8);

  // Print a table with some styles on it :
  // FrBybl means : Foregound red, Background yellow, bold, left align
  // d means : Default, do nothing
  ptable!([FrBybl->"A", "B", FrBybr->"C"], [d->123, 234, 345, 456]);

  // You can also apply style to full rows :
  let mut table = table!([Frb => "A", "B", "C"], [1, 2, 3, 4], ["A\nBCCZZZ\nDDD", 2, table]);
  table.set_titles(row!["Title 1", "Title 2"]);
  table.set_format(*consts::FORMAT_DEFAULT);
  table.get_format().indent(8);
  table.printstd();
  // println!("{:#?}", table);
}