Skip to main content

SizeClassCache

Struct SizeClassCache 

Source
pub struct SizeClassCache {
    pub bump: usize,
    pub capacity: usize,
    pub generation: u32,
    pub hits: usize,
    pub misses: usize,
}
Expand description

Per-size-class cache for frequently-used allocation sizes.

Fields§

§bump: usize

Bump pointer into the cache buffer.

§capacity: usize

Total capacity of this cache.

§generation: u32

Current generation counter (incremented on eviction).

§hits: usize

Number of hits for cache statistics.

§misses: usize

Number of misses for cache statistics.

Implementations§

Source§

impl SizeClassCache

Source

pub const fn new(capacity: usize) -> SizeClassCache

Creates a new cache with the given capacity.

Source

pub fn has_space(&self) -> bool

Returns true if the cache has space available.

Source

pub fn allocate(&mut self) -> Option<usize>

Attempts to allocate a block from the cache. Returns the index if successful, None if cache is full.

Source

pub fn reset(&mut self)

Resets the cache by clearing the bump pointer and incrementing generation. This is called when the cache fills up and needs to evict all entries.

Source

pub fn hit_ratio(&self) -> u8

Returns the cache hit ratio as a percentage (0-100).

Trait Implementations§

Source§

impl Clone for SizeClassCache

Source§

fn clone(&self) -> SizeClassCache

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for SizeClassCache

Source§

impl Debug for SizeClassCache

Source§

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

Formats the value using the given formatter. Read more

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.