[−][src]Struct futures_test_sink::SinkMock
This struct represent correct implementation of sink according to sink doc.
Panics:
- Calling
start_send
without calling 'poll_ready()
with resultPoll::Ready(Ok(()))
' panic! - Calling any method after
poll_close()
returnedPoll::Ready(Ok(()))
once panic! - When
flush_feedback
iterator returnNone
.
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]
FlushI: Iterator<Item = Poll<Result<(), E>>>,
ReadyI: Iterator<Item = E>,
SendI: Iterator<Item = E>,
pub fn new(
flush_feedback: FlushI,
ready_fallback: ReadyI,
send_fallback: SendI,
max_item: usize,
flush_at_once: usize
) -> Self
[src]
flush_feedback: FlushI,
ready_fallback: ReadyI,
send_fallback: SendI,
max_item: usize,
flush_at_once: usize
) -> Self
Create a new instance of SinkMock
Arguments
-
flush_feedback
- an iterator that represent reaction on flushing data to it. Every time whenpoll_flush()
is called the item from iterator is taken and unwrapped and depends on result an special action is taken:Poll::Ready(Ok(()))
discardflush_at_once
items from buffer. RepeatPoll::Ready(Err(e))
forward errorPoll::Pending
wake up Waker from Context and return Poll::Pending
-
send_fallback
- an iterator that represent when startstart_send()
called withitem: Item
should return error. If iterator yielditer_item
start_send()
returnsErr(iter_item)
discardingitem
. If iterator returnNone
item
is buffered. -
ready_fallback
- an iterator that represent whenpoll_ready()
should return error. If iterator yielditer_item
poll_ready()
returnsErr(iter_item)
. Otherwise returnPoll::Ready(Ok(())
if can buffer next item else return result from callingpoll_flush()
-
max_item
- how many item this sink can buffer -
flush_at_once
- how many item will be removed from buffer whenflush_feedback
returnPoll::Ready(Ok(()))
impl<FlushI, E, Item> SinkMock<FlushI, Empty<E>, Empty<E>, Item> where
FlushI: Iterator<Item = Poll<Result<(), E>>>,
[src]
FlushI: Iterator<Item = Poll<Result<(), E>>>,
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]
FlushI: Iterator<Item = Poll<Result<(), E>>>,
ReadyI: Iterator<Item = E>,
SendI: Iterator<Item = E>,
type Error = E
The type of value produced by the sink when an error occurs.
fn poll_ready(
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<(), Self::Error>>
[src]
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<(), Self::Error>>
fn start_send(self: Pin<&mut Self>, _item: Item) -> Result<(), Self::Error>
[src]
fn poll_flush(
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<(), Self::Error>>
[src]
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<(), Self::Error>>
fn poll_close(
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<(), Self::Error>>
[src]
self: Pin<&mut Self>,
cx: &mut Context
) -> Poll<Result<(), Self::Error>>
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,
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,
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,
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,
FlushI: UnwindSafe,
Item: UnwindSafe,
ReadyI: UnwindSafe,
SendI: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, Item> SinkExt<Item> for T where
T: Sink<Item> + ?Sized,
[src]
T: Sink<Item> + ?Sized,
fn with<U, Fut, F, E>(self, f: F) -> With<Self, Item, U, Fut, F> where
E: From<Self::Error>,
F: FnMut(U) -> Fut,
Fut: Future<Output = Result<Item, E>>,
[src]
E: From<Self::Error>,
F: FnMut(U) -> Fut,
Fut: Future<Output = Result<Item, E>>,
fn with_flat_map<U, St, F>(self, f: F) -> WithFlatMap<Self, Item, U, St, F> where
F: FnMut(U) -> St,
St: Stream<Item = Result<Item, Self::Error>>,
[src]
F: FnMut(U) -> St,
St: Stream<Item = Result<Item, Self::Error>>,
fn sink_map_err<E, F>(self, f: F) -> SinkMapErr<Self, F> where
F: FnOnce(Self::Error) -> E,
[src]
F: FnOnce(Self::Error) -> E,
fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E> where
Self::Error: Into<E>,
[src]
Self::Error: Into<E>,
fn buffer(self, capacity: usize) -> Buffer<Self, Item>
[src]
fn close(&mut self) -> Close<Self, Item> where
Self: Unpin,
[src]
Self: Unpin,
fn fanout<Si>(self, other: Si) -> Fanout<Self, Si> where
Item: Clone,
Si: Sink<Item, Error = Self::Error>,
[src]
Item: Clone,
Si: Sink<Item, Error = Self::Error>,
fn flush(&mut self) -> Flush<Self, Item> where
Self: Unpin,
[src]
Self: Unpin,
fn send(&mut self, item: Item) -> Send<Self, Item> where
Self: Unpin,
[src]
Self: Unpin,
fn send_all<St>(&'a mut self, stream: &'a mut St) -> SendAll<'a, Self, St> where
Self: Unpin,
St: TryStream<Ok = Item, Error = Self::Error> + Stream + Unpin + ?Sized,
[src]
Self: Unpin,
St: TryStream<Ok = Item, Error = Self::Error> + Stream + Unpin + ?Sized,
fn left_sink<Si2>(self) -> Either<Self, Si2> where
Si2: Sink<Item, Error = Self::Error>,
[src]
Si2: Sink<Item, Error = Self::Error>,
fn right_sink<Si1>(self) -> Either<Si1, Self> where
Si1: Sink<Item, Error = Self::Error>,
[src]
Si1: Sink<Item, Error = Self::Error>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,