2323//! use hyper::service::{make_service_fn, service_fn};
2424//!
2525//! # #[cfg(feature = "runtime")]
26- //! # # [tokio::main]
26+ //! #[tokio::main]
2727//! async fn main() {
2828//! // Construct our SocketAddr to listen on...
2929//! let addr = ([127, 0, 0, 1], 3000).into();
5151pub mod accept;
5252pub mod conn;
5353mod shutdown;
54- #[ cfg( feature = "runtime " ) ] mod tcp;
54+ #[ cfg( feature = "tcp " ) ] mod tcp;
5555
5656use std:: error:: Error as StdError ;
5757use std:: fmt;
58- #[ cfg( feature = "runtime " ) ] use std:: net:: { SocketAddr , TcpListener as StdTcpListener } ;
58+ #[ cfg( feature = "tcp " ) ] use std:: net:: { SocketAddr , TcpListener as StdTcpListener } ;
5959
60- #[ cfg( feature = "runtime " ) ] use std:: time:: Duration ;
60+ #[ cfg( feature = "tcp " ) ] use std:: time:: Duration ;
6161
6262use tokio_io:: { AsyncRead , AsyncWrite } ;
6363use pin_project:: pin_project;
@@ -71,7 +71,7 @@ use self::accept::Accept;
7171// error that `hyper::server::Http` is private...
7272use self :: conn:: { Http as Http_ , NoopWatcher , SpawnAll } ;
7373use self :: shutdown:: { Graceful , GracefulWatcher } ;
74- #[ cfg( feature = "runtime " ) ] use self :: tcp:: AddrIncoming ;
74+ #[ cfg( feature = "tcp " ) ] use self :: tcp:: AddrIncoming ;
7575
7676/// A listening HTTP server that accepts connections in both HTTP1 and HTTP2 by default.
7777///
@@ -104,7 +104,7 @@ impl<I> Server<I, ()> {
104104 }
105105}
106106
107- #[ cfg( feature = "runtime " ) ]
107+ #[ cfg( feature = "tcp " ) ]
108108impl Server < AddrIncoming , ( ) > {
109109 /// Binds to the provided address, and returns a [`Builder`](Builder).
110110 ///
@@ -134,7 +134,7 @@ impl Server<AddrIncoming, ()> {
134134 }
135135}
136136
137- #[ cfg( feature = "runtime " ) ]
137+ #[ cfg( feature = "tcp " ) ]
138138impl < S > Server < AddrIncoming , S > {
139139 /// Returns the local address that this server is bound to.
140140 pub fn local_addr ( & self ) -> SocketAddr {
@@ -162,7 +162,7 @@ where
162162 ///
163163 /// ```
164164 /// # fn main() {}
165- /// # #[cfg(feature = "runtime ")]
165+ /// # #[cfg(feature = "tcp ")]
166166 /// # async fn run() {
167167 /// # use hyper::{Body, Response, Server, Error};
168168 /// # use hyper::service::{make_service_fn, service_fn};
@@ -356,11 +356,8 @@ impl<I, E> Builder<I, E> {
356356 /// # Example
357357 ///
358358 /// ```
359- /// # #[cfg(not(feature = "runtime"))]
360- /// # fn main() {}
361- /// # #[cfg(feature = "runtime")]
362- /// # #[tokio::main]
363- /// # async fn main() {
359+ /// # #[cfg(feature = "tcp")]
360+ /// # async fn run() {
364361 /// use hyper::{Body, Error, Response, Server};
365362 /// use hyper::service::{make_service_fn, service_fn};
366363 ///
@@ -378,7 +375,10 @@ impl<I, E> Builder<I, E> {
378375 /// let server = Server::bind(&addr)
379376 /// .serve(make_svc);
380377 ///
381- /// // Finally, spawn `server` onto an Executor...
378+ /// // Run forever-ish...
379+ /// if let Err(err) = server.await {
380+ /// eprintln!("server error: {}", err);
381+ /// }
382382 /// # }
383383 /// ```
384384 pub fn serve < S , B > ( self , new_service : S ) -> Server < I , S , E >
@@ -402,7 +402,7 @@ impl<I, E> Builder<I, E> {
402402 }
403403}
404404
405- #[ cfg( feature = "runtime " ) ]
405+ #[ cfg( feature = "tcp " ) ]
406406impl < E > Builder < AddrIncoming , E > {
407407 /// Set whether TCP keepalive messages are enabled on accepted connections.
408408 ///
0 commit comments