Function futures::stream::iter_result[][src]

pub fn iter_result<J, T, E>(i: J) -> IterResult<J::IntoIter> where
    J: IntoIterator<Item = Result<T, E>>, 

Converts an Iterator over Results into a Stream which is always ready to yield the next value.

Iterators in Rust don't express the ability to block, so this adapter simply always calls and returns that.

use futures::*;

let mut stream = stream::iter_result(vec![Ok(17), Err(false), Ok(19)]);
assert_eq!(Ok(Async::Ready(Some(17))), stream.poll());
assert_eq!(Err(false), stream.poll());
assert_eq!(Ok(Async::Ready(Some(19))), stream.poll());
assert_eq!(Ok(Async::Ready(None)), stream.poll());