1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
//! 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: F) -> Spawn where F: Future<Item=(), Error=()> + 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: F) where F: Future<Item=(), Error=()> + 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: (), } }