Skip to content

Commit 017cef5

Browse files
oddgrdseanmonstar
authored andcommitted
feat: update main index to 1.0
1 parent c2aaddd commit 017cef5

File tree

1 file changed

+24
-13
lines changed

1 file changed

+24
-13
lines changed

index.md

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,41 @@ layout: home
33
---
44

55
```rust
6-
# extern crate hyper;
76
# extern crate tokio;
7+
# extern crate hyper;
8+
# extern crate http_body_util;
89
# mod no_run {
9-
use std::{convert::Infallible, net::SocketAddr};
10-
use hyper::{Body, Request, Response, Server};
11-
use hyper::service::{make_service_fn, service_fn};
10+
use std::{convert::Infallible, net::SocketAddr, error::Error};
11+
use http_body_util::Full;
12+
use hyper::{Request, Response, body::Bytes, service::service_fn};
13+
use hyper::server::conn::http1;
14+
use tokio::net::TcpListener;
1215

13-
async fn handle(_: Request<Body>) -> Result<Response<Body>, Infallible> {
14-
Ok(Response::new("Hello, World!".into()))
16+
async fn hello(
17+
_: Request<hyper::body::Incoming>,
18+
) -> Result<Response<Full<Bytes>>, Infallible> {
19+
Ok(Response::new(Full::new(Bytes::from("Hello World!"))))
1520
}
1621

1722
#[tokio::main]
18-
async fn main() {
23+
async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
1924
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
2025

21-
let make_svc = make_service_fn(|_conn| async {
22-
Ok::<_, Infallible>(service_fn(handle))
23-
});
26+
let listener = TcpListener::bind(addr).await?;
2427

25-
let server = Server::bind(&addr).serve(make_svc);
28+
loop {
29+
let (stream, _) = listener.accept().await?;
2630

27-
if let Err(e) = server.await {
28-
eprintln!("server error: {}", e);
31+
tokio::task::spawn(async move {
32+
if let Err(err) = http1::Builder::new()
33+
.serve_connection(stream, service_fn(hello))
34+
.await
35+
{
36+
println!("Error serving connection: {:?}", err);
37+
}
38+
});
2939
}
3040
}
3141
# }
42+
# fn main() {}
3243
```

0 commit comments

Comments
 (0)