pub struct Reader<B> { /* private fields */ }展开描述
一个为内部值实现 io::Read 的 Buf 适配器。
此结构体通常通过对 Buf 调用 reader() 创建。详情请参阅 reader() 的文档。
实现§
Source§impl<B: Buf> Reader<B>
impl<B: Buf> Reader<B>
Sourcepub fn get_ref(&self) -> &B
pub fn get_ref(&self) -> &B
获取对底层 Buf 的引用。
不建议直接从底层 Buf 读取。
§示例
use bytes::Buf;
let buf = b"hello world".reader();
assert_eq!(b"hello world", buf.get_ref());Sourcepub fn into_inner(self) -> B
pub fn into_inner(self) -> B
消耗此 Reader,返回底层的值。
§示例
use bytes::Buf;
use std::io;
let mut buf = b"hello world".reader();
let mut dst = vec![];
io::copy(&mut buf, &mut dst).unwrap();
let buf = buf.into_inner();
assert_eq!(0, buf.remaining());Trait 实现§
Source§impl<B: Buf + Sized> BufRead for Reader<B>
impl<B: Buf + Sized> BufRead for Reader<B>
Source§fn fill_buf(&mut self) -> Result<&[u8]>
fn fill_buf(&mut self) -> Result<&[u8]>
Returns the contents of the internal buffer, filling it with more data, via
Read methods, if empty. 更多信息Source§fn consume(&mut self, amt: usize)
fn consume(&mut self, amt: usize)
Marks the given
amount of additional bytes from the internal buffer as having been read.
Subsequent calls to read only return bytes that have not been marked as read. 更多信息Source§fn has_data_left(&mut self) -> Result<bool, Error>
fn has_data_left(&mut self) -> Result<bool, Error>
🔬This is a nightly-only experimental API. (
buf_read_has_data_left)Checks if there is any data left to be
read. 更多信息1.83.0 · Source§fn skip_until(&mut self, byte: u8) -> Result<usize, Error>
fn skip_until(&mut self, byte: u8) -> Result<usize, Error>
Skips all bytes until the delimiter
byte or EOF is reached. 更多信息1.0.0 · Source§fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
Reads all bytes until a newline (the
0xA byte) is reached, and append
them to the provided String buffer. 更多信息Source§impl<B: Buf + Sized> Read for Reader<B>
impl<B: Buf + Sized> Read for Reader<B>
Source§fn read(&mut self, dst: &mut [u8]) -> Result<usize>
fn read(&mut self, dst: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning
how many bytes were read. 更多信息
1.36.0 · Source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
Like
read, except that it reads into a slice of buffers. 更多信息Source§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector)1.0.0 · Source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
Reads all bytes until EOF in this source, placing them into
buf. 更多信息1.0.0 · Source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
Reads all bytes until EOF in this source, appending them to
buf. 更多信息1.6.0 · Source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Reads the exact number of bytes required to fill
buf. 更多信息Source§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf)Pull some bytes from this source into the specified buffer. 更多信息
Source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf)Reads the exact number of bytes required to fill
cursor. 更多信息1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adapter for this instance of
Read. 更多信息1.0.0 · Source§fn chain<R>(self, next: R) -> Chain<Self, R>
fn chain<R>(self, next: R) -> Chain<Self, R>
Creates an adapter which will chain this stream with another. 更多信息
自动 Trait 实现§
impl<B> Freeze for Reader<B>where
B: Freeze,
impl<B> RefUnwindSafe for Reader<B>where
B: RefUnwindSafe,
impl<B> Send for Reader<B>where
B: Send,
impl<B> Sync for Reader<B>where
B: Sync,
impl<B> Unpin for Reader<B>where
B: Unpin,
impl<B> UnsafeUnpin for Reader<B>where
B: UnsafeUnpin,
impl<B> UnwindSafe for Reader<B>where
B: UnwindSafe,
Blanket 实现§
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. 更多信息