Skip to main content

WhnfCache

Struct WhnfCache 

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

A simple LRU-style cache for WHNF results.

Stores the most recently computed WHNF reductions to avoid redundant work when the same expression appears multiple times.

Implementations§

Source§

impl WhnfCache

Source

pub fn new(capacity: usize) -> Self

Create a new cache with the given capacity.

Source

pub fn get(&mut self, key: &WhnfCacheKey) -> Option<&Expr>

Look up a pre-computed WHNF result.

Source

pub fn insert(&mut self, key: WhnfCacheKey, value: Expr)

Store a WHNF result.

Source

pub fn len(&self) -> usize

Number of entries in the cache.

Source

pub fn is_empty(&self) -> bool

Whether the cache is empty.

Source

pub fn clear(&mut self)

Clear all cache entries.

Source

pub fn hits(&self) -> u64

Cache hit count.

Source

pub fn misses(&self) -> u64

Cache miss count.

Source

pub fn hit_rate(&self) -> f64

Hit rate (0.0 to 1.0).

Trait Implementations§

Source§

impl Debug for WhnfCache

Source§

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

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

impl Default for WhnfCache

Source§

fn default() -> WhnfCache

Returns the “default value” for a type. 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> 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.