Function iter

fn iter<I>(i: I) -> Iter<<I as >::IntoIter>
where
    I: IntoIterator

Converts an Iterator 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.

# futures::executor::block_on(async {
use futures::stream::{self, StreamExt};

let stream = stream::iter(vec![17, 19]);
assert_eq!(vec![17, 19], stream.collect::<Vec<i32>>().await);
# });