Crate build_fs_tree[][src]

Expand description

FileSystemTree

FileSystemTree::build is faster than MergeableFileSystemTree::build but it does not write over an existing directory and it does not create parent directories when they don’t exist.

Example:

use build_fs_tree::{FileSystemTree, Build, dir, file};
let tree: FileSystemTree<&str, &str> = dir! {
    "index.html" => file!(r#"
        <!DOCTYPE html>
        <link rel="stylesheet" href="styles/style.css" />
        <script src="scripts/main.js"></script>
    "#)
    "scripts" => dir! {
        "main.js" => file!(r#"document.write('Hello World')"#)
    }
    "styles" => dir! {
        "style.css" => file!(r#":root { color: red; }"#)
    }
};
tree.build(&"public".into()).unwrap();

MergeableFileSystemTree

Unlike FileSystemTree::build, MergeableFileSystemTree::build can write over an existing directory and create parent directories that were not exist before at the cost of performance.

You can convert a FileSystemTree into a MergeableFileSystemTree via From::from/Into::into and vice versa.

Example:

use build_fs_tree::{MergeableFileSystemTree, Build, dir, file};
let tree = MergeableFileSystemTree::<&str, &str>::from(dir! {
    "public" => dir! {
        "index.html" => file!(r#"
            <!DOCTYPE html>
            <link rel="stylesheet" href="styles/style.css" />
            <script src="scripts/main.js"></script>
        "#)
        "scripts/main.js" => file!(r#"document.write('Hello World')"#)
        "scripts/style.css" => file!(r#":root { color: red; }"#)
    }
});
tree.build(&".".into()).unwrap();

Serialization and Deserialization

Both FileSystemTree and MergeableFileSystemTree implement serde::Deserialize and serde::Serialize.

Re-exports

pub use serde;
pub use serde_yaml;

Macros

dir

Create representation of a directory.

file

Create representation of a file.

Structs

BuildError

Error caused by Build::build.

MergeableFileSystemTree

Representation of a filesystem which contains only files and directories.

Enums

FailedOperation

Operation that causes an error

FileSystemTree

Representation of a filesystem which contains only files and directories.

NodeContent

Content of a node in the filesystem tree

Traits

Build

Applying FileSystemTree to the filesystem.

Node

Node of a filesystem tree.

Functions

make_mergeable_dir_content_unmergeable

Transmute a MergeableDirectoryContent into a DirectoryContent.

make_unmergeable_dir_content_mergeable

Transmute a DirectoryContent into a MergeableDirectoryContent.

Type Definitions

DirectoryContent

Directory content of FileSystemTree.

MergeableDirectoryContent

Directory content of MergeableFileSystemTree.