diff --git a/examples/hello.rs b/examples/hello.rs index ff51b295..c75209b4 100644 --- a/examples/hello.rs +++ b/examples/hello.rs @@ -1,9 +1,11 @@ #![deny(warnings)] +use std::convert::Infallible; + use hyper::{Body, Request, Response, Server}; use hyper::service::{make_service_fn, service_fn}; -async fn hello(_: Request) -> Result, hyper::Error> { +async fn hello(_: Request) -> Result, Infallible> { Ok(Response::new(Body::from("Hello World!"))) } @@ -11,17 +13,20 @@ async fn hello(_: Request) -> Result, hyper::Error> { pub async fn main() -> Result<(), Box> { pretty_env_logger::init(); + // For every connection, we must make a `Service` to handle all + // incoming HTTP requests on said connection. + let make_svc = make_service_fn(|_conn| { + // This is the `Service` that will handle the connection. + // `service_fn` is a helper to convert a function that + // returns a Response into a `Service`. + async { + Ok::<_, Infallible>(service_fn(hello)) + } + }); + let addr = ([127, 0, 0, 1], 3000).into(); - let server = Server::bind(&addr) - .serve(make_service_fn(|_| { - // This is the `Service` that will handle the connection. - // `service_fn` is a helper to convert a function that - // returns a Response into a `Service`. - async { - Ok::<_, hyper::Error>(service_fn(hello)) - } - })); + let server = Server::bind(&addr).serve(make_svc); println!("Listening on http://{}", addr);