dirscent

Crates.iodirscent
lib.rsdirscent
version0.1.0
sourcesrc
created_at2024-03-23 19:23:17.305502
updated_at2024-03-23 19:23:17.305502
descriptionDirectory descent
homepage
repositoryhttps://codeberg.org/xmyst/dirscent.git
max_upload_size
id1183752
size48,861
Stanislau Miasnikou (xmyst)

documentation

README

dirscent — directory descent

dirscent provides a simple and efficient iterator over the entries of a directory, and, recursively, over the entries of all subdirectories.

Install

Add the dependency to your Cargo.toml

[dependencies]
dirscent = "0.1"

Or from the command line

% cargo add dirscent@0.1

Usage

Iterate down the hierarchy skipping the entries for which the process does not have permissions

use dirscent::dirscent;

fn main() {
    for it in dirscent("/usr")
        .unwrap()
        .postorder()
        .skip_permission_denied()
    {
        match it {
            Ok(entry) => println!("{}", entry.path().display()),
            Err(err) => eprintln!("{err:?}"),
        }
    }
}

Performance

On my system, dirscent is 1.5× faster than fts(3) and 2× faster than find(1). Run benches/b.sh and see for yourself.

Commit count: 0

cargo fmt