6 个版本 (3 个重大更改)
0.4.1 | 2024年3月5日 |
---|---|
0.4.0 | 2023年11月12日 |
0.3.0 | 2023年6月10日 |
0.2.0 | 2019年2月26日 |
0.1.1 | 2018年12月17日 |
#208 在 命令行界面 中
每月下载量 157
在 4 个 Crates 中使用(通过 lgbm)
64KB
1.5K SLoC
text-grid-rs
用于创建格式化纯文本表的库。
示例
use text_grid::*;
struct RowData {
a: String,
b: u32,
c: u32,
d: f64,
}
impl Cells 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.column_with("d", |f| {
f.column("x", |s| s.d);
f.column("y", |s| cells_f!("{:.2e}", s.d));
});
}
}
let rows = [
RowData { a: "ABC".to_string(), b: 300, c: 1, d: 100.1 },
RowData { a: "XY".to_string(), b: 2, c: 200, d: 1.234 },
];
let g = to_grid(rows);
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 |
"#;
许可协议
本项目采用 Apache-2.0/MIT 双重许可协议。有关详细信息,请参阅两个 LICENSE-* 文件。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交的任何贡献,都应如上所述双重许可,而无需任何附加条款或条件。
依赖项
~1.8–2.7MB
~36K SLoC