diff options
author | Melody Horn <melody@boringcactus.com> | 2021-03-27 10:00:04 -0600 |
---|---|---|
committer | Melody Horn <melody@boringcactus.com> | 2021-03-27 10:00:04 -0600 |
commit | dfd4b77d6e99856e4c6b45edc1626e99867cbe14 (patch) | |
tree | b855415d83c51ac8e34b1fc59d696298c8735d60 | |
parent | 6db93c26dd904dd83744b2c1a2ec81a95237151a (diff) | |
download | webget-dfd4b77d6e99856e4c6b45edc1626e99867cbe14.tar.gz webget-dfd4b77d6e99856e4c6b45edc1626e99867cbe14.zip |
actually handle errors
-rw-r--r-- | src/main.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs index 21b4d82..28de762 100644 --- a/src/main.rs +++ b/src/main.rs @@ -25,7 +25,7 @@ struct Args { } #[tokio::main] -async fn main() -> Result<(), Error> { +async fn main() -> Result<(), Vec<Error>> { let (args, urls) = { let mut args: Args = Args::from_args(); let mut urls = mem::take(&mut args.urls); @@ -48,7 +48,13 @@ async fn main() -> Result<(), Error> { .into_iter() .map(|url| download(url, &args)); let downloads = futures::future::join_all(download_handles); - let _downloads = downloads.await; - - Ok(()) + let download_errors = downloads.await + .into_iter() + .filter_map(|x| x.err()) + .collect::<Vec<Error>>(); + if download_errors.len() > 0 { + Err(download_errors) + } else { + Ok(()) + } } |