A library to create formatted plain-text tables.
```rust :main.rs use textgrid::*; struct RowData { a: String, b: u32, c: u32, d: f64, } impl CellsSource for RowData { fn fmt(f: &mut CellsFormatter<&Self>) { f.column("a", |&s| &s.a); f.column("b", |&s| s.b); f.column("c", |&s| cell(s.c).left()); f.columnwith("d", |f| { f.column("x", |&s| s.d); f.column("y", |&s| cells_e!("{:.2e}", s.d)); }); } }
let mut g = Grid::new(); g.push(&RowData { a: "ABC".tostring(), b: 300, c: 1, d: 100.1 }); g.push(&RowData { a: "XY".tostring(), b: 2, c: 200, d: 1.234 }); assert_eq!(format!("\n{g}"), OUTPUT);
const OUTPUT: &str = r#" a | b | c | d | -----|-----|-----|--------------------| | | | x | y | -----|-----|-----|---------|----------| ABC | 300 | 1 | 100.1 | 1.00 e 2 | XY | 2 | 200 | 1.234 | 1.23 e 0 | "#; ```
This project is dual licensed under Apache-2.0/MIT. See the two LICENSE-* files for details.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.