[][src]Trait futures_test::stream::StreamTestExt

pub trait StreamTestExt: Stream {
    pub fn assert_unmoved(self) -> AssertUnmoved<Self>

Notable traits for AssertUnmoved<Fut>

impl<Fut: Future> Future for AssertUnmoved<Fut> type Output = Fut::Output;

    where
        Self: Sized
, { ... }
pub fn interleave_pending(self) -> InterleavePending<Self>

Notable traits for InterleavePending<Fut>

impl<Fut: Future> Future for InterleavePending<Fut> type Output = Fut::Output;

    where
        Self: Sized
, { ... } }

Additional combinators for testing streams.

Provided methods

pub fn assert_unmoved(self) -> AssertUnmoved<Self>

Notable traits for AssertUnmoved<Fut>

impl<Fut: Future> Future for AssertUnmoved<Fut> type Output = Fut::Output;
where
    Self: Sized
[src]

Asserts that the given is not moved after being polled.

A check for movement is performed each time the stream is polled and when Drop is called.

Aside from keeping track of the location at which the stream was first polled and providing assertions, this stream adds no runtime behavior and simply delegates to the child stream.

pub fn interleave_pending(self) -> InterleavePending<Self>

Notable traits for InterleavePending<Fut>

impl<Fut: Future> Future for InterleavePending<Fut> type Output = Fut::Output;
where
    Self: Sized
[src]

Introduces an extra Poll::Pending in between each item of the stream.

Examples

use futures::task::Poll;
use futures::stream::{self, Stream};
use futures_test::task::noop_context;
use futures_test::stream::StreamTestExt;
use futures::pin_mut;

let stream = stream::iter(vec![1, 2]).interleave_pending();
pin_mut!(stream);

let mut cx = noop_context();

assert_eq!(stream.as_mut().poll_next(&mut cx), Poll::Pending);
assert_eq!(stream.as_mut().poll_next(&mut cx), Poll::Ready(Some(1)));
assert_eq!(stream.as_mut().poll_next(&mut cx), Poll::Pending);
assert_eq!(stream.as_mut().poll_next(&mut cx), Poll::Ready(Some(2)));
assert_eq!(stream.as_mut().poll_next(&mut cx), Poll::Pending);
assert_eq!(stream.as_mut().poll_next(&mut cx), Poll::Ready(None));
Loading content...

Implementors

impl<St> StreamTestExt for St where
    St: Stream
[src]

Loading content...