12 releases (breaking)
new 0.9.0 | Dec 28, 2024 |
---|---|
0.7.0 | Dec 26, 2024 |
0.6.0 | Feb 20, 2024 |
0.5.1 | Oct 20, 2023 |
0.5.0 | Mar 7, 2023 |
#428 in Filesystem
504 downloads per month
Used in founder
9KB
88 lines
Folder
The package allows for scanning directories in parallel.
Examples
Synchronously:
use std::path::{Path, PathBuf};
use folder::scan;
let filter = |path: &Path| path.ends_with(".rs");
let map = |path: PathBuf, _| path.metadata().unwrap().len();
let fold = |sum, value| sum value;
let _ = scan("src", filter, map, (), None).fold(0, fold);
Asynchronously:
use std::path::{Path, PathBuf};
use folder::asynchronous::scan;
use futures::stream::StreamExt;
let filter = |path: &Path| path.ends_with(".rs");
let map = |path: PathBuf, _| async move { path.metadata().unwrap().len() };
let fold = |sum, value| async move { sum value };
let _ = scan("src", filter, map, (), None).fold(0, fold).await;
Contribution
Your contribution is highly appreciated. Do not hesitate to open an issue or a pull request. Note that any contribution submitted for inclusion in the project will be licensed according to the terms given in LICENSE.md.
Dependencies
~0.1–7.5MB
~56K SLoC