1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
//! Definition of the Empty combinator, a future that's never ready. use core::marker; use {Future, Poll, Async}; /// A future which is never resolved. /// /// This future can be created with the `empty` function. #[derive(Debug)] #[must_use = "futures do nothing unless polled"] pub struct Empty<T, E> { _data: marker::PhantomData<(T, E)>, } /// Creates a future which never resolves, representing a computation that never /// finishes. /// /// The returned future will forever return `Async::NotReady`. pub fn empty<T, E>() -> Empty<T, E> { Empty { _data: marker::PhantomData } } impl<T, E> Future for Empty<T, E> { type Item = T; type Error = E; fn poll(&mut self) -> Poll<T, E> { Ok(Async::NotReady) } }