std
and futures
interoperabilityThis crate implements adapters for the two different future types: [std::future::Future
] and [futures::Future
].
You can seamlessly convert the one into the other.
The aim is to be able to use new async/await syntax with existing [futures::Future
] infrastructure, such as tokio.
Keep in mind that many of the used features are still unstable and only available on nightly with feature gates.
A simple example: ```rust
use std::time::{Duration, Instant}; use tokio::timer::Delay;
use backtothefuture::{futuresawait, BoxIntoFutures};
fn main() { let f = async { // Await an old futures::Future using the futuresawait! macro. // This macro wraps the future in an adapter behind the scenes. futuresawait!(Delay::new(Instant::now() + Duration::new(0, 10))).unwrap(); Ok(()) };
// Convert the std::future::Future into a futures::Future so that tokio::run can use it. tokio::run(f.boxintofutures()); } ```