Crates.io | folder |
lib.rs | folder |
version | 0.9.0 |
created_at | 2023-02-09 07:07:27.971242+00 |
updated_at | 2024-12-28 09:34:36.223723+00 |
description | The package allows for scanning directories in parallel. |
homepage | https://github.com/stainless-steel/folder |
repository | https://github.com/stainless-steel/folder |
max_upload_size | |
id | 780559 |
size | 11,801 |
The package allows for scanning directories in parallel.
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;
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.