Struct Scan

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

Stream for the scan method.

Implementations

impl<B, St, S, Fut, F> Scan<St, S, Fut, F> where St: Stream, F: FnMut(&mut S, St::Item) -> Fut, Fut: Future<Output = Option<B>>,

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: Stream, S, Fut, F> Unpin for Scan<St, S, Fut, F> where PinnedFieldsOf<__Origin<'__pin, St, S, Fut, F>>: Unpin,

impl<B, St, S, Fut, F> FusedStream for Scan<St, S, Fut, F> where St: FusedStream, F: FnMut(&mut S, St::Item) -> Fut, Fut: Future<Output = Option<B>>,

fn is_terminated(&self) -> bool

impl<B, St, S, Fut, F> Stream for Scan<St, S, Fut, F> where St: Stream, F: FnMut(&mut S, St::Item) -> Fut, Fut: Future<Output = Option<B>>,

type Item = B;
fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<B>>
fn size_hint(&self) -> (usize, Option<usize>)

impl<St, S, Fut, F> Debug for Scan<St, S, Fut, F> where St: Stream + Debug, St::Item: Debug, S: Debug, Fut: Debug,

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

impl<St, S, Fut, F, Item> Sink<Item> for Scan<St, S, Fut, F> where St: Stream + Sink<Item>,

type Error = <St 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>>

Auto Trait Implementations

impl<St, S, Fut, F> Freeze for Scan<St, S, Fut, F> where St: Freeze, Option<StateFn<S, F>>: Freeze, Option<Fut>: Freeze,

impl<St, S, Fut, F> RefUnwindSafe for Scan<St, S, Fut, F> where St: RefUnwindSafe, Option<StateFn<S, F>>: RefUnwindSafe, Option<Fut>: RefUnwindSafe,

impl<St, S, Fut, F> Send for Scan<St, S, Fut, F> where St: Send, Option<StateFn<S, F>>: Send, Option<Fut>: Send,

impl<St, S, Fut, F> Sync for Scan<St, S, Fut, F> where St: Sync, Option<StateFn<S, F>>: Sync, Option<Fut>: Sync,

impl<St, S, Fut, F> UnsafeUnpin for Scan<St, S, Fut, F> where St: UnsafeUnpin, Option<StateFn<S, F>>: UnsafeUnpin, Option<Fut>: UnsafeUnpin,

impl<St, S, Fut, F> UnwindSafe for Scan<St, S, Fut, F> where St: UnwindSafe, Option<StateFn<S, F>>: UnwindSafe, Option<Fut>: UnwindSafe,

Blanket Implementations

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

impl<S, T, E> TryStream for Scan<St, S, 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 Scan<St, S, Fut, F> where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

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

fn borrow(&self) -> &T

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

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

impl<T> From<T> for Scan<St, S, Fut, F>

fn from(t: T) -> T

Returns the argument unchanged.

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

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

impl<T, U> Into<U> for Scan<St, S, 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 Scan<St, S, Fut, F> where U: Into<T>,

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

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

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