pub struct BorrowedBuf<'data> { /* private fields */ }
core_io_borrowed_buf #117693)
A borrowed byte buffer which is incrementally filled and initialized.
This type is a sort of βdouble cursorβ. It tracks three regions in the buffer: a region at the beginning of the buffer that has been logically filled with data, a region that has been initialized at some point but not yet logically filled, and a region at the end that is fully uninitialized. The filled region is guaranteed to be a subset of the initialized region.
In summary, the contents of the buffer can be visualized as:
[ capacity ] [ filled | unfilled ] [ initialized | uninitialized ]
A BorrowedBuf is created around some existing data (or capacity for data) via a unique reference (&mut). The BorrowedBuf can be configured (e.g., using clear or set_init), but cannot be directly written. To write into the buffer, use unfilled to create a BorrowedCursor. The cursor has write-only access to the unfilled portion of the buffer (you can think of it as a write-only iterator).
The lifetime 'data is a bound on the lifetime of the underlying data.
impl<'data> BorrowedBuf<'data>
pub fn capacity(&self) -> usize
core_io_borrowed_buf #117693)
Returns the total capacity of the buffer.
pub fn len(&self) -> usize
core_io_borrowed_buf #117693)
Returns the length of the filled part of the buffer.
pub fn init_len(&self) -> usize
core_io_borrowed_buf #117693)
Returns the length of the initialized part of the buffer.
pub fn filled(&self) -> &[u8] β
core_io_borrowed_buf #117693)
Returns a shared reference to the filled portion of the buffer.
pub fn filled_mut(&mut self) -> &mut [u8] β
core_io_borrowed_buf #117693)
Returns a mutable reference to the filled portion of the buffer.
pub fn into_filled(self) -> &'data [u8] β
core_io_borrowed_buf #117693)
Returns a shared reference to the filled portion of the buffer with its original lifetime.
pub fn into_filled_mut(self) -> &'data mut [u8] β
core_io_borrowed_buf #117693)
Returns a mutable reference to the filled portion of the buffer with its original lifetime.
pub fn unfilled<'this>(&'this mut self) -> BorrowedCursor<'this> β
core_io_borrowed_buf #117693)
Returns a cursor over the unfilled part of the buffer.
pub fn clear(&mut self) -> &mut BorrowedBuf<'data>
core_io_borrowed_buf #117693)
Clears the buffer, resetting the filled region to empty.
The number of initialized bytes is not changed, and the contents of the buffer are not modified.
pub unsafe fn set_init(&mut self, n: usize) -> &mut BorrowedBuf<'data>
core_io_borrowed_buf #117693)
Asserts that the first n bytes of the buffer are initialized.
BorrowedBuf assumes that bytes are never de-initialized, so this method does nothing when called with fewer bytes than are already known to be initialized.
The caller must ensure that the first n unfilled bytes of the buffer have already been initialized.
impl Debug for BorrowedBuf<'_>
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
impl<'data> From<&'data mut [MaybeUninit<u8>]> for BorrowedBuf<'data>Creates a new BorrowedBuf from an uninitialized buffer.
Use set_init if part of the buffer is known to be already initialized.
fn from(buf: &'data mut [MaybeUninit<u8>]) -> BorrowedBuf<'data>
impl<'data> From<&'data mut [u8]> for BorrowedBuf<'data>Creates a new BorrowedBuf from a fully initialized slice.
fn from(slice: &'data mut [u8]) -> BorrowedBuf<'data>
impl<'data> From<BorrowedCursor<'data>> for BorrowedBuf<'data>Creates a new BorrowedBuf from a cursor.
Use BorrowedCursor::with_unfilled_buf instead for a safer alternative.
fn from(buf: BorrowedCursor<'data>) -> BorrowedBuf<'data>
impl<'data> Freeze for BorrowedBuf<'data>
impl<'data> RefUnwindSafe for BorrowedBuf<'data>
impl<'data> Send for BorrowedBuf<'data>
impl<'data> Sync for BorrowedBuf<'data>
impl<'data> Unpin for BorrowedBuf<'data>
impl<'data> !UnwindSafe for BorrowedBuf<'data>
impl<T> Any for Twhere
T: 'static + ?Sized,impl<T> Borrow<T> for Twhere
T: ?Sized,impl<T> BorrowMut<T> for Twhere
T: ?Sized,impl<T> From<T> for T
fn from(t: T) -> T
Returns the argument unchanged.
impl<T, U> Into<U> for Twhere
U: From<T>,fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of From<T> for U chooses to do.
impl<T, U> TryFrom<U> for Twhere
U: Into<T>,type Error = Infallible
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto<U> for Twhere
U: TryFrom<T>,
Β© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/io/struct.BorrowedBuf.html