Crates.io | efes |
lib.rs | efes |
version | |
source | src |
created_at | 2021-08-27 13:17:05.055691 |
updated_at | 2021-08-27 13:22:59.656109 |
description | A collection of macros to simplify testing involving filesystems |
homepage | |
repository | https://github.com/tsoutsman/efes |
max_upload_size | |
id | 443078 |
Cargo.toml error: | TOML parse error at line 18, column 10 | 18 | readme = true | ^^^^ invalid type: boolean `true`, expected a string |
size | 0 |
A collection of macros to simplify testing involving filesystems. The crate exposes two macros: gen_fs
and gen_paths
. gen_fs
is used to actually create files on the system in a given directory. gen_paths
generates a vector of paths based on the provided input.
gen_fs
let root_dir = PathBuf::from("/home/user");
gen_fs!(root_dir => (a: file1 file2) b c (another_directory: foo bar));
which would create a directory structure in root_dir
equivalent to the following:
.
├── a
│ ├── file1
│ └── file2
├── another_directory
│ ├── bar
│ └── foo
├── b
└── c
gen_paths
let root_dir = PathBuf::from("/home/user");
let expected = gen_paths!(root_dir => (a: file1 file2) b c (another_directory: foo bar));
assert_eq!(expected, vec![
root_dir.join("a").join("file1"),
root_dir.join("a").join("file2"),
root_dir.join("b"),
root_dir.join("c"),
root_dir.join("another_directory").join("foo"),
root_dir.join("another_directory").join("bar"),
]);
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
See CONTRIBUTING.md.