[][src]Function flood::interleave

pub fn interleave<I, J>(i: I, j: J) -> Interleave<I, J> where
    I: Stream,
    J: Stream<Item = I::Item>, 

Create a stream that interleaves elements in i and j.

use flood::interleave;
use flood::IntoStream;
use futures_util::stream::StreamExt;

#[tokio::main]
async fn main() {
    let i = vec![1, 2];
    let j = vec![9, 8, 7];
    let mut stream = interleave(i.into_stream(), j.into_stream());

    assert_eq!(Some(1), stream.next().await);
    assert_eq!(Some(9), stream.next().await);
    assert_eq!(Some(2), stream.next().await);
    assert_eq!(Some(8), stream.next().await);
    assert_eq!(Some(7), stream.next().await);
    assert_eq!(None, stream.next().await);
}