Skip to content

Commit 2b40fb4

Browse files
committed
simplify client example
1 parent be2d6b4 commit 2b40fb4

File tree

1 file changed

+14
-49
lines changed

1 file changed

+14
-49
lines changed

examples/client.rs

Lines changed: 14 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,20 @@
1-
use std::pin::Pin;
2-
use std::sync::Arc;
31

42
use async_h1::client;
5-
use async_std::io::{self, Read, Write};
6-
use async_std::net::{self, TcpStream};
7-
use async_std::task::{self, Context, Poll};
3+
use async_std::net::{TcpStream};
84
use http_types::{Error, Method, Request, Url};
95

10-
fn main() -> Result<(), Error> {
11-
task::block_on(async {
12-
let stream = net::TcpStream::connect("127.0.0.1:8080").await?;
13-
let peer_addr = stream.peer_addr()?;
14-
println!("connecting to {}", peer_addr);
15-
16-
// TODO: Delete this line when we implement `Clone` for `TcpStream`.
17-
let stream = Stream(Arc::new(stream));
18-
19-
for i in 0usize..2 {
20-
println!("making request {}/2", i + 1);
21-
let url = Url::parse(&format!("http://{}/foo", peer_addr)).unwrap();
22-
let req = Request::new(Method::Get, dbg!(url));
23-
let res = client::connect(stream.clone(), req).await?;
24-
println!("{:?}", res);
25-
}
26-
Ok(())
27-
})
28-
}
29-
30-
#[derive(Clone)]
31-
struct Stream(Arc<TcpStream>);
32-
33-
impl Read for Stream {
34-
fn poll_read(
35-
self: Pin<&mut Self>,
36-
cx: &mut Context,
37-
buf: &mut [u8],
38-
) -> Poll<io::Result<usize>> {
39-
Pin::new(&mut &*self.0).poll_read(cx, buf)
40-
}
41-
}
42-
43-
impl Write for Stream {
44-
fn poll_write(self: Pin<&mut Self>, cx: &mut Context, buf: &[u8]) -> Poll<io::Result<usize>> {
45-
Pin::new(&mut &*self.0).poll_write(cx, buf)
46-
}
47-
48-
fn poll_flush(self: Pin<&mut Self>, cx: &mut Context) -> Poll<io::Result<()>> {
49-
Pin::new(&mut &*self.0).poll_flush(cx)
50-
}
51-
52-
fn poll_close(self: Pin<&mut Self>, cx: &mut Context) -> Poll<io::Result<()>> {
53-
Pin::new(&mut &*self.0).poll_close(cx)
6+
#[async_std::main]
7+
async fn main() -> Result<(), Error> {
8+
let stream = TcpStream::connect("127.0.0.1:8080").await?;
9+
let peer_addr = stream.peer_addr()?;
10+
println!("connecting to {}", peer_addr);
11+
12+
for i in 0usize..2 {
13+
println!("making request {}/2", i + 1);
14+
let url = Url::parse(&format!("http://{}/foo", peer_addr)).unwrap();
15+
let req = Request::new(Method::Get, dbg!(url));
16+
let res = client::connect(stream.clone(), req).await?;
17+
println!("{:?}", res);
5418
}
19+
Ok(())
5520
}

0 commit comments

Comments
 (0)