Struct std::io::ReadBuf[][src]

pub struct ReadBuf<'a> { /* fields omitted */ }
🔬 This is a nightly-only experimental API. (read_buf #78485)
Expand description

字节缓冲区的包装器,它被增量填充和初始化。

这种类型是一种 “double cursor”。 它跟踪缓冲区中的三个区域:缓冲区开头的区域已被逻辑填充数据,已在某个时刻初始化但尚未逻辑填充的区域,以及完全未初始化的末尾区域。 填充区域保证是初始化区域的子集。

总之,缓冲区的内容可以可视化为:

[             capacity              ]
[ filled |         unfilled         ]
[    initialized    | uninitialized ]

Implementations

🔬 This is a nightly-only experimental API. (read_buf #78485)

从完全初始化的缓冲区创建一个新的 ReadBuf

🔬 This is a nightly-only experimental API. (read_buf #78485)

从完全未初始化的缓冲区创建一个新的 ReadBuf

如果已知缓冲区的一部分已经初始化,请使用 assume_init

🔬 This is a nightly-only experimental API. (read_buf #78485)

返回缓冲区的总容量。

🔬 This is a nightly-only experimental API. (read_buf #78485)

返回对缓冲区填充部分的共享引用。

🔬 This is a nightly-only experimental API. (read_buf #78485)

返回对缓冲区已填充部分的可变引用。

🔬 This is a nightly-only experimental API. (read_buf #78485)

返回对缓冲区初始化部分的共享引用。

这包括填充的部分。

🔬 This is a nightly-only experimental API. (read_buf #78485)

返回对缓冲区初始化部分的可变引用。

这包括填充的部分。

🔬 This is a nightly-only experimental API. (read_buf #78485)

返回对缓冲区未填充部分的可变引用,而不确保缓冲区已完全初始化。

Safety

调用者不得取消已初始化的缓冲区部分的初始化。

🔬 This is a nightly-only experimental API. (read_buf #78485)

返回对缓冲区未初始化部分的可变引用。

取消初始化这些字节中的任何一个都是安全的。

🔬 This is a nightly-only experimental API. (read_buf #78485)

返回对缓冲区未填充部分的可变引用,确保它已完全初始化。

由于 ReadBuf 跟踪已初始化的缓冲区区域,因此在第一次使用后实际上是 “free”。

🔬 This is a nightly-only experimental API. (read_buf #78485)

返回对缓冲区未填充部分的第一个 n 字节的可变引用,确保它已完全初始化。

Panics

如果 self.remaining() 小于 n,就会出现 panics。

🔬 This is a nightly-only experimental API. (read_buf #78485)

返回切片末尾尚未填充的字节数。

🔬 This is a nightly-only experimental API. (read_buf #78485)

清除缓冲区,将填充区域重置为空。

初始化的字节数不变,缓冲区的内容也不变。

🔬 This is a nightly-only experimental API. (read_buf #78485)

增加缓冲区填充区域的大小。

初始化字节数不变。

Panics

如果缓冲区的填充区域大于初始化区域,就会出现 panics。

🔬 This is a nightly-only experimental API. (read_buf #78485)

设置缓冲区填充区域的大小。

初始化字节数不变。

请注意,除了增加缓冲区的填充区域 (例如,通过就地压缩数据的 Read 实现) 之外,这还可用于缩小缓冲区的填充区域。

Panics

如果缓冲区的填充区域大于初始化区域,就会出现 panics。

🔬 This is a nightly-only experimental API. (read_buf #78485)

断言缓冲区的前 n 个未填充字节已初始化。

ReadBuf 假定字节永远不会被反初始化,因此当使用少于已知已初始化字节的字节调用此方法时,不会执行任何操作。

Safety

调用者必须确保缓冲区的前 n 个未填充字节已经初始化。

🔬 This is a nightly-only experimental API. (read_buf #78485)

将数据追加到缓冲区,推进写入位置,也可能推进初始化位置。

Panics

如果 self.remaining() 小于 buf.len(),就会出现 panics。

🔬 This is a nightly-only experimental API. (read_buf #78485)

返回已填充的字节数。

🔬 This is a nightly-only experimental API. (read_buf #78485)

返回已初始化的字节数。

Trait Implementations

使用给定的格式化程序格式化该值。 Read more

Auto Trait Implementations

Blanket Implementations

获取 selfTypeIdRead more

从拥有的值中一成不变地借用。 Read more

从拥有的值中借用。 Read more

执行转换。

执行转换。

发生转换错误时返回的类型。

执行转换。

发生转换错误时返回的类型。

执行转换。