Trait mz_ore::future::OreStreamExt
source · pub trait OreStreamExt: Stream {
// Required method
fn recv_many<'life0, 'async_trait>(
&'life0 mut self,
max: usize,
) -> Pin<Box<dyn Future<Output = Option<Vec<Self::Item>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}
Available on crate feature
async
only.Expand description
Extension methods for streams.
Required Methods§
sourcefn recv_many<'life0, 'async_trait>(
&'life0 mut self,
max: usize,
) -> Pin<Box<dyn Future<Output = Option<Vec<Self::Item>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn recv_many<'life0, 'async_trait>(
&'life0 mut self,
max: usize,
) -> Pin<Box<dyn Future<Output = Option<Vec<Self::Item>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Awaits the stream for an event to be available and returns all currently buffered
events on the stream up to some max
.
This method returns None
if the stream has ended.
If there are no events ready on the stream this method will sleep until an event is
sent or the stream is closed. When woken it will return up to max
currently buffered
events.
§Cancel safety
This method is cancel safe. If recv_many
is used as the event in a select!
statement
and some other branch completes first, it is guaranteed that no messages were received on
this channel.