Macro fs_tree::trees

source ·
macro_rules! trees {
    ($($all:tt)*) => { ... };
}
Expand description

Macro for declaring a FsTree literal.

Syntax:

  • name: { ... } is a directory.
  • name -> name is a symlink.
  • name is a regular file.
  • Spaces is optional.
  • Commas are not required, but you should separate items with newlines or commas to improve readability.

Example:

use fs_tree::{FsTree, trees};

let result = trees! {
    config
    outer_dir: {
        file1
        file2
    }
    link -> target
};

let expected = vec![
    FsTree::new_regular("config"),
    FsTree::new_directory("outer_dir", vec![
        FsTree::new_regular("file1"),
        FsTree::new_regular("file2")
    ]),
    FsTree::new_symlink("link", "target"),
];

assert_eq!(result, expected);