#table #grid #pretty-table #pretty #text

text-grid

用于创建格式化纯文本表的库

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命令行界面

Download history 97/week @ 2024-04-07 21/week @ 2024-04-14 29/week @ 2024-04-21 33/week @ 2024-04-28 20/week @ 2024-05-05 35/week @ 2024-05-12 154/week @ 2024-05-19 96/week @ 2024-05-26 197/week @ 2024-06-02 150/week @ 2024-06-09 148/week @ 2024-06-16 61/week @ 2024-06-23 34/week @ 2024-06-30 44/week @ 2024-07-07 42/week @ 2024-07-14 33/week @ 2024-07-21

每月下载量 157
4 个 Crates 中使用(通过 lgbm

MIT/Apache

64KB
1.5K SLoC

text-grid-rs

Crates.io Docs.rs CI

用于创建格式化纯文本表的库。

示例

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