Struct streamunordered::StreamUnordered
source · pub struct StreamUnordered<S> { /* private fields */ }
Expand description
A stream multiplexer.
See the crate-level documentation for details.
Implementations§
source§impl<S> StreamUnordered<S>
impl<S> StreamUnordered<S>
sourcepub fn new() -> StreamUnordered<S>
pub fn new() -> StreamUnordered<S>
Constructs a new, empty StreamUnordered
The returned StreamUnordered
does not contain any streams and, in this
state, StreamUnordered::poll
will return Ok(Async::Ready(None))
.
sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Returns the number of streams contained in the set.
This represents the total number of in-flight streams.
sourcepub fn stream_slot(&mut self) -> StreamSlot<'_, S>
pub fn stream_slot(&mut self) -> StreamSlot<'_, S>
Returns a handle to a vacant stream slot allowing for further manipulation.
This function is useful when creating values that must contain their stream token. The
returned StreamSlot
reserves a slot for the stream and is able to query the associated
key.
sourcepub fn push(&mut self, stream: S) -> usize
pub fn push(&mut self, stream: S) -> usize
Push a stream into the set.
This function submits the given stream to the set for managing. This
function will not call poll
on the submitted stream. The caller must
ensure that StreamUnordered::poll
is called in order to receive task
notifications.
The returned token is an identifier that uniquely identifies the given stream. To get a
handle to the pushed stream, pass the token to StreamUnordered::get
or
StreamUnordered::get_mut
(or just index StreamUnordered
directly). The same token
will be yielded whenever an element is pulled from this stream.
sourcepub fn get(&self, stream: usize) -> Option<&S>
pub fn get(&self, stream: usize) -> Option<&S>
Returns a reference to the stream at the given index.
If the given index is not associated with a stream, then None is returned.
This method is useful for getting a reference to a specific stream after it yielded a value.
sourcepub fn get_mut(&mut self, stream: usize) -> Option<&mut S>
pub fn get_mut(&mut self, stream: usize) -> Option<&mut S>
Returns a mutable reference to the stream at the given index.
If the given index is not associated with a stream, then None is returned.
This method is useful for getting a mutable reference to a specific stream after it yielded a value.
Trait Implementations§
source§impl<S: Debug> Debug for StreamUnordered<S>
impl<S: Debug> Debug for StreamUnordered<S>
source§impl<S> Default for StreamUnordered<S>
impl<S> Default for StreamUnordered<S>
source§impl<S> Drop for StreamUnordered<S>
impl<S> Drop for StreamUnordered<S>
source§impl<S> FromIterator<S> for StreamUnordered<S>
impl<S> FromIterator<S> for StreamUnordered<S>
source§fn from_iter<I>(iter: I) -> Selfwhere
I: IntoIterator<Item = S>,
fn from_iter<I>(iter: I) -> Selfwhere
I: IntoIterator<Item = S>,
source§impl<S> Index<usize> for StreamUnordered<S>
impl<S> Index<usize> for StreamUnordered<S>
source§impl<S> IndexMut<usize> for StreamUnordered<S>
impl<S> IndexMut<usize> for StreamUnordered<S>
source§impl<S> Stream for StreamUnordered<S>where
S: Stream,
impl<S> Stream for StreamUnordered<S>where
S: Stream,
§type Item = (StreamYield<S>, usize)
type Item = (StreamYield<S>, usize)
source§fn poll(&mut self) -> Poll<Option<Self::Item>, Self::Error>
fn poll(&mut self) -> Poll<Option<Self::Item>, Self::Error>
None
if
the stream is finished. Read moresource§fn wait(self) -> Wait<Self>where
Self: Sized,
fn wait(self) -> Wait<Self>where
Self: Sized,
source§fn into_future(self) -> StreamFuture<Self>where
Self: Sized,
fn into_future(self) -> StreamFuture<Self>where
Self: Sized,
Future
. Read moresource§fn map_err<U, F>(self, f: F) -> MapErr<Self, F>where
F: FnMut(Self::Error) -> U,
Self: Sized,
fn map_err<U, F>(self, f: F) -> MapErr<Self, F>where
F: FnMut(Self::Error) -> U,
Self: Sized,
source§fn filter<F>(self, f: F) -> Filter<Self, F>where
F: FnMut(&Self::Item) -> bool,
Self: Sized,
fn filter<F>(self, f: F) -> Filter<Self, F>where
F: FnMut(&Self::Item) -> bool,
Self: Sized,
source§fn filter_map<F, B>(self, f: F) -> FilterMap<Self, F>where
F: FnMut(Self::Item) -> Option<B>,
Self: Sized,
fn filter_map<F, B>(self, f: F) -> FilterMap<Self, F>where
F: FnMut(Self::Item) -> Option<B>,
Self: Sized,
source§fn then<F, U>(self, f: F) -> Then<Self, F, U>where
F: FnMut(Result<Self::Item, Self::Error>) -> U,
U: IntoFuture,
Self: Sized,
fn then<F, U>(self, f: F) -> Then<Self, F, U>where
F: FnMut(Result<Self::Item, Self::Error>) -> U,
U: IntoFuture,
Self: Sized,
f
. Read moresource§fn and_then<F, U>(self, f: F) -> AndThen<Self, F, U>where
F: FnMut(Self::Item) -> U,
U: IntoFuture<Error = Self::Error>,
Self: Sized,
fn and_then<F, U>(self, f: F) -> AndThen<Self, F, U>where
F: FnMut(Self::Item) -> U,
U: IntoFuture<Error = Self::Error>,
Self: Sized,
f
. Read moresource§fn or_else<F, U>(self, f: F) -> OrElse<Self, F, U>where
F: FnMut(Self::Error) -> U,
U: IntoFuture<Item = Self::Item>,
Self: Sized,
fn or_else<F, U>(self, f: F) -> OrElse<Self, F, U>where
F: FnMut(Self::Error) -> U,
U: IntoFuture<Item = Self::Item>,
Self: Sized,
f
. Read moresource§fn collect(self) -> Collect<Self>where
Self: Sized,
fn collect(self) -> Collect<Self>where
Self: Sized,
source§fn fold<F, T, Fut>(self, init: T, f: F) -> Fold<Self, F, Fut, T>where
F: FnMut(T, Self::Item) -> Fut,
Fut: IntoFuture<Item = T>,
Self::Error: From<<Fut as IntoFuture>::Error>,
Self: Sized,
fn fold<F, T, Fut>(self, init: T, f: F) -> Fold<Self, F, Fut, T>where
F: FnMut(T, Self::Item) -> Fut,
Fut: IntoFuture<Item = T>,
Self::Error: From<<Fut as IntoFuture>::Error>,
Self: Sized,
source§fn skip_while<P, R>(self, pred: P) -> SkipWhile<Self, P, R>where
P: FnMut(&Self::Item) -> R,
R: IntoFuture<Item = bool, Error = Self::Error>,
Self: Sized,
fn skip_while<P, R>(self, pred: P) -> SkipWhile<Self, P, R>where
P: FnMut(&Self::Item) -> R,
R: IntoFuture<Item = bool, Error = Self::Error>,
Self: Sized,
true
. Read moresource§fn take_while<P, R>(self, pred: P) -> TakeWhile<Self, P, R>where
P: FnMut(&Self::Item) -> R,
R: IntoFuture<Item = bool, Error = Self::Error>,
Self: Sized,
fn take_while<P, R>(self, pred: P) -> TakeWhile<Self, P, R>where
P: FnMut(&Self::Item) -> R,
R: IntoFuture<Item = bool, Error = Self::Error>,
Self: Sized,
true
. Read moresource§fn for_each<F, U>(self, f: F) -> ForEach<Self, F, U>where
F: FnMut(Self::Item) -> U,
U: IntoFuture<Item = (), Error = Self::Error>,
Self: Sized,
fn for_each<F, U>(self, f: F) -> ForEach<Self, F, U>where
F: FnMut(Self::Item) -> U,
U: IntoFuture<Item = (), Error = Self::Error>,
Self: Sized,
source§fn from_err<E>(self) -> FromErr<Self, E>where
E: From<Self::Error>,
Self: Sized,
fn from_err<E>(self) -> FromErr<Self, E>where
E: From<Self::Error>,
Self: Sized,
From
for
this stream’s Error
, returning a new stream. Read moresource§fn take(self, amt: u64) -> Take<Self>where
Self: Sized,
fn take(self, amt: u64) -> Take<Self>where
Self: Sized,
amt
items of the underlying stream. Read moresource§fn skip(self, amt: u64) -> Skip<Self>where
Self: Sized,
fn skip(self, amt: u64) -> Skip<Self>where
Self: Sized,
amt
items of the underlying stream. Read moresource§fn fuse(self) -> Fuse<Self>where
Self: Sized,
fn fuse(self) -> Fuse<Self>where
Self: Sized,
poll
will never again be called once it has
finished. Read moresource§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
source§fn merge<S>(self, other: S) -> Merge<Self, S>where
S: Stream<Error = Self::Error>,
Self: Sized,
fn merge<S>(self, other: S) -> Merge<Self, S>where
S: Stream<Error = Self::Error>,
Self: Sized,
select
nowsource§fn zip<S>(self, other: S) -> Zip<Self, S>where
S: Stream<Error = Self::Error>,
Self: Sized,
fn zip<S>(self, other: S) -> Zip<Self, S>where
S: Stream<Error = Self::Error>,
Self: Sized,
source§fn chain<S>(self, other: S) -> Chain<Self, S>where
S: Stream<Item = Self::Item, Error = Self::Error>,
Self: Sized,
fn chain<S>(self, other: S) -> Chain<Self, S>where
S: Stream<Item = Self::Item, Error = Self::Error>,
Self: Sized,
source§fn peekable(self) -> Peekable<Self>where
Self: Sized,
fn peekable(self) -> Peekable<Self>where
Self: Sized,
peek
method. Read more