跳到主要内容

Stream

结构体 Stream 

Source
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::Readio::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>
where C: 'a + DerefMut + Deref<Target = ConnectionCommon<S>>, T: 'a + Read + Write, S: SideData,

Source

pub fn new(conn: &'a mut C, sock: &'a mut T) -> Self

创建一个新的 Stream using the Connection conn 并 socket-like object sock。 此操作不会失败也不会执行 IO

Trait 实现§

Source§

impl<'a, C, T, S> BufRead for Stream<'a, C, T>
where C: 'a + DerefMut + Deref<Target = ConnectionCommon<S>>, T: 'a + Read + Write, S: 'a + SideData,

Source§

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)

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>

🔬This is a nightly-only experimental API. (buf_read_has_data_left)
Checks if there is any data left , read. 更多信息
1.0.0 · Source§

fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>

Reads all bytes into buf until the delimiter byte 或 EOF is reached. 更多信息
1.83.0 · Source§

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>

Reads all bytes until 一个 newline (the 0xA byte) is reached, 并 append them 到 the provided String 缓冲区. 更多信息
1.0.0 · Source§

fn split(self, byte: u8) -> Split<Self>
where Self: Sized,

Returns an iterator over 此 reader split on the byte byte. 更多信息
1.0.0 · Source§

fn lines(self) -> Lines<Self>
where Self: Sized,

Returns an iterator over the lines of this reader. 更多信息
Source§

impl<'a, C: Debug + 'a + ?Sized, T: Debug + 'a + Read + Write + ?Sized> Debug for Stream<'a, C, T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

使用给定的格式化器格式化此值。 更多信息
Source§

impl<'a, C, T, S> Read for Stream<'a, C, T>
where C: 'a + DerefMut + Deref<Target = ConnectionCommon<S>>, T: 'a + Read + Write, S: SideData,

Source§

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>

Like read, except that it reads into 一个 slice of buffers. 更多信息
Source§

fn is_read_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Reader has an efficient read_vectored implementation. 更多信息
1.0.0 · Source§

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>

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>

Reads the exact number of bytes required 到 fill buf. 更多信息
Source§

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>

🔬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 Self
where Self: Sized,

Creates 一个 “by reference” adapter 用于 this instance of Read. 更多信息
1.0.0 · Source§

fn bytes(self) -> Bytes<Self>
where Self: Sized,

Transforms this Read instance 到 an Iterator over its bytes. 更多信息
1.0.0 · Source§

fn chain<R>(self, next: R) -> Chain<Self, R>
where R: Read, Self: Sized,

Creates an adapter which will chain this stream with another. 更多信息
1.0.0 · Source§

fn take(self, limit: u64) -> Take<Self>
where Self: Sized,

Creates an adapter which will read at most limit bytes 从 it. 更多信息
Source§

fn read_array<const N: usize>(&mut self) -> Result<[u8; N], Error>
where Self: Sized,

🔬This is a nightly-only experimental API. (read_array)
Read 并 return 一个 fixed array of bytes 从 this source. 更多信息
Source§

impl<'a, C, T, S> Write for Stream<'a, C, T>
where C: 'a + DerefMut + Deref<Target = ConnectionCommon<S>>, T: 'a + Read + Write, S: SideData,

Source§

fn write(&mut self, buf: &[u8]) -> Result<usize>

Writes 缓冲区 into this writer, returning how many bytes were written. 更多信息
Source§

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize>

Like write, except that it writes 从 一个 slice of buffers. 更多信息
Source§

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

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored implementation. 更多信息
1.0.0 · Source§

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>

🔬This is a nightly-only experimental API. (write_all_vectored)
Attempts 到 write multiple buffers into this writer. 更多信息
1.0.0 · Source§

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

Writes 一个 formatted string into this writer, returning any error encountered. 更多信息
1.0.0 · Source§

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates 一个 “by reference” adapter 用于 this instance of Write. 更多信息

自动 Trait 实现§

§

impl<'a, C, T> Freeze for Stream<'a, C, T>
where C: ?Sized, T: ?Sized,

§

impl<'a, C, T> RefUnwindSafe for Stream<'a, C, T>

§

impl<'a, C, T> Send for Stream<'a, C, T>
where C: Send + ?Sized, T: Send + ?Sized,

§

impl<'a, C, T> Sync for Stream<'a, C, T>
where C: Sync + ?Sized, T: Sync + ?Sized,

§

impl<'a, C, T> Unpin for Stream<'a, C, T>
where C: ?Sized, T: ?Sized,

§

impl<'a, C, T> UnsafeUnpin for Stream<'a, C, T>
where C: ?Sized, T: ?Sized,

§

impl<'a, C, T> !UnwindSafe for Stream<'a, C, T>

Blanket 实现§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. 更多信息
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows 从 an owned value. 更多信息
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows 从 an owned value. 更多信息
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

原样返回传入的参数。

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::从(self)

That is, this conversion is whatever the implementation of From<T> 用于 U 的实现方式。

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

转换出错时返回的类型。
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

执行转换。
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

转换出错时返回的类型。
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

执行转换。