Struct futures_util::stream::TakeUntil
source · [−]Expand description
Stream for the take_until
method.
Implementations
Acquires a reference to the underlying sink or stream that this combinator is pulling from.
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.
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.
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.
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.
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");
Whether the stream was stopped yet by the stopping future being resolved.
Trait Implementations
Returns true
if the stream should no longer be polled.
Attempt to pull out the next value of this stream, registering the
current task for wakeup if the value is not yet available, and returning
None
if the stream is exhausted. Read more
Auto Trait Implementations
impl<St, Fut> RefUnwindSafe for TakeUntil<St, Fut> where
Fut: RefUnwindSafe,
St: RefUnwindSafe,
<Fut as Future>::Output: RefUnwindSafe,
impl<St, Fut> UnwindSafe for TakeUntil<St, Fut> where
Fut: UnwindSafe,
St: UnwindSafe,
<Fut as Future>::Output: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
Composes a function in front of the sink. Read more
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>>,
Self: Sized,
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>>,
Self: Sized,
Composes a function in front of the sink. Read more
fn sink_map_err<E, F>(self, f: F) -> SinkMapErr<Self, F> where
F: FnOnce(Self::Error) -> E,
Self: Sized,
fn sink_map_err<E, F>(self, f: F) -> SinkMapErr<Self, F> where
F: FnOnce(Self::Error) -> E,
Self: Sized,
Transforms the error returned by the sink.
fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E> where
Self: Sized,
Self::Error: Into<E>,
fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E> where
Self: Sized,
Self::Error: Into<E>,
Map this sink’s error to a different error type using the Into
trait. Read more
Adds a fixed-size buffer to the current sink. Read more
Close the sink.
Fanout items to multiple sinks. Read more
Flush the sink, processing all pending items. Read more
A future that completes after the given item has been fully processed into the sink, including flushing. Read more
A future that completes after the given item has been received by the sink. Read more
A future that completes after the given stream has been fully processed into the sink, including flushing. Read more
Wrap this sink in an Either
sink, making it the left-hand variant
of that Either
. Read more
Wrap this stream in an Either
stream, making it the right-hand variant
of that Either
. Read more
A convenience method for calling Sink::poll_ready
on Unpin
sink types. Read more
A convenience method for calling Sink::start_send
on Unpin
sink types. Read more
A convenience method for calling Sink::poll_flush
on Unpin
sink types. Read more