Trait async_std::stream::Stream [−][src]
A stream of values produced asynchronously.
If Future<Output = T>
is an asynchronous version of T
, then Stream<Item = T>
is an asynchronous version of Iterator<Item = T>
. A stream
represents a sequence of value-producing events that occur asynchronously to
the caller.
The trait is modeled after Future
, but allows poll_next
to be called
even after a value has been produced, yielding None
once the stream has
been fully exhausted.
Associated Types
Loading content...Required methods
pub fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
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.
Return value
There are several possible return values, each indicating a distinct stream state:
-
Poll::Pending
means that this stream’s next value is not ready yet. Implementations will ensure that the current task will be notified when the next value may be ready. -
Poll::Ready(Some(val))
means that the stream has successfully produced a value,val
, and may produce further values on subsequentpoll_next
calls. -
Poll::Ready(None)
means that the stream has terminated, andpoll_next
should not be invoked again.
Panics
Once a stream has finished (returned Ready(None)
from poll_next
), calling its
poll_next
method again may panic, block forever, or cause other kinds of
problems; the Stream
trait places no requirements on the effects of
such a call. However, as the poll_next
method is not marked unsafe
,
Rust’s usual rules apply: calls must never cause undefined behavior
(memory corruption, incorrect use of unsafe
functions, or the like),
regardless of the stream’s state.
If this is difficult to guard against then the fuse
adapter can be used
to ensure that poll_next
always returns Ready(None)
in subsequent
calls.
Provided methods
pub fn size_hint(&self) -> (usize, Option<usize>)
[src]
Returns the bounds on the remaining length of the stream.
Specifically, size_hint()
returns a tuple where the first element
is the lower bound, and the second element is the upper bound.
The second half of the tuple that is returned is an Option
<
usize
>
.
A None
here means that either there is no known upper bound, or the
upper bound is larger than usize
.
Implementation notes
It is not enforced that a stream implementation yields the declared number of elements. A buggy stream may yield less than the lower bound or more than the upper bound of elements.
size_hint()
is primarily intended to be used for optimizations such as
reserving space for the elements of the stream, but must not be
trusted to e.g., omit bounds checks in unsafe code. An incorrect
implementation of size_hint()
should not lead to memory safety
violations.
That said, the implementation should provide a correct estimation, because otherwise it would be a violation of the trait’s protocol.
The default implementation returns (0,
None
)
which is correct for any
stream.
Implementations on Foreign Types
impl<'_, S> Stream for &'_ mut S where
S: Stream + Unpin + ?Sized,
[src]
S: Stream + Unpin + ?Sized,
type Item = <S as Stream>::Item
pub fn poll_next(
self: Pin<&mut &'_ mut S>,
cx: &mut Context<'_>
) -> Poll<Option<<&'_ mut S as Stream>::Item>>
[src]
self: Pin<&mut &'_ mut S>,
cx: &mut Context<'_>
) -> Poll<Option<<&'_ mut S as Stream>::Item>>
pub fn size_hint(&self) -> (usize, Option<usize>)
[src]
impl<S> Stream for Box<S, Global> where
S: Stream + Unpin + ?Sized,
[src]
S: Stream + Unpin + ?Sized,
type Item = <S as Stream>::Item
pub fn poll_next(
self: Pin<&mut Box<S, Global>>,
cx: &mut Context<'_>
) -> Poll<Option<<Box<S, Global> as Stream>::Item>>
[src]
self: Pin<&mut Box<S, Global>>,
cx: &mut Context<'_>
) -> Poll<Option<<Box<S, Global> as Stream>::Item>>
pub fn size_hint(&self) -> (usize, Option<usize>)
[src]
impl<S> Stream for AssertUnwindSafe<S> where
S: Stream,
[src]
S: Stream,
type Item = <S as Stream>::Item
pub fn poll_next(
self: Pin<&mut AssertUnwindSafe<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<S as Stream>::Item>>
[src]
self: Pin<&mut AssertUnwindSafe<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<S as Stream>::Item>>
pub fn size_hint(&self) -> (usize, Option<usize>)
[src]
impl Stream for Timer
[src]
type Item = Instant
pub fn poll_next(
self: Pin<&mut Timer>,
cx: &mut Context<'_>
) -> Poll<Option<<Timer as Stream>::Item>>
[src]
self: Pin<&mut Timer>,
cx: &mut Context<'_>
) -> Poll<Option<<Timer as Stream>::Item>>
impl<R> Stream for Split<R> where
R: AsyncBufRead,
[src]
R: AsyncBufRead,
type Item = Result<Vec<u8, Global>, Error>
pub fn poll_next(
self: Pin<&mut Split<R>>,
cx: &mut Context<'_>
) -> Poll<Option<<Split<R> as Stream>::Item>>
[src]
self: Pin<&mut Split<R>>,
cx: &mut Context<'_>
) -> Poll<Option<<Split<R> as Stream>::Item>>
impl<S> Stream for Cycle<S> where
S: Stream + Clone,
[src]
S: Stream + Clone,
type Item = <S as Stream>::Item
pub fn poll_next(
self: Pin<&mut Cycle<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<Cycle<S> as Stream>::Item>>
[src]
self: Pin<&mut Cycle<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<Cycle<S> as Stream>::Item>>
impl<T, S1, S2> Stream for Or<S1, S2> where
S1: Stream<Item = T>,
S2: Stream<Item = T>,
[src]
S1: Stream<Item = T>,
S2: Stream<Item = T>,
type Item = T
pub fn poll_next(
self: Pin<&mut Or<S1, S2>>,
cx: &mut Context<'_>
) -> Poll<Option<<Or<S1, S2> as Stream>::Item>>
[src]
self: Pin<&mut Or<S1, S2>>,
cx: &mut Context<'_>
) -> Poll<Option<<Or<S1, S2> as Stream>::Item>>
impl<S> Stream for Skip<S> where
S: Stream,
[src]
S: Stream,
type Item = <S as Stream>::Item
pub fn poll_next(
self: Pin<&mut Skip<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<Skip<S> as Stream>::Item>>
[src]
self: Pin<&mut Skip<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<Skip<S> as Stream>::Item>>
impl<T> Stream for Repeat<T> where
T: Clone,
[src]
T: Clone,
type Item = T
pub fn poll_next(
self: Pin<&mut Repeat<T>>,
&mut Context<'_>
) -> Poll<Option<<Repeat<T> as Stream>::Item>>
[src]
self: Pin<&mut Repeat<T>>,
&mut Context<'_>
) -> Poll<Option<<Repeat<T> as Stream>::Item>>
pub fn size_hint(&self) -> (usize, Option<usize>)
[src]
impl<S, U> Stream for Chain<S, U> where
U: Stream<Item = <S as Stream>::Item>,
S: Stream,
[src]
U: Stream<Item = <S as Stream>::Item>,
S: Stream,
type Item = <S as Stream>::Item
pub fn poll_next(
self: Pin<&mut Chain<S, U>>,
cx: &mut Context<'_>
) -> Poll<Option<<Chain<S, U> as Stream>::Item>>
[src]
self: Pin<&mut Chain<S, U>>,
cx: &mut Context<'_>
) -> Poll<Option<<Chain<S, U> as Stream>::Item>>
impl<I> Stream for Iter<I> where
I: Iterator,
[src]
I: Iterator,
type Item = <I as Iterator>::Item
pub fn poll_next(
self: Pin<&mut Iter<I>>,
_cx: &mut Context<'_>
) -> Poll<Option<<Iter<I> as Stream>::Item>>
[src]
self: Pin<&mut Iter<I>>,
_cx: &mut Context<'_>
) -> Poll<Option<<Iter<I> as Stream>::Item>>
pub fn size_hint(&self) -> (usize, Option<usize>)
[src]
impl<T, F> Stream for PollFn<F> where
F: FnMut(&mut Context<'_>) -> Poll<Option<T>>,
[src]
F: FnMut(&mut Context<'_>) -> Poll<Option<T>>,
type Item = T
pub fn poll_next(
self: Pin<&mut PollFn<F>>,
cx: &mut Context<'_>
) -> Poll<Option<T>>
[src]
self: Pin<&mut PollFn<F>>,
cx: &mut Context<'_>
) -> Poll<Option<T>>
impl<'a, S, T> Stream for Copied<S> where
T: 'a + Copy,
S: Stream<Item = &'a T>,
[src]
T: 'a + Copy,
S: Stream<Item = &'a T>,
type Item = T
pub fn poll_next(
self: Pin<&mut Copied<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<Copied<S> as Stream>::Item>>
[src]
self: Pin<&mut Copied<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<Copied<S> as Stream>::Item>>
impl<T> Stream for Pending<T>
[src]
type Item = T
pub fn poll_next(
self: Pin<&mut Pending<T>>,
&mut Context<'_>
) -> Poll<Option<T>>
[src]
self: Pin<&mut Pending<T>>,
&mut Context<'_>
) -> Poll<Option<T>>
pub fn size_hint(&self) -> (usize, Option<usize>)
[src]
impl<R> Stream for Bytes<R> where
R: Unpin + AsyncRead,
[src]
R: Unpin + AsyncRead,
type Item = Result<u8, Error>
pub fn poll_next(
self: Pin<&mut Bytes<R>>,
cx: &mut Context<'_>
) -> Poll<Option<<Bytes<R> as Stream>::Item>>
[src]
self: Pin<&mut Bytes<R>>,
cx: &mut Context<'_>
) -> Poll<Option<<Bytes<R> as Stream>::Item>>
impl<S, F, T> Stream for FilterMap<S, F> where
F: FnMut(<S as Stream>::Item) -> Option<T>,
S: Stream,
[src]
F: FnMut(<S as Stream>::Item) -> Option<T>,
S: Stream,
type Item = T
pub fn poll_next(
self: Pin<&mut FilterMap<S, F>>,
cx: &mut Context<'_>
) -> Poll<Option<<FilterMap<S, F> as Stream>::Item>>
[src]
self: Pin<&mut FilterMap<S, F>>,
cx: &mut Context<'_>
) -> Poll<Option<<FilterMap<S, F> as Stream>::Item>>
impl<S, F, Fut> Stream for Then<S, F, Fut> where
F: FnMut(<S as Stream>::Item) -> Fut,
S: Stream,
Fut: Future,
[src]
F: FnMut(<S as Stream>::Item) -> Fut,
S: Stream,
Fut: Future,
type Item = <Fut as Future>::Output
pub fn poll_next(
self: Pin<&mut Then<S, F, Fut>>,
cx: &mut Context<'_>
) -> Poll<Option<<Then<S, F, Fut> as Stream>::Item>>
[src]
self: Pin<&mut Then<S, F, Fut>>,
cx: &mut Context<'_>
) -> Poll<Option<<Then<S, F, Fut> as Stream>::Item>>
pub fn size_hint(&self) -> (usize, Option<usize>)
[src]
impl<S, U> Stream for Flatten<S> where
U: Stream,
S: Stream<Item = U>,
[src]
U: Stream,
S: Stream<Item = U>,
type Item = <U as Stream>::Item
pub fn poll_next(
self: Pin<&mut Flatten<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<Flatten<S> as Stream>::Item>>
[src]
self: Pin<&mut Flatten<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<Flatten<S> as Stream>::Item>>
impl<S, F> Stream for Inspect<S, F> where
F: FnMut(&<S as Stream>::Item),
S: Stream,
[src]
F: FnMut(&<S as Stream>::Item),
S: Stream,
type Item = <S as Stream>::Item
pub fn poll_next(
self: Pin<&mut Inspect<S, F>>,
cx: &mut Context<'_>
) -> Poll<Option<<Inspect<S, F> as Stream>::Item>>
[src]
self: Pin<&mut Inspect<S, F>>,
cx: &mut Context<'_>
) -> Poll<Option<<Inspect<S, F> as Stream>::Item>>
impl<T> Stream for Empty<T>
[src]
type Item = T
pub fn poll_next(
self: Pin<&mut Empty<T>>,
&mut Context<'_>
) -> Poll<Option<<Empty<T> as Stream>::Item>>
[src]
self: Pin<&mut Empty<T>>,
&mut Context<'_>
) -> Poll<Option<<Empty<T> as Stream>::Item>>
pub fn size_hint(&self) -> (usize, Option<usize>)
[src]
impl<S> Stream for Fuse<S> where
S: Stream,
[src]
S: Stream,
type Item = <S as Stream>::Item
pub fn poll_next(
self: Pin<&mut Fuse<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<S as Stream>::Item>>
[src]
self: Pin<&mut Fuse<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<S as Stream>::Item>>
impl<S, St, F, B> Stream for Scan<S, St, F> where
F: FnMut(&mut St, <S as Stream>::Item) -> Option<B>,
S: Stream,
[src]
F: FnMut(&mut St, <S as Stream>::Item) -> Option<B>,
S: Stream,
type Item = B
pub fn poll_next(
self: Pin<&mut Scan<S, St, F>>,
cx: &mut Context<'_>
) -> Poll<Option<B>>
[src]
self: Pin<&mut Scan<S, St, F>>,
cx: &mut Context<'_>
) -> Poll<Option<B>>
impl<S, P> Stream for Filter<S, P> where
P: FnMut(&<S as Stream>::Item) -> bool,
S: Stream,
[src]
P: FnMut(&<S as Stream>::Item) -> bool,
S: Stream,
type Item = <S as Stream>::Item
pub fn poll_next(
self: Pin<&mut Filter<S, P>>,
cx: &mut Context<'_>
) -> Poll<Option<<Filter<S, P> as Stream>::Item>>
[src]
self: Pin<&mut Filter<S, P>>,
cx: &mut Context<'_>
) -> Poll<Option<<Filter<S, P> as Stream>::Item>>
impl<S, P> Stream for TakeWhile<S, P> where
P: FnMut(&<S as Stream>::Item) -> bool,
S: Stream,
[src]
P: FnMut(&<S as Stream>::Item) -> bool,
S: Stream,
type Item = <S as Stream>::Item
pub fn poll_next(
self: Pin<&mut TakeWhile<S, P>>,
cx: &mut Context<'_>
) -> Poll<Option<<TakeWhile<S, P> as Stream>::Item>>
[src]
self: Pin<&mut TakeWhile<S, P>>,
cx: &mut Context<'_>
) -> Poll<Option<<TakeWhile<S, P> as Stream>::Item>>
impl<S> Stream for Enumerate<S> where
S: Stream,
[src]
S: Stream,
type Item = (usize, <S as Stream>::Item)
pub fn poll_next(
self: Pin<&mut Enumerate<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<Enumerate<S> as Stream>::Item>>
[src]
self: Pin<&mut Enumerate<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<Enumerate<S> as Stream>::Item>>
impl<'a, S, T> Stream for Cloned<S> where
T: 'a + Clone,
S: Stream<Item = &'a T>,
[src]
T: 'a + Clone,
S: Stream<Item = &'a T>,
type Item = T
pub fn poll_next(
self: Pin<&mut Cloned<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<Cloned<S> as Stream>::Item>>
[src]
self: Pin<&mut Cloned<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<Cloned<S> as Stream>::Item>>
impl<S, F, T> Stream for Map<S, F> where
F: FnMut(<S as Stream>::Item) -> T,
S: Stream,
[src]
F: FnMut(<S as Stream>::Item) -> T,
S: Stream,
type Item = T
pub fn poll_next(
self: Pin<&mut Map<S, F>>,
cx: &mut Context<'_>
) -> Poll<Option<<Map<S, F> as Stream>::Item>>
[src]
self: Pin<&mut Map<S, F>>,
cx: &mut Context<'_>
) -> Poll<Option<<Map<S, F> as Stream>::Item>>
pub fn size_hint(&self) -> (usize, Option<usize>)
[src]
impl<S> Stream for StepBy<S> where
S: Stream,
[src]
S: Stream,
type Item = <S as Stream>::Item
pub fn poll_next(
self: Pin<&mut StepBy<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<StepBy<S> as Stream>::Item>>
[src]
self: Pin<&mut StepBy<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<StepBy<S> as Stream>::Item>>
impl<T, S1, S2> Stream for Race<S1, S2> where
S1: Stream<Item = T>,
S2: Stream<Item = T>,
[src]
S1: Stream<Item = T>,
S2: Stream<Item = T>,
type Item = T
pub fn poll_next(
self: Pin<&mut Race<S1, S2>>,
cx: &mut Context<'_>
) -> Poll<Option<<Race<S1, S2> as Stream>::Item>>
[src]
self: Pin<&mut Race<S1, S2>>,
cx: &mut Context<'_>
) -> Poll<Option<<Race<S1, S2> as Stream>::Item>>
impl<R> Stream for Lines<R> where
R: AsyncBufRead,
[src]
R: AsyncBufRead,
type Item = Result<String, Error>
pub fn poll_next(
self: Pin<&mut Lines<R>>,
cx: &mut Context<'_>
) -> Poll<Option<<Lines<R> as Stream>::Item>>
[src]
self: Pin<&mut Lines<R>>,
cx: &mut Context<'_>
) -> Poll<Option<<Lines<R> as Stream>::Item>>
impl<A, B> Stream for Zip<A, B> where
B: Stream,
A: Stream,
[src]
B: Stream,
A: Stream,
type Item = (<A as Stream>::Item, <B as Stream>::Item)
pub fn poll_next(
self: Pin<&mut Zip<A, B>>,
cx: &mut Context<'_>
) -> Poll<Option<<Zip<A, B> as Stream>::Item>>
[src]
self: Pin<&mut Zip<A, B>>,
cx: &mut Context<'_>
) -> Poll<Option<<Zip<A, B> as Stream>::Item>>
impl<S, U, F> Stream for FlatMap<S, U, F> where
F: FnMut(<S as Stream>::Item) -> U,
U: Stream,
S: Stream,
[src]
F: FnMut(<S as Stream>::Item) -> U,
U: Stream,
S: Stream,
type Item = <U as Stream>::Item
pub fn poll_next(
self: Pin<&mut FlatMap<S, U, F>>,
cx: &mut Context<'_>
) -> Poll<Option<<FlatMap<S, U, F> as Stream>::Item>>
[src]
self: Pin<&mut FlatMap<S, U, F>>,
cx: &mut Context<'_>
) -> Poll<Option<<FlatMap<S, U, F> as Stream>::Item>>
impl<T, F> Stream for RepeatWith<F> where
F: FnMut() -> T,
[src]
F: FnMut() -> T,
type Item = T
pub fn poll_next(
self: Pin<&mut RepeatWith<F>>,
&mut Context<'_>
) -> Poll<Option<<RepeatWith<F> as Stream>::Item>>
[src]
self: Pin<&mut RepeatWith<F>>,
&mut Context<'_>
) -> Poll<Option<<RepeatWith<F> as Stream>::Item>>
pub fn size_hint(&self) -> (usize, Option<usize>)
[src]
impl<S> Stream for Take<S> where
S: Stream,
[src]
S: Stream,
type Item = <S as Stream>::Item
pub fn poll_next(
self: Pin<&mut Take<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<S as Stream>::Item>>
[src]
self: Pin<&mut Take<S>>,
cx: &mut Context<'_>
) -> Poll<Option<<S as Stream>::Item>>
impl<T, E, F, Fut, Item> Stream for TryUnfold<T, F, Fut> where
F: FnMut(T) -> Fut,
Fut: Future<Output = Result<Option<(Item, T)>, E>>,
[src]
F: FnMut(T) -> Fut,
Fut: Future<Output = Result<Option<(Item, T)>, E>>,
type Item = Result<Item, E>
pub fn poll_next(
self: Pin<&mut TryUnfold<T, F, Fut>>,
cx: &mut Context<'_>
) -> Poll<Option<<TryUnfold<T, F, Fut> as Stream>::Item>>
[src]
self: Pin<&mut TryUnfold<T, F, Fut>>,
cx: &mut Context<'_>
) -> Poll<Option<<TryUnfold<T, F, Fut> as Stream>::Item>>
impl<S, P> Stream for SkipWhile<S, P> where
P: FnMut(&<S as Stream>::Item) -> bool,
S: Stream,
[src]
P: FnMut(&<S as Stream>::Item) -> bool,
S: Stream,
type Item = <S as Stream>::Item
pub fn poll_next(
self: Pin<&mut SkipWhile<S, P>>,
cx: &mut Context<'_>
) -> Poll<Option<<SkipWhile<S, P> as Stream>::Item>>
[src]
self: Pin<&mut SkipWhile<S, P>>,
cx: &mut Context<'_>
) -> Poll<Option<<SkipWhile<S, P> as Stream>::Item>>
impl<T> Stream for Once<T>
[src]
type Item = T
pub fn poll_next(self: Pin<&mut Once<T>>, &mut Context<'_>) -> Poll<Option<T>>
[src]
pub fn size_hint(&self) -> (usize, Option<usize>)
[src]
impl<T, F, Fut, Item> Stream for Unfold<T, F, Fut> where
F: FnMut(T) -> Fut,
Fut: Future<Output = Option<(Item, T)>>,
[src]
F: FnMut(T) -> Fut,
Fut: Future<Output = Option<(Item, T)>>,
type Item = Item
pub fn poll_next(
self: Pin<&mut Unfold<T, F, Fut>>,
cx: &mut Context<'_>
) -> Poll<Option<<Unfold<T, F, Fut> as Stream>::Item>>
[src]
self: Pin<&mut Unfold<T, F, Fut>>,
cx: &mut Context<'_>
) -> Poll<Option<<Unfold<T, F, Fut> as Stream>::Item>>
impl<T> Stream for Unblock<T> where
T: 'static + Send + Iterator,
<T as Iterator>::Item: Send,
<T as Iterator>::Item: 'static,
[src]
T: 'static + Send + Iterator,
<T as Iterator>::Item: Send,
<T as Iterator>::Item: 'static,
type Item = <T as Iterator>::Item
pub fn poll_next(
self: Pin<&mut Unblock<T>>,
cx: &mut Context<'_>
) -> Poll<Option<<T as Iterator>::Item>>
[src]
self: Pin<&mut Unblock<T>>,
cx: &mut Context<'_>
) -> Poll<Option<<T as Iterator>::Item>>
Implementors
impl Stream for ReadDir
[src]
type Item = Result<DirEntry>
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl Stream for async_std::net::Incoming<'_>
[src]
type Item = Result<TcpStream>
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl Stream for async_std::os::unix::net::Incoming<'_>
[src]
type Item = Result<UnixStream>
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl Stream for Interval
[src]
type Item = ()
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<'a, S, T: 'a> Stream for async_std::stream::Cloned<S> where
S: Stream<Item = &'a T>,
T: Clone,
[src]
S: Stream<Item = &'a T>,
T: Clone,
type Item = T
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<'a, S, T: 'a> Stream for async_std::stream::Copied<S> where
S: Stream<Item = &'a T>,
T: Copy,
[src]
S: Stream<Item = &'a T>,
T: Copy,
type Item = T
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<A: Stream, B: Stream> Stream for async_std::stream::Zip<A, B>
[src]
type Item = (A::Item, B::Item)
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<F, T> Stream for Successors<F, T> where
F: FnMut(&T) -> Option<T>,
[src]
F: FnMut(&T) -> Option<T>,
type Item = T
fn poll_next(
self: Pin<&mut Self>,
_cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
_cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<I: Iterator> Stream for FromIter<I>
[src]
type Item = I::Item
fn poll_next(
self: Pin<&mut Self>,
_cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
_cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<L, R, T> Stream for Merge<L, R> where
L: Stream<Item = T>,
R: Stream<Item = T>,
[src]
L: Stream<Item = T>,
R: Stream<Item = T>,
type Item = T
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<P> Stream for Pin<P> where
P: DerefMut + Unpin,
<P as Deref>::Target: Stream,
[src]
P: DerefMut + Unpin,
<P as Deref>::Target: Stream,
type Item = <<P as Deref>::Target as Stream>::Item
pub fn poll_next(
self: Pin<&mut Pin<P>>,
cx: &mut Context<'_>
) -> Poll<Option<<Pin<P> as Stream>::Item>>
[src]
self: Pin<&mut Pin<P>>,
cx: &mut Context<'_>
) -> Poll<Option<<Pin<P> as Stream>::Item>>
pub fn size_hint(&self) -> (usize, Option<usize>)
[src]
impl<R: BufRead> Stream for async_std::io::Lines<R>
[src]
type Item = Result<String>
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<R: BufRead> Stream for async_std::io::Split<R>
[src]
type Item = Result<Vec<u8>>
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<S> Stream for async_std::stream::Skip<S> where
S: Stream,
[src]
S: Stream,
type Item = S::Item
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<S> Stream for async_std::stream::StepBy<S> where
S: Stream,
[src]
S: Stream,
type Item = S::Item
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<S, F> Stream for async_std::stream::Inspect<S, F> where
S: Stream,
F: FnMut(&S::Item),
[src]
S: Stream,
F: FnMut(&S::Item),
type Item = S::Item
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<S, F, B> Stream for async_std::stream::Map<S, F> where
S: Stream,
F: FnMut(S::Item) -> B,
[src]
S: Stream,
F: FnMut(S::Item) -> B,
type Item = B
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<S, P> Stream for async_std::stream::Filter<S, P> where
S: Stream,
P: FnMut(&S::Item) -> bool,
[src]
S: Stream,
P: FnMut(&S::Item) -> bool,
type Item = S::Item
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<S, P> Stream for async_std::stream::SkipWhile<S, P> where
S: Stream,
P: FnMut(&S::Item) -> bool,
[src]
S: Stream,
P: FnMut(&S::Item) -> bool,
type Item = S::Item
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<S, P> Stream for async_std::stream::TakeWhile<S, P> where
S: Stream,
P: FnMut(&S::Item) -> bool,
[src]
S: Stream,
P: FnMut(&S::Item) -> bool,
type Item = S::Item
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<S, St, F, B> Stream for async_std::stream::Scan<S, St, F> where
S: Stream,
F: FnMut(&mut St, S::Item) -> Option<B>,
[src]
S: Stream,
F: FnMut(&mut St, S::Item) -> Option<B>,
impl<S, U> Stream for async_std::stream::Flatten<S> where
S: Stream,
S::Item: IntoStream<IntoStream = U, Item = U::Item>,
U: Stream,
[src]
S: Stream,
S::Item: IntoStream<IntoStream = U, Item = U::Item>,
U: Stream,
type Item = U::Item
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<S, U, F> Stream for async_std::stream::FlatMap<S, U, F> where
S: Stream,
U: Stream,
F: FnMut(S::Item) -> U,
[src]
S: Stream,
U: Stream,
F: FnMut(S::Item) -> U,
type Item = U::Item
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<S: Stream> Stream for async_std::stream::Fuse<S>
[src]
type Item = S::Item
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<S::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<S::Item>>
impl<S: Stream> Stream for async_std::stream::Take<S>
[src]
type Item = S::Item
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<S::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<S::Item>>
impl<S: Stream> Stream for Timeout<S>
[src]
type Item = Result<S::Item, TimeoutError>
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<S: Stream, U: Stream<Item = S::Item>> Stream for async_std::stream::Chain<S, U>
[src]
type Item = S::Item
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<T> Stream for Receiver<T>
[src]
type Item = T
pub fn poll_next(
self: Pin<&mut Receiver<T>>,
cx: &mut Context<'_>
) -> Poll<Option<<Receiver<T> as Stream>::Item>>
[src]
self: Pin<&mut Receiver<T>>,
cx: &mut Context<'_>
) -> Poll<Option<<Receiver<T> as Stream>::Item>>
impl<T> Stream for async_std::stream::Empty<T>
[src]
type Item = T
fn poll_next(
self: Pin<&mut Self>,
_: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
_: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<T> Stream for async_std::stream::Once<T>
[src]
impl<T> Stream for async_std::stream::Pending<T>
[src]
impl<T, F> Stream for FromFn<F> where
F: FnMut() -> Option<T>,
[src]
F: FnMut() -> Option<T>,
type Item = T
fn poll_next(
self: Pin<&mut Self>,
_: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
_: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<T, F> Stream for async_std::stream::RepeatWith<F> where
F: FnMut() -> T,
[src]
F: FnMut() -> T,
type Item = T
fn poll_next(
self: Pin<&mut Self>,
_: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
_: &mut Context<'_>
) -> Poll<Option<Self::Item>>
impl<T: Read + Unpin> Stream for async_std::io::Bytes<T>
[src]
type Item = Result<u8>
fn poll_next(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>