跳到主要内容

Reader

结构体 Reader 

Source
pub struct Reader<'a> { /* private fields */ }
展开描述

A structure that implements std::io::Read 用于 reading 明文.

实现§

Source§

impl<'a> Reader<'a>

Source

pub fn into_first_chunk(self) -> Result<&'a [u8]>

获取从对等方经这个 TLS 连接接收的明文数据块。

This method consumes self so that it can return 一个 slice whose lifetime is bounded by the ConnectionCommon 约束的切片,该 Reader

Trait 实现§

Source§

impl BufRead for Reader<'_>

Source§

fn fill_buf(&mut self) -> Result<&[u8]>

获取从对等方经这个 TLS 连接接收的明文数据块。 This reads the same data as Reader::read(), but returns 一个 reference instead of copying 数据.

此 caller should call Reader::消耗() afterward 到 advance 缓冲区.

,请参见Reader::into_first_chunk() 用于 一个 version of 此函数 that returns 一个 缓冲区 with 一个 longer lifetime.

Source§

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>

🔬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 Read for Reader<'_>

Source§

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

获取从对等方经这个 TLS 连接接收的明文数据。

如果对等方正常关闭 TLS 会话,此方法返回 Ok(0) once all the pending data has been read. No further data can be received on that connection, 所以底层 TCP 连接也应被半关闭。

If the peer 关闭 TLS 会话 uncleanly (一个 TCP EOF without sending 一个 close_notify alert) 此函数 returns 一个 std::io::Error of type ErrorKind::UnexpectedEof once any pending data has been read.

Note that support 用于 close_notify varies in peer TLS libraries: many do not support it 并 uncleanly close the TCP connection (this might be vulnerable 到 truncation attacks depending on the application protocol)。 This means applications using rustls must both handle EOF 从 此函数, unexpected EOF of 底层 TCP connection.

If there are no bytes 到 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>

Like read, except that it reads into a 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. 更多信息

自动 Trait 实现§

§

impl<'a> Freeze for Reader<'a>

§

impl<'a> RefUnwindSafe for Reader<'a>

§

impl<'a> Send for Reader<'a>

§

impl<'a> Sync for Reader<'a>

§

impl<'a> Unpin for Reader<'a>

§

impl<'a> UnsafeUnpin for Reader<'a>

§

impl<'a> !UnwindSafe for Reader<'a>

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>

执行转换。