Function tokio::prelude::stream::iter [] [src]

pub fn iter<J, T, E>(i: J) -> Iter<<J as IntoIterator>::IntoIter> where
    J: IntoIterator<Item = Result<T, E>>, 
Deprecated

: implementation moved to iter_ok and iter_result

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 iter.next() and returns that.

use futures::*;

let mut stream = stream::iter(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());