Skip to main content

swdir/
lib.rs

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