#table #alignment #table-row #formatting #cli #plain-text

已撤回 taalika

纯文本表格,自动对齐(tabular的分支)

0.1.6 2021年12月21日
0.1.5 2021年12月21日

#4 in #tables

MIT/Apache

36KB
472

taalika:Rust中的纯文本表格

Crates.io Documentation (latest release) Documentation (main) License: MIT License: Apache 2.0

构建纯文本、自动对齐的表格。如果你正在实现 ls,这基本上就是你要的。

示例

use taalika::{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() 允许更改行结束符以包含回车(或您想要的任何内容)。

  • 方法 Row::with_ansi_cell()Row::add_ansi_cell() 可以用来添加带有ANSI颜色代码的单元格,并且它们的宽度仍然会被正确计算。

用法

taalikacrates.io 上。

特性

  • 特性 unicode-width 用于按Unicode图形字符计算列宽。它默认启用,并依赖于 unicode-width 包。

    注意,如果没有 unicode-width,对齐将基于 std::str::Chars 迭代器的计数。

此包支持Rust版本1.46.0及以后版本。

另请参阅

您可能还需要

  • tabular - taalika 是此包的分支,增加了更多功能。

  • text-tables – 这比tabular更自动。您提供一个数组数组,它会渲染一个带有边框的漂亮表格。Tabular不处理边框。

  • prettytable — 这在构建表格方面与tabular的API更相似,但它做了更多的事情,包括颜色、边框和CSV导入。

依赖关系

~605KB