pub struct EmbeddingCache { /* private fields */ }Expand description
LRU embedding cache with a fixed entry-count capacity.
Implementations§
Source§impl EmbeddingCache
impl EmbeddingCache
Sourcepub fn new(capacity: usize) -> Self
pub fn new(capacity: usize) -> Self
Create a cache that holds at most capacity embeddings.
Capacity is clamped to at least 1.
Sourcepub fn get(&mut self, key: &CacheKey) -> Option<&[f32]>
pub fn get(&mut self, key: &CacheKey) -> Option<&[f32]>
Look up an embedding. Promotes the entry to MRU on hit.
Sourcepub fn insert(&mut self, key: CacheKey, embedding: Vec<f32>)
pub fn insert(&mut self, key: CacheKey, embedding: Vec<f32>)
Insert an embedding. Evicts the LRU entry when at capacity.
Sourcepub fn evict_lru(&mut self) -> Option<(CacheKey, CacheEntry)>
pub fn evict_lru(&mut self) -> Option<(CacheKey, CacheEntry)>
Manually evict the LRU entry.
Sourcepub fn invalidate(&mut self, key: &CacheKey) -> bool
pub fn invalidate(&mut self, key: &CacheKey) -> bool
Remove a specific entry. Returns true if it was present.
Sourcepub fn invalidate_model(&mut self, model_id: &str) -> usize
pub fn invalidate_model(&mut self, model_id: &str) -> usize
Remove all entries for a given model.
Sourcepub fn stats(&self) -> CacheStats
pub fn stats(&self) -> CacheStats
Current statistics snapshot.
Auto Trait Implementations§
impl Freeze for EmbeddingCache
impl RefUnwindSafe for EmbeddingCache
impl Send for EmbeddingCache
impl Sync for EmbeddingCache
impl Unpin for EmbeddingCache
impl UnsafeUnpin for EmbeddingCache
impl UnwindSafe for EmbeddingCache
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.