1use std::time::Instant;
2
3use futures::AsyncReadExt as _;
4use futures::stream::FuturesUnordered;
5use http_client::AsyncBody;
6use http_client::HttpClient;
7use reqwest_client::ReqwestClient;
8use smol::stream::StreamExt;
9
10fn main() {
11 let app = gpui::Application::new();
12 app.run(|cx| {
13 cx.spawn(async move |cx| {
14 let client = ReqwestClient::new();
15 let start = Instant::now();
16 let requests = [
17 client.get("https://www.google.com/", AsyncBody::empty(), true),
18 client.get("https://zed.dev/", AsyncBody::empty(), true),
19 client.get("https://docs.rs/", AsyncBody::empty(), true),
20 ];
21 let mut requests = requests.into_iter().collect::<FuturesUnordered<_>>();
22 while let Some(response) = requests.next().await {
23 let mut body = String::new();
24 response
25 .unwrap()
26 .into_body()
27 .read_to_string(&mut body)
28 .await
29 .unwrap();
30 println!("{}", &body.len());
31 }
32 println!("{:?}", start.elapsed());
33
34 cx.update(|cx| {
35 cx.quit();
36 })
37 .ok();
38 })
39 .detach();
40 })
41}