PooledBuffer

Struct PooledBuffer 

Source
pub struct PooledBuffer { /* private fields */ }
Expand description

A buffer borrowed from a pool that automatically returns on drop.

Provides RAII semantics - the buffer is automatically returned to the pool when dropped, ensuring no buffer leaks even in error conditions.

§Safety

Maintains all safety guarantees of PinnedBuffer while adding automatic pool return semantics.

Implementations§

Source§

impl PooledBuffer

Source

pub fn buffer(&self) -> &PinnedBuffer<[u8]>

Get a reference to the underlying buffer.

§Panics

Panics if the buffer has already been returned (internal bug).

Source

pub fn buffer_mut(&mut self) -> &mut PinnedBuffer<[u8]>

Get a mutable reference to the underlying buffer.

§Panics

Panics if the buffer has already been returned (internal bug).

Source

pub fn as_mut_slice(&mut self) -> Pin<&mut [u8]>

Get a pinned mutable slice reference to the buffer data.

This maintains pinning guarantees required for io_uring operations.

Source

pub fn as_slice(&self) -> &[u8]

Get an immutable slice reference to the buffer data.

Source

pub fn len(&self) -> usize

Get the length of the buffer.

Source

pub fn is_empty(&self) -> bool

Check if the buffer is empty.

Source

pub fn detach(self) -> PinnedBuffer<[u8]>

Detach the buffer from the pool, taking ownership.

This removes the buffer from pool management, preventing automatic return on drop. Use when you need to transfer ownership elsewhere.

Trait Implementations§

Source§

impl Debug for PooledBuffer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for PooledBuffer

Source§

fn drop(&mut self)

Automatically return the buffer to the pool when dropped.

Ensures proper resource management even in error conditions.

Source§

impl Send for PooledBuffer

Source§

impl Sync for PooledBuffer

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.