swdir 0.6.1

Swiftly traverse and scan directories recursively. Sway 🪭, swing 🎷 or swim 🪼 in directories.
Documentation

swdir

crates.io License Rust Documentation Dependency Status

Swiftly traverse and scan directories recursively. Sway 🪭, swing 🎷 or swim 🪼 in directories.

Quick start

cargo install swdir
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

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)
        .disable_skip_hidden() // don't skip hidden files and directories
        .walk();
}

Allowlist and denylist

use swdir::Swdir;

fn run() {
    let dir_node_with_allowlist = Swdir::default()
        .set_root_path("/some/path")
        .set_extension_allowlist(&["md"])
        .unwrap()
        .walk();

    let dir_node_with_denylist = Swdir::default()
        .set_root_path("/some/path")
        .set_extension_denylist(&["md"])
        .unwrap()
        .walk();
}