pub struct L0Cache { /* private fields */ }Expand description
L0 cache implementation using DashMap for lock-free reads.
Uses two separate maps (one per add_special_tokens value) so that
lookups can borrow the key as &str without allocating a String.
Eviction uses approximate LRU: when capacity is reached, sample a few
entries and evict the one with the oldest last_accessed timestamp.
Implementations§
Source§impl L0Cache
impl L0Cache
Sourcepub fn get(&self, key: &str, add_special_tokens: bool) -> Option<Arc<Encoding>>
pub fn get(&self, key: &str, add_special_tokens: bool) -> Option<Arc<Encoding>>
Get an encoding from the cache (returns Arc for zero-copy access). Zero-allocation on the lookup path.
Sourcepub fn insert(&self, key: String, add_special_tokens: bool, value: Encoding)
pub fn insert(&self, key: String, add_special_tokens: bool, value: Encoding)
Insert an encoding into the cache
Sourcepub fn insert_arc(
&self,
key: String,
add_special_tokens: bool,
value: Arc<Encoding>,
)
pub fn insert_arc( &self, key: String, add_special_tokens: bool, value: Arc<Encoding>, )
Insert a pre-wrapped Arc encoding into the cache (avoids double-wrapping)
Sourcepub fn stats(&self) -> CacheStats
pub fn stats(&self) -> CacheStats
Get cache statistics
Sourcepub fn memory_usage(&self) -> usize
pub fn memory_usage(&self) -> usize
Estimate memory usage in bytes
Auto Trait Implementations§
impl !Freeze for L0Cache
impl !RefUnwindSafe for L0Cache
impl Send for L0Cache
impl Sync for L0Cache
impl Unpin for L0Cache
impl UnsafeUnpin for L0Cache
impl !UnwindSafe for L0Cache
Blanket Implementations§
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
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