Function futures::lazy
[−]
[src]
pub fn lazy<F, R>(f: F) -> Lazy<F, R> where F: FnOnce() -> R, R: IntoFuture
Creates a new future which will eventually be the same as the one created by the closure provided.
The provided closure is only run once the future has a callback scheduled on it, otherwise the callback never runs. Once run, however, this future is the same as the one the closure creates.
Examples
use futures::future::*; let a = lazy(|| ok::<u32, u32>(1)); let b = lazy(|| -> FutureResult<u32, u32> { panic!("oh no!") }); drop(b); // closure is never run