Struct futures::prelude::stream::TakeUntil[][src]

#[must_use = "streams do nothing unless polled"]pub struct TakeUntil<St, Fut> where
    Fut: Future,
    St: Stream
{ /* fields omitted */ }

Stream for the take_until method.

Implementations

impl<St, Fut> TakeUntil<St, Fut> where
    Fut: Future,
    St: Stream
[src]

pub fn get_ref(&self) -> &St

Notable traits for &'_ mut F

impl<'_, F> Future for &'_ mut F where
    F: Future + Unpin + ?Sized
type Output = <F as Future>::Output;
[src]

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

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

Notable traits for &'_ mut F

impl<'_, F> Future for &'_ mut F where
    F: Future + Unpin + ?Sized
type Output = <F as Future>::Output;
[src]

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.

pub fn get_pin_mut(self: Pin<&mut TakeUntil<St, Fut>>) -> Pin<&mut St>

Notable traits for Pin<P>

impl<P> Future for Pin<P> where
    P: Unpin + DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;
[src]

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.

pub fn into_inner(self) -> St[src]

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.

pub fn take_future(&mut self) -> Option<Fut>[src]

Extract the stopping future out of the combinator. The future is returned only if it isn’t resolved yet, ie. if the stream isn’t stopped yet. Taking out the future means the combinator will be yielding elements from the wrapped stream without ever stopping it.

pub fn take_result(&mut self) -> Option<<Fut as Future>::Output>[src]

Once the stopping future is resolved, this method can be used to extract the value returned by the stopping future.

This may be used to retrieve arbitrary data from the stopping future, for example a reason why the stream was stopped.

This method will return None if the future isn’t resolved yet, or if the result was already taken out.

Examples

use futures::future;
use futures::stream::{self, StreamExt};
use futures::task::Poll;

let stream = stream::iter(1..=10);

let mut i = 0;
let stop_fut = future::poll_fn(|_cx| {
    i += 1;
    if i <= 5 {
        Poll::Pending
    } else {
        Poll::Ready("reason")
    }
});

let mut stream = stream.take_until(stop_fut);
let _ = stream.by_ref().collect::<Vec<_>>().await;

let result = stream.take_result().unwrap();
assert_eq!(result, "reason");

pub fn is_stopped(&self) -> bool[src]

Whether the stream was stopped yet by the stopping future being resolved.

Trait Implementations

impl<St, Fut> Debug for TakeUntil<St, Fut> where
    Fut: Future + Debug,
    St: Stream + Debug,
    <St as Stream>::Item: Debug
[src]

impl<St, Fut> FusedStream for TakeUntil<St, Fut> where
    Fut: Future,
    St: Stream
[src]

impl<S, Fut, Item> Sink<Item> for TakeUntil<S, Fut> where
    Fut: Future,
    S: Stream + Sink<Item>, 
[src]

type Error = <S as Sink<Item>>::Error

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

impl<St, Fut> Stream for TakeUntil<St, Fut> where
    Fut: Future,
    St: Stream
[src]

type Item = <St as Stream>::Item

Values yielded by the stream.

impl<'__pin, St, Fut> Unpin for TakeUntil<St, Fut> where
    Fut: Future,
    St: Stream,
    __Origin<'__pin, St, Fut>: Unpin
[src]

Auto Trait Implementations

impl<St, Fut> RefUnwindSafe for TakeUntil<St, Fut> where
    Fut: RefUnwindSafe,
    St: RefUnwindSafe,
    <Fut as Future>::Output: RefUnwindSafe

impl<St, Fut> Send for TakeUntil<St, Fut> where
    Fut: Send,
    St: Send,
    <Fut as Future>::Output: Send

impl<St, Fut> Sync for TakeUntil<St, Fut> where
    Fut: Sync,
    St: Sync,
    <Fut as Future>::Output: Sync

impl<St, Fut> UnwindSafe for TakeUntil<St, Fut> where
    Fut: UnwindSafe,
    St: UnwindSafe,
    <Fut as Future>::Output: 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> StreamExt for T where
    T: Stream + ?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.

impl<S, T, E> TryStream for S where
    S: Stream<Item = Result<T, E>> + ?Sized
[src]

type Ok = T

The type of successful values yielded by this future

type Error = E

The type of failures yielded by this future

impl<S> TryStreamExt for S where
    S: TryStream + ?Sized
[src]