Skip to content

Commit 8d8a8b6

Browse files
committed
Simplify join_all example
This keeps the original structure, but removes 7 lines of code.
1 parent 512878a commit 8d8a8b6

File tree

1 file changed

+8
-15
lines changed
  • src/concurrency/async-control-flow

1 file changed

+8
-15
lines changed
Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,17 @@
1-
use anyhow::Result;
2-
use futures::future;
1+
use futures::future::join_all;
32
use reqwest;
4-
use std::collections::HashMap;
53

6-
async fn size_of_page(url: &str) -> Result<usize> {
4+
async fn size_of_page(url: &str) -> reqwest::Result<usize> {
75
let resp = reqwest::get(url).await?;
86
Ok(resp.text().await?.len())
97
}
108

119
#[tokio::main]
1210
async fn main() {
13-
let urls: [&str; 4] = [
14-
"https://google.com",
15-
"https://httpbin.org/ip",
16-
"https://play.rust-lang.org/",
17-
"BAD_URL",
18-
];
19-
let futures_iter = urls.into_iter().map(size_of_page);
20-
let results = future::join_all(futures_iter).await;
21-
let page_sizes_dict: HashMap<&str, Result<usize>> =
22-
urls.into_iter().zip(results.into_iter()).collect();
23-
println!("{:?}", page_sizes_dict);
11+
let urls = ["https://rust-lang.org", "https://httpbin.org/ip", "BAD_URL"];
12+
let futures = urls.into_iter().map(size_of_page);
13+
let results = join_all(futures).await;
14+
for (url, result) in urls.into_iter().zip(results) {
15+
println!("{url}: {result:?}");
16+
}
2417
}

0 commit comments

Comments
 (0)