pub struct Reader<'a> { /* private fields */ }Expand description
A structure that implements std::io::Read for reading plaintext.
Implementations§
Source§impl<'a> Reader<'a>
impl<'a> Reader<'a>
Sourcepub fn into_first_chunk(self) -> Result<&'a [u8]>
pub fn into_first_chunk(self) -> Result<&'a [u8]>
Obtain a chunk of plaintext data received from the peer over this TLS connection.
This method consumes self so that it can return a slice whose lifetime is bounded by
the ConnectionCommon that created this Reader.
Trait Implementations§
Source§impl BufRead for Reader<'_>
impl BufRead for Reader<'_>
Source§fn fill_buf(&mut self) -> Result<&[u8]>
fn fill_buf(&mut self) -> Result<&[u8]>
Obtain a chunk of plaintext data received from the peer over this TLS connection.
This reads the same data as Reader::read(), but returns a reference instead of
copying the data.
The caller should call Reader::consume() afterward to advance the buffer.
See Reader::into_first_chunk() for a version of this function that returns a
buffer with a longer lifetime.
Source§fn consume(&mut self, amt: usize)
fn consume(&mut self, amt: usize)
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. Read moreSource§fn has_data_left(&mut self) -> Result<bool, Error>
fn has_data_left(&mut self) -> Result<bool, Error>
buf_read_has_data_left)read. Read more1.83.0 · Source§fn skip_until(&mut self, byte: u8) -> Result<usize, Error>
fn skip_until(&mut self, byte: u8) -> Result<usize, Error>
byte or EOF is reached. Read more1.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>
0xA byte) is reached, and append
them to the provided String buffer. Read moreSource§impl Read for Reader<'_>
impl Read for Reader<'_>
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Obtain plaintext data received from the peer over this TLS connection.
If the peer closes the TLS session cleanly, this returns Ok(0) once all
the pending data has been read. No further data can be received on that
connection, so the underlying TCP connection should be half-closed too.
If the peer closes the TLS session uncleanly (a TCP EOF without sending a
close_notify alert) this function returns a std::io::Error of type
ErrorKind::UnexpectedEof once any pending data has been read.
Note that support for close_notify varies in peer TLS libraries: many do not
support it and uncleanly close the TCP connection (this might be
vulnerable to truncation attacks depending on the application protocol).
This means applications using rustls must both handle EOF
from this function, and unexpected EOF of the underlying TCP connection.
If there are no bytes to read, this returns Err(ErrorKind::WouldBlock.into()).
You may learn the number of bytes available at any time by inspecting
the return of Connection::process_new_packets.
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>
read, except that it reads into a slice of buffers. Read moreSource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
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>
buf. Read more1.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>
buf. Read more1.6.0 · Source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
buf. Read moreSource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
read_buf)Source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
read_buf)cursor. Read more1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Read. Read more