5 个版本
0.2.0 | 2022年1月8日 |
---|---|
0.1.4 | 2019年12月30日 |
0.1.2 | 2018年9月19日 |
在 值格式化 类别中排名第 103
每月下载量 42,369
在 31 个 crate(其中29个直接)中使用
39KB
506 行
tabular:Rust 中的纯文本表格
构建纯文本、自动对齐的表格。如果你正在实现 ls
,这基本上是你想要的。
示例
use tabular::{Table, Row};
use std::path::Path;
fn ls(dir: &Path) -> ::std::io::Result<()> {
let mut table = Table::new("{:>} {:<}{:<} {:<}");
for entry_result in ::std::fs::read_dir(dir)? {
let entry = entry_result?;
let metadata = entry.metadata()?;
table.add_row(Row::new()
.with_cell(metadata.len())
.with_cell(if metadata.permissions().readonly() {"r"} else {""})
.with_cell(if metadata.is_dir() {"d"} else {""})
.with_cell(entry.path().display()));
}
print!("{}", table);
Ok(())
}
ls(Path::new(&"target")).unwrap();
生成类似的内容
1198 target/.rustc_info.json
1120 d target/doc
192 d target/package
1056 d target/debug
其他特性
-
使用
Table::with_heading()
和Table::add_heading()
方法可以添加跨越所有列的行。 -
使用
row!
宏可以以更少的语法构建具有固定列数的行。 -
Table::set_line_end()
方法允许更改行结束符以包括回车(或你想要的任何内容)。 -
启用
ansi-cell
功能后,可以使用Row::with_ansi_cell
和Row::add_ansi_cell
方法添加具有 ANSI 颜色代码的单元格,同时仍然正确计算其宽度。 -
可以使用
Row::with_custom_width_cell
和Row::add_custom_width_cell
方法精确地自定义对齐。
用法
它在 crates.io 上,所以你可以在 Cargo.toml
中添加
[dependencies]
tabular = "0.2.0"
。
特性
-
unicode-width
:默认启用;依赖于 unicode-width crate。启用
unicode-width
特性后,默认对齐基于 [Unicode 标准附件 #11],其中 Ambiguous 类别的字符被认为有 1 列宽。如果没有它,默认对齐将基于
std::str::Chars
迭代器的计数。 -
ansi-cell
:默认禁用;依赖于 strip-ansi-escapes 包。提供with_ansi_cell
和add_ansi_cell
方法。
最低支持的 Rust 版本
此包的最低支持 Rust 版本 (MSRV) 为 Rust 1.46.0。MSRV 可能在补丁版本中提升。
另请参阅
您可能还需要
-
text-tables – 这比表格更自动化。您提供一个数组数组,它会渲染一个带边框的表格。表格不处理边框。
-
prettytable — 这在构建表格方面的 API 与表格更相似,但它做了更多的事情,包括颜色、边框和 CSV 导入。
依赖项
~300–405KB