一个简单的库,用于分析指定目录下的文件树。
该项目由个人不定期维护,且可以预期地将长期处于开发中。
- 生成指定目录下的文件树结构
- 遍历文件树生成各节点的总结信息
- 自定义错误类型
- 提供配置字段,用于控制文件树生成的行为
- 提供更多总结信息的获取
- 增加/优化项目树可视化 API
该项目作为 lib
,以依赖形式导入您的项目,通过几个关键数据结构提供主要功能。
这里多步构建完整项目树,通过 new
、build
、summarize
可以选择合适节点完成对应操作:
new
:实例化项目树对象build
:通过初始化path
启动遍历,获取项目树结构summarize
:通过构建后的项目树自底向上分析各个节点的总结信息
注意!
build
/summarize
操作为原地操作,即直接修改项目树实例,若分步则需提前声明可变变量。
use arui_core::ProjectTree;
let name = "test";
let path = "./tests/examples";
// init with name/path/config
let mut tree = ProjectTree::new(name, path, None);
// build to get project file tree
tree.build().expect("build failed");
// summarize to get summaries of tree nodes
tree.summarize().expect("summarize failed");
直接“种植”一棵项目树,即不分步,直接完成所有操作。 若仅种植一次,后续不再更新项目树信息,则可不声明为可变变量。
use arui_core::ProjectTree;
let name = "test";
let path = "./tests";
let tree = ProjectTree::plant(name, path, None);
将项目树基础信息输出到终端。
use arui_core::ProjectTree;
let tree = ProjectTree::plant("test", "./tests", None);
tree.show()
遍历项目树,按照构建结果逐条输出节点基础信息到终端。
use arui_core::ProjectTree;
let tree = ProjectTree::plant("test", "./tests", None);
tree.print_tree()