//! Default runtime //! //! By default, hyper includes the [tokio](https://tokio.rs) runtime. To ease //! using it, several types are re-exported here. //! //! The inclusion of a default runtime can be disabled by turning off hyper's //! `runtime` Cargo feature. pub use futures::{Future, Stream}; pub use futures::future::{lazy, poll_fn}; use tokio; use self::inner::Spawn; /// Spawns a future on the default executor. /// /// # Panics /// /// This function will panic if the default executor is not set. /// /// # Note /// /// The `Spawn` return type is not currently meant for anything other than /// to reserve adding new trait implementations to it later. It can be /// ignored for now. pub fn spawn(f: F) -> Spawn where F: Future + Send + 'static, { tokio::spawn(f); Spawn { _inner: (), } } /// Start the Tokio runtime using the supplied future to bootstrap execution. /// /// # Example /// /// See the [server documentation](::server) for an example of its usage. pub fn run(f: F) where F: Future + Send + 'static { tokio::run(f); } // Make the `Spawn` type an unnameable, so we can add // methods or trait impls to it later without a breaking change. mod inner { #[allow(missing_debug_implementations)] pub struct Spawn { pub(super) _inner: (), } }