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, Stream};
|
||||||
pub use futures::future::{lazy, poll_fn};
|
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