From b48dfa71248b04038ec3be050e6babfaa7436593 Mon Sep 17 00:00:00 2001 From: Miguel Piedrafita Date: Tue, 25 Jun 2024 18:20:33 +0200 Subject: [PATCH] download dependencies in parallel Fixes #4 --- src/dependency_downloader.rs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/dependency_downloader.rs b/src/dependency_downloader.rs index 10bdb2d..36143da 100644 --- a/src/dependency_downloader.rs +++ b/src/dependency_downloader.rs @@ -24,15 +24,16 @@ pub async fn download_dependencies( clean_dependency_directory(); } // downloading dependencies to dependencies folder - for dependency in dependencies.iter() { - let file_name: String = format!("{}-{}.zip", dependency.name, dependency.version); - match download_dependency(&file_name, &dependency.url).await { - Ok(_) => {} - Err(err) => { - return Err(err); - } + futures::future::join_all(dependencies.iter().map(|dep| { + async { + let file_name: String = format!("{}-{}.zip", dep.name, dep.version); + download_dependency(&file_name, &dep.url).await } - } + })) + .await + .into_iter() + .collect::>()?; + Ok(()) }