Struct tokio_util::io::ReaderStream
source · pub struct ReaderStream<R> {
reader: Option<R>,
buf: BytesMut,
capacity: usize,
}
Expand description
Convert an AsyncRead
into a Stream
of byte chunks.
This stream is fused. It performs the inverse operation of
StreamReader
.
§Example
use tokio_stream::StreamExt;
use tokio_util::io::ReaderStream;
// Create a stream of data.
let data = b"hello, world!";
let mut stream = ReaderStream::new(&data[..]);
// Read all of the chunks into a vector.
let mut stream_contents = Vec::new();
while let Some(chunk) = stream.next().await {
stream_contents.extend_from_slice(&chunk?);
}
// Once the chunks are concatenated, we should have the
// original data.
assert_eq!(stream_contents, data);
Fields§
§reader: Option<R>
§buf: BytesMut
§capacity: usize
Implementations§
source§impl<R: AsyncRead> ReaderStream<R>
impl<R: AsyncRead> ReaderStream<R>
sourcepub fn with_capacity(reader: R, capacity: usize) -> Self
pub fn with_capacity(reader: R, capacity: usize) -> Self
Trait Implementations§
source§impl<R: Debug> Debug for ReaderStream<R>
impl<R: Debug> Debug for ReaderStream<R>
source§impl<R: AsyncRead> Stream for ReaderStream<R>
impl<R: AsyncRead> Stream for ReaderStream<R>
impl<'__pin, R> Unpin for ReaderStream<R>where
PinnedFieldsOf<__Origin<'__pin, R>>: Unpin,
Auto Trait Implementations§
impl<R> Freeze for ReaderStream<R>where
R: Freeze,
impl<R> RefUnwindSafe for ReaderStream<R>where
R: RefUnwindSafe,
impl<R> Send for ReaderStream<R>where
R: Send,
impl<R> Sync for ReaderStream<R>where
R: Sync,
impl<R> UnwindSafe for ReaderStream<R>where
R: UnwindSafe,
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