mirror of
https://github.com/tokio-rs/tokio.git
synced 2026-08-14 00:00:12 +02:00
Adds a `TypedExecutor` trait that describes how to spawn futures of a specific type. This is useful for implementing functions that are generic over an executor and wish to support both `Send` and `!Send` cases.
30 lines
664 B
Rust
30 lines
664 B
Rust
extern crate futures;
|
|
extern crate tokio_executor;
|
|
|
|
use futures::{future::lazy, Future};
|
|
use tokio_executor::DefaultExecutor;
|
|
|
|
mod out_of_executor_context {
|
|
use super::*;
|
|
use tokio_executor::Executor;
|
|
|
|
fn test<F, E>(spawn: F)
|
|
where
|
|
F: Fn(Box<Future<Item = (), Error = ()> + Send>) -> Result<(), E>,
|
|
{
|
|
let res = spawn(Box::new(lazy(|| Ok(()))));
|
|
assert!(res.is_err());
|
|
}
|
|
|
|
#[test]
|
|
fn spawn() {
|
|
test(|f| DefaultExecutor::current().spawn(f));
|
|
}
|
|
|
|
#[test]
|
|
fn execute() {
|
|
use futures::future::Executor as FuturesExecutor;
|
|
test(|f| DefaultExecutor::current().execute(f));
|
|
}
|
|
}
|