1 个不稳定版本
0.1.0 | 2021年6月25日 |
---|
#579 in 命令行界面
14KB
122 行
文本树元素
Text Tree Elements
是一个小型的 Rust 语言库,包含一些微小的函数,用于准备类似于树结构的元素以在 TUI 中显示(但不构建这些树)。例如,它可以用于类似 tree
命令的目录列表输出。
快速开始
-
使用默认符号初始化文本树元素
let tree = TextTreeElements::default();
-
在循环中获取树中当前项的前缀和分支字符串
let (prefix, branch) = tree.get_prefix_branch(level, index, size); let prefixes = format!("{}{}", prefixes, prefix);
prefix
- 变量包含当前项的父分支(默认为以下之一:["", "", "│ ", " "]
分别对应:[root, first, middle, last]
项)branch
- 变量包含当前项的分支符号,取决于位置(默认为以下之一:["", "", "├─ ", "└─ "]
分别对应:[root, first, middle, last]
项)prefixes
- 变量包含所有之前连接的父分支 -
在循环中输出当前树项
println!("{}{}{}", prefixes, branch, file_name);
输出示例
root ├─ home │ └─ user ├─ tmp └─ ...
示例
在示例目录中可以找到递归文件列表程序示例,其中包含一些用于演示不同输出样式的变体。
默认
默认初始化(经典分支符号)
// init branch and prefix arrays:
// `[root, first, middle, last]`, `[root, first, middle, last]`
// `["", "", "├─ ", "└─ "]`, `["", "", "│ ", " "]`
let tree = TextTreeElements::default();
输出
.
├─ TODO.md
├─ README.md
├─ src
│ ├─ lib.rs
│ ├─ text_tree_elements.rs
│ └─ text_tree_elements_tests.rs
├─ Cargo.lock
├─ LICENSE.md
├─ examples
│ └─ example_1.rs
├─ .github
│ └─ workflows
│ └─ actions.yml
├─ .gitignore
└─ Cargo.toml
自定义
自定义初始化(用户提供的分支符号)
// init custom branch and prefix arrays:
// `[root, first, middle, last]`, `[root, first, middle, last]`
// `["", "", "|- ", "'- "]`, `["", "", "| ", ", "]`
let tree = TextTreeElements::new(["", "", "| ", " "], ["", "", "|- ", "'- "]);
输出
.
|- TODO.md
|- README.md
|- src
| |- lib.rs
| |- text_tree_elements.rs
| '- text_tree_elements_tests.rs
|- Cargo.lock
|- LICENSE.md
|- examples
| '- example_1.rs
|- .github
| '- workflows
| '- actions.yml
|- .gitignore
'- Cargo.toml
许可证
text-tree-elements
库遵循 MIT 许可证。请阅读仓库中的许可证文件以获取更多信息。