pub struct QueryCache { /* private fields */ }Expand description
Thread-safe query result cache with LRU eviction.
Implementations§
Source§impl QueryCache
impl QueryCache
Sourcepub fn new(config: CacheConfig) -> Self
pub fn new(config: CacheConfig) -> Self
Create a new query cache with the given configuration.
Sourcepub fn get(
&self,
query: &[f32],
metric: DistanceMetric,
k: usize,
) -> Option<Vec<SearchResult>>
pub fn get( &self, query: &[f32], metric: DistanceMetric, k: usize, ) -> Option<Vec<SearchResult>>
Get cached results for a query.
Returns None if the query is not cached or has expired.
Sourcepub fn put(
&mut self,
query: &[f32],
metric: DistanceMetric,
k: usize,
results: Vec<SearchResult>,
)
pub fn put( &mut self, query: &[f32], metric: DistanceMetric, k: usize, results: Vec<SearchResult>, )
Store query results in the cache.
Sourcepub fn evict_expired(&mut self) -> usize
pub fn evict_expired(&mut self) -> usize
Remove expired entries from the cache.
Sourcepub fn stats(&self) -> CacheStats
pub fn stats(&self) -> CacheStats
Get cache statistics.
Auto Trait Implementations§
impl Freeze for QueryCache
impl RefUnwindSafe for QueryCache
impl Send for QueryCache
impl Sync for QueryCache
impl Unpin for QueryCache
impl UnwindSafe for QueryCache
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