9 releases (5 breaking)
0.6.1 | Jul 1, 2023 |
---|---|
0.6.0 | Jun 27, 2023 |
0.5.1 |
|
0.4.0 | Jun 3, 2023 |
0.1.0 | May 13, 2023 |
#136 in Value formatting
3,978 downloads per month
42KB
765 lines
Table Formatter
This lib is used to format plain-text table.
Example
Code:
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
- Changed the api of formatter, and add a macro wrapper for them.
- Added documentations.
If you are using the formatter, you just need to change your
vec!
s intofmt!
s.
V0.5.1
This version is yanked.
V0.5.0
New features
- Add render target: Markdown.
- Add cross-cell support.
- Add macro support.
Warning
This version is Completely Incompatible with previous versions.
License
MIT or Apache-2.0
Dependencies
~0.8–11MB
~68K SLoC