Tabel Formatter

This lib is used to format plain-text table.

Example

Code:

rust use itertools::Itertools; use table_formatter::{cell, table}; use table_formatter::table::{Align, Border}; let table_header = vec![ cell!("Cell Row").with_width(Some(20)), cell!("Left", align = Align::Left).with_width(Some(10)), cell!("Center", align = Align::Center).with_width(Some(10)), cell!("Right", align = Align::Right).with_width(Some(10)), ]; let table_cells = { let mut v = (0..=3_u8) .map(|_| { vec![ cell!("Cell Row"), cell!("Left", align = Align::Left), cell!("Center", align = Align::Center), cell!("Right", align = Align::Right), ] }) .collect_vec(); v.push(cell!("Cross Cell!", align = Align::Center).with_span(3)); v }; let table = table! { table_header --- table_cells with Border::ALL }; let mut buffer = vec![]; table.render(&mut buffer).unwrap(); println!("{}", String::from_utf8(buffer).unwrap());

Output:

──────────────────────────────────────────────────────────── | Cell Row Left Center Right | |──────────────────────────────────────────────────────────| | Cell Row Left Center Right | | Cell Row Left Center Right | | Cell Row Left Center Right | | Cell Row Left Center Right | | Cross Cell! | ────────────────────────────────────────────────────────────

Actually the border of the table is bold, but it cannot be rendered in markdown.

Future Plan

Waiting for report :)

Change Log

V0.6.0

If you are using the formatter, you just need to change your vec!s into fmt!s.

V0.5.1

This version is yanked.

V0.5.0

New features

Warning

This version is Completely Incompatible with previous versions.

License

MIT or Apache-2.0