refactor(rt): replace spawn and run with wrapped functions
This commit is contained in:
46
src/rt.rs
46
src/rt.rs
@@ -8,4 +8,48 @@
|
||||
|
||||
pub use futures::{Future, Stream};
|
||||
pub use futures::future::{lazy, poll_fn};
|
||||
pub use tokio::{run, spawn};
|
||||
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: (),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user