#file-tree #folders #assert #yaml #testing

dev tree-fs

提供了一种方便的方式来创建文件树

1 个不稳定版本

0.1.0 2023 年 12 月 2 日

#885文件系统

Download history • Rust 包仓库 71/week @ 2024-03-14 • Rust 包仓库 31/week @ 2024-03-21 • Rust 包仓库 22/week @ 2024-03-28 • Rust 包仓库 36/week @ 2024-04-04 • Rust 包仓库 38/week @ 2024-04-11 • Rust 包仓库 20/week @ 2024-04-18 • Rust 包仓库 42/week @ 2024-04-25 • Rust 包仓库 52/week @ 2024-05-02 • Rust 包仓库 34/week @ 2024-05-09 • Rust 包仓库 43/week @ 2024-05-16 • Rust 包仓库 137/week @ 2024-05-23 • Rust 包仓库 100/week @ 2024-05-30 • Rust 包仓库 137/week @ 2024-06-06 • Rust 包仓库 146/week @ 2024-06-13 • Rust 包仓库 73/week @ 2024-06-20 • Rust 包仓库 33/week @ 2024-06-27 • Rust 包仓库

404 次每月下载
5 crates 中使用

Apache-2.0

9KB
101 代码行

tree-fs

通常,测试场景涉及与文件系统的交互。tree-fs 为创建满足测试需求定制的文件系统树提供了一个便捷的解决方案。此库提供

  • 一种简单的方法来生成具有递归路径的树。
  • 在临时文件夹内创建树。
  • 使用 YAML 或构建器创建树的能力。

用法

查看用法示例([这里](./examples))

从构建器

use tree_fs::Tree;

fn main() {
    let res = Tree::default()
        .add("test/foo.txt", "bar")
        .add_empty("test/folder-a/folder-b/bar.txt")
        .create();

    match res {
        Ok(res) => {
            println!("created successfully in {}", res.display());
        }
        Err(err) => {
            println!("creating tree files finish with errors: {err}");
        }
    }
}

使用 YAML 文件

use std::path::PathBuf;

fn main() {
    let yaml_path = PathBuf::from("tree-create/tests/fixtures/tree.yaml");

    let res = tree_fs::from_yaml_file(&yaml_path);

    match res {
        Ok(res) => {
            println!("created successfully in {}", res.display());
        }
        Err(err) => {
            println!("creating tree files finish with errors: {err}");
        }
    }
}

使用 YAML 字符串

use std::fs;

fn main() {
    let content =
        fs::read_to_string("tree-create/tests/fixtures/tree.yaml").expect("Unable to read file");

    let res = tree_fs::from_yaml_str(&content);

    match res {
        Ok(res) => {
            println!("created successfully in {}", res.display());
        }
        Err(err) => {
            println!("creating tree files finish with errors: {err}");
        }
    }
}

依赖项

~0.6–1.6MB
~34K SLoC