fn check_data()

in src/cache.rs [211:230]


fn check_data(jobs: Vec<Job>) -> Option<Job> {
    let client = Client::new();
    let n_queries = jobs.len();
    let results = Arc::new(Mutex::new(Vec::new()));

    Runtime::new().unwrap().block_on(async {
        stream::iter(jobs)
            .map({
                let results = &results;
                let client = &client;
                move |job| check_if_file_exists(Arc::clone(results), client, job)
            })
            .buffer_unordered(n_queries)
            .collect::<Vec<()>>()
            .await
    });

    let results = Arc::try_unwrap(results).unwrap().into_inner().unwrap();
    results.first().cloned()
}