Struct AndThen

#[must_use = "streams do nothing unless polled"]
pub struct AndThen<St, Fut, F> { /* private fields */ }

Stream for the and_then method.

Implementations

impl<St, Fut, F> AndThen<St, Fut, F> where St: TryStream, F: FnMut(St::Ok) -> Fut, Fut: TryFuture<Error = St::Error>,

fn get_ref(&self) -> &St

Acquires a reference to the underlying sink or stream that this combinator is pulling from.

fn get_mut(&mut self) -> &mut St

Acquires a mutable reference to the underlying sink or stream that this combinator is pulling from.

Note that care must be taken to avoid tampering with the state of the sink or stream which may otherwise confuse this combinator.

fn get_pin_mut(self: Pin<&mut Self>) -> Pin<&mut St>

Acquires a pinned mutable reference to the underlying sink or stream that this combinator is pulling from.

Note that care must be taken to avoid tampering with the state of the sink or stream which may otherwise confuse this combinator.

fn into_inner(self) -> St

Consumes this combinator, returning the underlying sink or stream.

Note that this may discard intermediate state of this combinator, so care should be taken to avoid losing resources when this is called.

Trait Implementations

impl<'__pin, St, Fut, F> Unpin for AndThen<St, Fut, F> where PinnedFieldsOf<__Origin<'__pin, St, Fut, F>>: Unpin,

impl<S, Fut, F, Item> Sink<Item> for AndThen<S, Fut, F> where S: Sink<Item>,

type Error = <S as Sink<Item>>::Error;
fn poll_ready(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>
fn start_send(self: Pin<&mut Self>, item: Item) -> Result<(), Self::Error>
fn poll_flush(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>>

impl<St, Fut, F> Debug for AndThen<St, Fut, F> where St: Debug, Fut: Debug,

fn fmt(&self, f: &mut Formatter<'_>) -> Result

impl<St, Fut, F> FusedStream for AndThen<St, Fut, F> where St: TryStream + FusedStream, F: FnMut(St::Ok) -> Fut, Fut: TryFuture<Error = St::Error>,

fn is_terminated(&self) -> bool

impl<St, Fut, F> Stream for AndThen<St, Fut, F> where St: TryStream, F: FnMut(St::Ok) -> Fut, Fut: TryFuture<Error = St::Error>,

type Item = Result<<Fut as TryFuture>::Ok, <St as TryStream>::Error>;
fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>>
fn size_hint(&self) -> (usize, Option<usize>)

Auto Trait Implementations

impl<St, Fut, F> Freeze for AndThen<St, Fut, F> where St: Freeze, Option<Fut>: Freeze, F: Freeze,

impl<St, Fut, F> RefUnwindSafe for AndThen<St, Fut, F> where St: RefUnwindSafe, Option<Fut>: RefUnwindSafe, F: RefUnwindSafe,

impl<St, Fut, F> Send for AndThen<St, Fut, F> where St: Send, Option<Fut>: Send, F: Send,

impl<St, Fut, F> Sync for AndThen<St, Fut, F> where St: Sync, Option<Fut>: Sync, F: Sync,

impl<St, Fut, F> UnsafeUnpin for AndThen<St, Fut, F> where St: UnsafeUnpin, Option<Fut>: UnsafeUnpin, F: UnsafeUnpin,

impl<St, Fut, F> UnwindSafe for AndThen<St, Fut, F> where St: UnwindSafe, Option<Fut>: UnwindSafe, F: UnwindSafe,

Blanket Implementations

impl<S> TryStreamExt for AndThen<St, Fut, F> where S: TryStream + ?Sized,

impl<S, T, E> TryStream for AndThen<St, Fut, F> where S: Stream<Item = Result<T, E>> + ?Sized,

type Ok = T;
type Error = E;
fn try_poll_next(self: Pin<&mut S>, cx: &mut Context<'_>) -> Poll<Option<Result<<S as TryStream>::Ok, <S as TryStream>::Error>>>

impl<T> Any for AndThen<St, Fut, F> where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for AndThen<St, Fut, F> where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for AndThen<St, Fut, F> where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

impl<T> From<T> for AndThen<St, Fut, F>

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> StreamExt for AndThen<St, Fut, F> where T: Stream + ?Sized,

impl<T, Item> SinkExt<Item> for AndThen<St, Fut, F> where T: Sink<Item> + ?Sized,

impl<T, U> Into<U> for AndThen<St, Fut, F> where U: From<T>,

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom<U> for AndThen<St, Fut, F> where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for AndThen<St, Fut, F> where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error;
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>