[][src]Struct futures_test_sink::SinkMock

pub struct SinkMock<FlushI, ReadyI, SendI, Item> { /* fields omitted */ }

This struct represent correct implementation of sink according to sink doc.

Panics:

  1. Calling start_send without calling 'poll_ready() with result Poll::Ready(Ok(()))' panic!
  2. Calling any method after poll_close() returned Poll::Ready(Ok(())) once panic!
  3. When flush_feedback iterator return None.

Methods

impl<FlushI, ReadyI, SendI, Item> SinkMock<FlushI, ReadyI, SendI, Item>[src]

pub fn set_flush_at_once(&mut self, flush_at_once: NonZeroUsize) -> &mut Self[src]

Change how many buffered item will be discarded when flush_feedback yield Poll::Ready(Ok(()))

pub fn set_max_item(&mut self, max_item: usize) -> &mut Self[src]

Set how many item can be buffered by this sink before needing to flush.

impl<FlushI, E, ReadyI, SendI, Item> SinkMock<FlushI, ReadyI, SendI, Item> where
    FlushI: Iterator<Item = Poll<Result<(), E>>>,
    ReadyI: Iterator<Item = E>,
    SendI: Iterator<Item = E>, 
[src]

pub fn new(
    flush_feedback: FlushI,
    ready_fallback: ReadyI,
    send_fallback: SendI,
    max_item: usize,
    flush_at_once: usize
) -> Self
[src]

Create a new instance of SinkMock

Arguments

  • flush_feedback - an iterator that represent reaction on flushing data to it. Every time when poll_flush() is called the item from iterator is taken and unwrapped and depends on result an special action is taken:

    • Poll::Ready(Ok(())) discard flush_at_once items from buffer. Repeat
    • Poll::Ready(Err(e)) forward error
    • Poll::Pending wake up Waker from Context and return Poll::Pending
  • send_fallback - an iterator that represent when start start_send() called with item: Item should return error. If iterator yield iter_item start_send() returns Err(iter_item) discarding item. If iterator return None item is buffered.

  • ready_fallback - an iterator that represent when poll_ready() should return error. If iterator yield iter_item poll_ready() returns Err(iter_item). Otherwise return Poll::Ready(Ok(()) if can buffer next item else return result from calling poll_flush()

  • max_item - how many item this sink can buffer

  • flush_at_once - how many item will be removed from buffer when flush_feedback return Poll::Ready(Ok(()))

impl<FlushI, E, Item> SinkMock<FlushI, Empty<E>, Empty<E>, Item> where
    FlushI: Iterator<Item = Poll<Result<(), E>>>, 
[src]

pub fn with_flush_feedback(flush_feedback: FlushI) -> Self[src]

Create a sink that will never return Error on start_send and poll_ready.

This method will use

Trait Implementations

impl<Item, FlushI, ReadyI, SendI, E> Sink<Item> for SinkMock<FlushI, ReadyI, SendI, Item> where
    FlushI: Iterator<Item = Poll<Result<(), E>>>,
    ReadyI: Iterator<Item = E>,
    SendI: Iterator<Item = E>, 
[src]

type Error = E

The type of value produced by the sink when an error occurs.

impl<FlushI, ReadyI, SendI, Item> Unpin for SinkMock<FlushI, ReadyI, SendI, Item>[src]

Auto Trait Implementations

impl<FlushI, ReadyI, SendI, Item> RefUnwindSafe for SinkMock<FlushI, ReadyI, SendI, Item> where
    FlushI: RefUnwindSafe,
    Item: RefUnwindSafe,
    ReadyI: RefUnwindSafe,
    SendI: RefUnwindSafe

impl<FlushI, ReadyI, SendI, Item> Send for SinkMock<FlushI, ReadyI, SendI, Item> where
    FlushI: Send,
    Item: Send,
    ReadyI: Send,
    SendI: Send

impl<FlushI, ReadyI, SendI, Item> Sync for SinkMock<FlushI, ReadyI, SendI, Item> where
    FlushI: Sync,
    Item: Sync,
    ReadyI: Sync,
    SendI: Sync

impl<FlushI, ReadyI, SendI, Item> UnwindSafe for SinkMock<FlushI, ReadyI, SendI, Item> where
    FlushI: UnwindSafe,
    Item: UnwindSafe,
    ReadyI: UnwindSafe,
    SendI: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, Item> SinkExt<Item> for T where
    T: Sink<Item> + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.