1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/// ## Quick start
///
/// ```sh
/// cargo install swdir
/// ```
///
/// ```rust
/// use swdir::Swdir;
///
/// fn run() {
/// let dir_node = Swdir::default().set_root_path("/some/path").walk();
/// // -> DirNode (files and subdirectories)
/// // -> flatten_paths() returns Vec<PathBuf>
/// }
/// ```
///
/// ### Recurse option
///
/// ```rust
/// use swdir::{Recurse, Swdir};
///
/// fn run() {
/// let recurse = Recurse {
/// enabled: true,
/// depth_limit: Some(1), // only first level subdirectory is scanned
/// };
///
/// let dir_node = Swdir::default()
/// .set_root_path("/some/path")
/// .set_recurse(recurse)
/// .include_hidden() // don't skip hidden files and directories
/// .walk();
/// }
/// ```
///
/// ### Allowlist and denylist
///
/// ```rust
/// use swdir::{Swdir, SwdirError};
///
/// fn run() -> Result<(), SwdirError> {
/// let dir_node_with_allowlist = Swdir::default()
/// .set_root_path("/some/path")
/// .set_extension_allowlist(&["md"])?
/// .walk();
///
/// let dir_node_with_denylist = Swdir::default()
/// .set_root_path("/some/path")
/// .set_extension_denylist(&["md"])?
/// .walk();
///
/// Ok(())
/// }
/// ```
pub use crate::;