#tree #text #cli

text_tree_elements

Rust 语言库,用于构建文本树

1 个不稳定版本

0.1.0 2021年6月25日

#579 in 命令行界面

MIT 许可证

14KB
122

文本树元素

Build Status Crates.io Documentation

Text Tree Elements 是一个小型的 Rust 语言库,包含一些微小的函数,用于准备类似于树结构的元素以在 TUI 中显示(但不构建这些树)。例如,它可以用于类似 tree 命令的目录列表输出。

快速开始

  1. 使用默认符号初始化文本树元素

    let tree = TextTreeElements::default();
    
  2. 在循环中获取树中当前项的前缀和分支字符串

    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 - 变量包含所有之前连接的父分支

  3. 在循环中输出当前树项

    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 许可证。请阅读仓库中的许可证文件以获取更多信息。

另请参阅

无运行时依赖