[−][src]Struct futures_util::stream::TakeUntil
Stream for the take_until
method.
Implementations
impl<St, Fut> TakeUntil<St, Fut> where
St: Stream,
Fut: Future,
[src]
St: Stream,
Fut: Future,
pub fn get_ref(&self) -> &St
[src]
Acquires a reference to the underlying sink or stream that this combinator is pulling from.
pub fn get_mut(&mut self) -> &mut St
[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 Self>) -> Pin<&mut St>ⓘ
[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::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 resovled 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
St: Stream + Debug,
St::Item: Debug,
Fut: Future + Debug,
[src]
St: Stream + Debug,
St::Item: Debug,
Fut: Future + Debug,
impl<St, Fut> FusedStream for TakeUntil<St, Fut> where
St: Stream,
Fut: Future,
[src]
St: Stream,
Fut: Future,
pub fn is_terminated(&self) -> bool
[src]
impl<S, Fut, Item> Sink<Item> for TakeUntil<S, Fut> where
S: Stream + Sink<Item>,
Fut: Future,
[src]
S: Stream + Sink<Item>,
Fut: Future,
type Error = S::Error
The type of value produced by the sink when an error occurs.
pub 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>>
pub fn start_send(self: Pin<&mut Self>, item: Item) -> Result<(), Self::Error>
[src]
pub 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>>
pub 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<St, Fut> Stream for TakeUntil<St, Fut> where
St: Stream,
Fut: Future,
[src]
St: Stream,
Fut: Future,
type Item = St::Item
Values yielded by the stream.
pub fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<St::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<St::Item>>
pub fn size_hint(&self) -> (usize, Option<usize>)
[src]
impl<'pin, St: Stream, Fut: Future> Unpin for TakeUntil<St, Fut> where
__TakeUntil<'pin, St, Fut>: Unpin,
[src]
__TakeUntil<'pin, St, Fut>: Unpin,
Auto Trait Implementations
impl<St, Fut> Send for TakeUntil<St, Fut> where
Fut: Send,
St: Send,
<Fut as Future>::Output: Send,
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,
Fut: Sync,
St: Sync,
<Fut as Future>::Output: Sync,
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,
pub 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,
pub fn with<U, Fut, F, E>(self, f: F) -> With<Self, Item, U, Fut, F> where
F: FnMut(U) -> Fut,
Fut: Future<Output = Result<Item, E>>,
E: From<Self::Error>,
Self: Sized,
[src]
F: FnMut(U) -> Fut,
Fut: Future<Output = Result<Item, E>>,
E: From<Self::Error>,
Self: Sized,
pub 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,
[src]
F: FnMut(U) -> St,
St: Stream<Item = Result<Item, Self::Error>>,
Self: Sized,
pub fn sink_map_err<E, F>(self, f: F) -> SinkMapErr<Self, F> where
F: FnOnce(Self::Error) -> E,
Self: Sized,
[src]
F: FnOnce(Self::Error) -> E,
Self: Sized,
pub fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E> where
Self: Sized,
Self::Error: Into<E>,
[src]
Self: Sized,
Self::Error: Into<E>,
pub fn buffer(self, capacity: usize) -> Buffer<Self, Item> where
Self: Sized,
[src]
Self: Sized,
pub fn close(&mut self) -> Close<'_, Self, Item>ⓘ where
Self: Unpin,
[src]
Self: Unpin,
pub fn fanout<Si>(self, other: Si) -> Fanout<Self, Si> where
Self: Sized,
Item: Clone,
Si: Sink<Item, Error = Self::Error>,
[src]
Self: Sized,
Item: Clone,
Si: Sink<Item, Error = Self::Error>,
pub fn flush(&mut self) -> Flush<'_, Self, Item>ⓘ where
Self: Unpin,
[src]
Self: Unpin,
pub fn send(&mut self, item: Item) -> Send<'_, Self, Item>ⓘ where
Self: Unpin,
[src]
Self: Unpin,
pub fn send_all<'a, St: ?Sized>(
&'a mut self,
stream: &'a mut St
) -> SendAll<'a, Self, St>ⓘ where
St: TryStream<Ok = Item, Error = Self::Error> + Stream + Unpin,
Self: Unpin,
[src]
&'a mut self,
stream: &'a mut St
) -> SendAll<'a, Self, St>ⓘ where
St: TryStream<Ok = Item, Error = Self::Error> + Stream + Unpin,
Self: Unpin,
pub fn left_sink<Si2>(self) -> Either<Self, Si2>ⓘ where
Si2: Sink<Item, Error = Self::Error>,
Self: Sized,
[src]
Si2: Sink<Item, Error = Self::Error>,
Self: Sized,
pub fn right_sink<Si1>(self) -> Either<Si1, Self>ⓘ where
Si1: Sink<Item, Error = Self::Error>,
Self: Sized,
[src]
Si1: Sink<Item, Error = Self::Error>,
Self: Sized,
pub fn poll_ready_unpin(
&mut self,
cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>> where
Self: Unpin,
[src]
&mut self,
cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>> where
Self: Unpin,
pub fn start_send_unpin(&mut self, item: Item) -> Result<(), Self::Error> where
Self: Unpin,
[src]
Self: Unpin,
pub fn poll_flush_unpin(
&mut self,
cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>> where
Self: Unpin,
[src]
&mut self,
cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>> where
Self: Unpin,
pub fn poll_close_unpin(
&mut self,
cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>> where
Self: Unpin,
[src]
&mut self,
cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>> where
Self: Unpin,
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.
pub 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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<S, T, E> TryStream for S where
S: Stream<Item = Result<T, E>> + ?Sized,
[src]
S: Stream<Item = Result<T, E>> + ?Sized,