BorrowedBuf in core::io - Rust (original) (raw)

pub struct BorrowedBuf<'data> { /* private fields */ }

🔬This is a nightly-only experimental API. (core_io_borrowed_buf #117693)

Expand description

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.

Source§

Source

🔬This is a nightly-only experimental API. (core_io_borrowed_buf #117693)

Returns the total capacity of the buffer.

Source

🔬This is a nightly-only experimental API. (core_io_borrowed_buf #117693)

Returns the length of the filled part of the buffer.

Source

🔬This is a nightly-only experimental API. (core_io_borrowed_buf #117693)

Returns the length of the initialized part of the buffer.

Source

🔬This is a nightly-only experimental API. (core_io_borrowed_buf #117693)

Returns a shared reference to the filled portion of the buffer.

Source

🔬This is a nightly-only experimental API. (core_io_borrowed_buf #117693)

Returns a mutable reference to the filled portion of the buffer.

Source

🔬This is a nightly-only experimental API. (core_io_borrowed_buf #117693)

Returns a shared reference to the filled portion of the buffer with its original lifetime.

Source

🔬This is a nightly-only experimental API. (core_io_borrowed_buf #117693)

Returns a mutable reference to the filled portion of the buffer with its original lifetime.

Source

🔬This is a nightly-only experimental API. (core_io_borrowed_buf #117693)

Returns a cursor over the unfilled part of the buffer.

Source

🔬This is a nightly-only experimental API. (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.

Source

🔬This is a nightly-only experimental API. (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.

§Safety

The caller must ensure that the first n unfilled bytes of the buffer have already been initialized.

Source§

Source§

Creates a new BorrowedBuf from an uninitialized buffer.

Use set_init if part of the buffer is known to be already initialized.

Source§

Converts to this type from the input type.

Source§

Creates a new BorrowedBuf from a fully initialized slice.

Source§

Converts to this type from the input type.

§

§

§

§

§

§