Struct std::io::BorrowedCursor
source · pub struct BorrowedCursor<'a> { /* private fields */ }
🔬This is a nightly-only experimental API. (
read_buf
#78485)Expand description
BorrowedBuf
未填充部分的可写视图。
提供对底层 BorrowedBuf
的已初始化和未初始化部分的访问。
可以使用 append
将数据直接写入游标,也可以通过获取部分或全部游标的切片并写入切片来间接写入数据。
在间接情况下,调用者必须在写入后调用 advance
来通知游标已经写入了多少字节。
一旦数据被写入游标,它就成为底层 BorrowedBuf
的填充部分的一部分,并且不能再被游标访问或重写。
即,游标跟踪底层 BorrowedBuf
的未填充部分。
生命周期 'a
是底层缓冲区的生命周期的界限 (这意味着它是该缓冲区中数据的传递界限)。
Implementations§
source§impl<'a> BorrowedCursor<'a>
impl<'a> BorrowedCursor<'a>
sourcepub fn reborrow<'this>(&'this mut self) -> BorrowedCursor<'this> ⓘ
🔬This is a nightly-only experimental API. (read_buf
#78485)
pub fn reborrow<'this>(&'this mut self) -> BorrowedCursor<'this> ⓘ
read_buf
#78485)通过使用较小的生命周期克隆它来重新借用此游标。
由于游标保持对其底层缓冲区的唯一访问,因此当新游标存在时,借用的游标不可访问。
sourcepub fn capacity(&self) -> usize
🔬This is a nightly-only experimental API. (read_buf
#78485)
pub fn capacity(&self) -> usize
read_buf
#78485)返回游标中的可用空间。
sourcepub fn written(&self) -> usize
🔬This is a nightly-only experimental API. (read_buf
#78485)
pub fn written(&self) -> usize
read_buf
#78485)返回自从 BorrowedBuf
创建以来写入此游标的字节数。
请注意,如果此游标是另一个游标的重新借用克隆,则返回的计数是通过任一游标写入的计数,而不是自游标重新借用以来的计数。
sourcepub fn init_ref(&self) -> &[u8] ⓘ
🔬This is a nightly-only experimental API. (read_buf
#78485)
pub fn init_ref(&self) -> &[u8] ⓘ
read_buf
#78485)将共享引用返回到游标的初始化部分。
sourcepub fn init_mut(&mut self) -> &mut [u8] ⓘ
🔬This is a nightly-only experimental API. (read_buf
#78485)
pub fn init_mut(&mut self) -> &mut [u8] ⓘ
read_buf
#78485)返回游标的初始化部分的,可变引用。
sourcepub fn uninit_mut(&mut self) -> &mut [MaybeUninit<u8>]
🔬This is a nightly-only experimental API. (read_buf
#78485)
pub fn uninit_mut(&mut self) -> &mut [MaybeUninit<u8>]
read_buf
#78485)将一个,可变引用,返回到游标的未初始化部分。
取消初始化这些字节中的任何一个都是安全的。
sourcepub unsafe fn as_mut(&mut self) -> &mut [MaybeUninit<u8>]
🔬This is a nightly-only experimental API. (read_buf
#78485)
pub unsafe fn as_mut(&mut self) -> &mut [MaybeUninit<u8>]
read_buf
#78485)sourcepub unsafe fn advance(&mut self, n: usize) -> &mut Self
🔬This is a nightly-only experimental API. (read_buf
#78485)
pub unsafe fn advance(&mut self, n: usize) -> &mut Self
read_buf
#78485)通过断言 n
字节已被填充来前进游标。
推进后,n
字节不再可以通过游标访问,只能通过底层缓冲区访问。
即,缓冲区的填充部分增加了 n
个元素,而其未填充部分 (以及该游标的容量) 缩小了 n
个元素。
Safety
调用者必须确保游标的前 n
字节已正确初始化。
sourcepub fn ensure_init(&mut self) -> &mut Self
🔬This is a nightly-only experimental API. (read_buf
#78485)
pub fn ensure_init(&mut self) -> &mut Self
read_buf
#78485)初始化游标中的所有字节。
Trait Implementations§
source§impl<'a> Debug for BorrowedCursor<'a>
impl<'a> Debug for BorrowedCursor<'a>
source§impl<'a> Write for BorrowedCursor<'a>
impl<'a> Write for BorrowedCursor<'a>
source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
#69941)source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
🔬This is a nightly-only experimental API. (
write_all_vectored
#70436)尝试将多个缓冲区写入此 writer。 Read more