Skip to main content

AlignedBuffer

Struct AlignedBuffer 

Source
pub struct AlignedBuffer { /* private fields */ }

Implementations§

Source§

impl AlignedBuffer

Source

pub fn new(capacity: usize) -> Result<Self>

Create a new aligned buffer with the given capacity.

§Errors

Returns an error if memory allocation fails.

Source

pub fn as_ptr(&self) -> *const u8

Source

pub fn as_mut_ptr(&mut self) -> *mut u8

Source

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

Source

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

Source

pub fn len(&self) -> usize

Source

pub fn is_empty(&self) -> bool

Source

pub fn capacity(&self) -> usize

Source

pub fn set_len(&mut self, len: usize)

Source

pub fn write(&mut self, offset: usize, data: &[u8]) -> Result<()>

Write data at the specified offset.

§Errors

Returns an error if write exceeds buffer capacity.

Source

pub fn clear(&mut self)

Source

pub fn mlock(&self) -> Result<()>

Lock the buffer in memory using mlock to prevent page faults. This ensures the buffer pages are resident in RAM and won’t be swapped.

§Errors

Returns an error if mlock fails (e.g., insufficient privileges or limits).

Source

pub fn prefault(&mut self)

Prefault all pages in the buffer by touching each page. This ensures pages are allocated and mapped before use on the hot path.

Source

pub fn lock_and_prefault(&mut self) -> Result<()>

Lock and prefault the buffer for zero-latency access on hot path.

§Errors

Returns an error if mlock fails.

Trait Implementations§

Source§

impl Drop for AlignedBuffer

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl Send for AlignedBuffer

Source§

impl Sync for AlignedBuffer

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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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.