diff --git a/examples/hello.rs b/examples/hello.rs
index 3ab9348af0..d961797158 100644
--- a/examples/hello.rs
+++ b/examples/hello.rs
@@ -5,19 +5,21 @@ extern crate pretty_env_logger;
use hyper::{Body, Request, Response, Server};
use hyper::service::{make_service_fn, service_fn};
-use hyper::rt;
async fn hello(_: Request
) -> Result, hyper::Error> {
Ok(Response::new(Body::from("Hello World!")))
}
-async fn serve() {
+#[tokio::main]
+pub async fn main() -> Result<(), Box> {
+ pretty_env_logger::init();
+
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_ok` is a helper to convert a function that
+ // `service_fn` is a helper to convert a function that
// returns a Response into a `Service`.
async {
Ok::<_, hyper::Error>(service_fn(hello))
@@ -26,13 +28,7 @@ async fn serve() {
println!("Listening on http://{}", addr);
- if let Err(e) = server.await {
- eprintln!("server error: {}", e);
- }
-}
-
-fn main() {
- pretty_env_logger::init();
+ server.await?;
- rt::run(serve());
+ Ok(())
}