pub struct Stream<'a, C: 'a + ?Sized, T: 'a + Read + Write + ?Sized> {
pub conn: &'a mut C,
pub sock: &'a mut T,
}展开描述
This type implements io::Read 并 io::Write, encapsulating
一个 Connection C 并 an underlying transport T, such as 一个 socket.
Relies on ConnectionCommon::complete_io() 到 perform the necessary I/O.
This allows you 到 use 一个 rustls Connection like 一个 normal stream.
字段§
§conn: &'a mut C我们的 TLS 连接
sock: &'a mut T此 underlying transport, like 一个 socket
实现§
Source§impl<'a, C, T, S> Stream<'a, C, T>
impl<'a, C, T, S> Stream<'a, C, T>
Trait 实现§
Source§impl<'a, C, T, S> BufRead for Stream<'a, C, T>
impl<'a, C, T, S> BufRead for Stream<'a, C, T>
Source§fn fill_buf(&mut self) -> Result<&[u8]>
fn fill_buf(&mut self) -> Result<&[u8]>
Returns the contents of the internal 缓冲区, 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 从 the internal 缓冲区 as having been read.
Subsequent calls 到 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 ,
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 或 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 一个 newline (the
0xA byte) is reached, 并 append
them 到 the provided String 缓冲区. 更多信息Source§impl<'a, C: Debug + 'a + ?Sized, T: Debug + 'a + Read + Write + ?Sized> Debug for Stream<'a, C, T>
impl<'a, C: Debug + 'a + ?Sized, T: Debug + 'a + Read + Write + ?Sized> Debug for Stream<'a, C, T>
Source§impl<'a, C, T, S> Read for Stream<'a, C, T>
impl<'a, C, T, S> Read for Stream<'a, C, T>
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes 从 this source into the specified 缓冲区, 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 一个 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 到
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 到 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 从 this source into the specified 缓冲区. 更多信息
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 到 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 一个 “by reference” adapter 用于 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. 更多信息
Source§impl<'a, C, T, S> Write for Stream<'a, C, T>
impl<'a, C, T, S> Write for Stream<'a, C, T>
Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Writes 缓冲区 into this writer, returning how many bytes were written. 更多信息
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flushes this output stream, ensuring that all intermediately buffered
contents reach their destination. 更多信息
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts 到 write an entire 缓冲区 into this writer. 更多信息
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored)Attempts 到 write multiple buffers into this writer. 更多信息
自动 Trait 实现§
impl<'a, C, T> Freeze for Stream<'a, C, T>
impl<'a, C, T> RefUnwindSafe for Stream<'a, C, T>
impl<'a, C, T> Send for Stream<'a, C, T>
impl<'a, C, T> Sync for Stream<'a, C, T>
impl<'a, C, T> Unpin for Stream<'a, C, T>
impl<'a, C, T> UnsafeUnpin for Stream<'a, C, T>
impl<'a, C, T> !UnwindSafe for Stream<'a, C, T>
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 从 an owned value. 更多信息