pub struct AsyncStreamReader { /* private fields */ }Expand description
An async cursor over one live output stream, the awaiting counterpart of
StreamReader. AsyncStreamReader::next yields the next chunk without
parking a runtime thread, so many streams can be read on one event loop.
Implementations§
Source§impl AsyncStreamReader
impl AsyncStreamReader
Sourcepub async fn next(&mut self) -> Option<Vec<u8>>
pub async fn next(&mut self) -> Option<Vec<u8>>
The next retained chunk of raw bytes, or None once the stream is
closed and fully drained. A reader that falls more than the buffer cap
behind skips the dropped head rather than stalling.
Sourcepub fn into_stream(self) -> BoxStream<'static, Vec<u8>>
pub fn into_stream(self) -> BoxStream<'static, Vec<u8>>
Consume the reader into a futures::Stream of raw byte chunks, for
StreamExt combinators and select!:
use futures::StreamExt;
let mut stdout = process.reader_async(sail::exec::OutputStream::Stdout).into_stream();
while let Some(chunk) = stdout.next().await {
print!("{}", String::from_utf8_lossy(&chunk));
}Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for AsyncStreamReader
impl !UnwindSafe for AsyncStreamReader
impl Freeze for AsyncStreamReader
impl Send for AsyncStreamReader
impl Sync for AsyncStreamReader
impl Unpin for AsyncStreamReader
impl UnsafeUnpin for AsyncStreamReader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request