Crate folder

Source
Expand description

Scanning directories in parallel.

§Examples

Synchronously:

fn main() {
    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:

 #[tokio::main]
 async fn main() {
     use std::path::{Path, PathBuf};

     use futures::stream::StreamExt;
     use folder::asynchronous::scan;

     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;
 }

Re-exports§

pub use synchronous::scan;

Modules§

synchronous
Synchronous implementation.