4 个版本 (破坏性更新)
0.6.0 | 2024 年 2 月 21 日 |
---|---|
0.5.0 | 2024 年 2 月 20 日 |
0.4.0 | 2024 年 2 月 9 日 |
0.3.0 | 2023 年 10 月 9 日 |
#206 in 命令行界面
20,219 每月下载量
用于 5 个 Crates (2 直接)
17KB
210 行
uutils-term-grid
此库使用算法将文本数据排列成网格格式,适用于固定宽度字体,以最小化所需的空间。
此库是从未维护的 rust-term-grid
库分支出来的。核心功能保持不变,添加了一些错误修复、性能改进和一个新的 API。
安装
此 crate 与 cargo
一起工作。将以下内容添加到您的 Cargo.toml
依赖关系部分
[dependencies]
uutils_term_grid = "0.4"
最低支持的 Rust 版本为 1.70。
创建网格
要将数据添加到网格中,首先使用字符串列表和一组选项创建一个新的 Grid
值。
在 GridOptions
值中必须指定三个选项,这些选项决定了网格的格式
filling
:在两列之间放置的内容——可以是空格数或文本字符串;direction
:指定单元格应沿行还是列移动Direction::LeftToRight
从左上角开始,向右移动,在达到最后一列后转到新的一行;Direction::TopToBottom
从左上角开始,向下移动,到达最后一行后,将移动到新列的顶部。
width
:填充网格的宽度。通常,这应该是终端的宽度。
实际上,创建网格可以按以下步骤进行
use term_grid::{Grid, GridOptions, Direction, Filling};
// Create a `Vec` of text to put in the grid
let cells = vec![
"one", "two", "three", "four", "five", "six",
"seven", "eight", "nine", "ten", "eleven", "twelve"
];
// Then create a `Grid` with those cells.
// The grid requires several options:
// - The filling determines the string used as separator
// between the columns.
// - The direction specifies whether the layout should
// be done row-wise or column-wise.
// - The width is the maximum width that the grid might
// have.
let grid = Grid::new(
cells,
GridOptions {
filling: Filling::Spaces(1),
direction: Direction::LeftToRight,
width: 24,
}
);
// A `Grid` implements `Display` and can be printed directly.
println!("{grid}");
生成以下表格结果
one two three four
five six seven eight
nine ten eleven twelve
网格单元格的宽度
此库使用textwrap
库(使用display_width
函数)来计算终端中字符串的宽度。这考虑了字符的宽度,并忽略了ANSI代码。
当前宽度计算不可配置。如果您有计算错误的用例,请提交一个问题。
依赖项
~380KB