pub struct SlotRowArena { /* private fields */ }Expand description
Arena allocator for SlotRow storage
Allocates rows from contiguous memory blocks to:
- Reduce heap fragmentation
- Improve cache locality
- Enable efficient bulk deallocation
Implementations§
Source§impl SlotRowArena
impl SlotRowArena
Sourcepub const DEFAULT_BLOCK_SIZE: usize
pub const DEFAULT_BLOCK_SIZE: usize
Default block size (64KB - L2 cache friendly)
pub fn new() -> Self
pub fn with_block_size(block_size: usize) -> Self
Sourcepub fn store(&mut self, row: &SlotRow) -> SlotRowHandle
pub fn store(&mut self, row: &SlotRow) -> SlotRowHandle
Store a SlotRow and return handle
Sourcepub fn get(&self, handle: &SlotRowHandle) -> Option<SlotRow>
pub fn get(&self, handle: &SlotRowHandle) -> Option<SlotRow>
Get row from handle
Sourcepub fn total_allocated(&self) -> usize
pub fn total_allocated(&self) -> usize
Get total allocated bytes
Sourcepub fn block_count(&self) -> usize
pub fn block_count(&self) -> usize
Get number of blocks
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SlotRowArena
impl RefUnwindSafe for SlotRowArena
impl Send for SlotRowArena
impl Sync for SlotRowArena
impl Unpin for SlotRowArena
impl UnsafeUnpin for SlotRowArena
impl UnwindSafe for SlotRowArena
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more