pub struct QueryCache { /* private fields */ }Expand description
LRU query cache with TTL expiration.
Thread-safe cache for query results.
§Example
ⓘ
use rag_plusplus_core::cache::{QueryCache, CacheConfig, CacheKey};
let cache = QueryCache::new(CacheConfig::default());
let key = CacheKey::new(&embedding, 10, None, None);
// Try cache first
if let Some(response) = cache.get(&key) {
return response;
}
// Execute query
let response = engine.query(request)?;
// Cache result
cache.put(key, response.clone());Implementations§
Source§impl QueryCache
impl QueryCache
Sourcepub fn new(config: CacheConfig) -> Self
pub fn new(config: CacheConfig) -> Self
Create a new cache.
Sourcepub fn default_cache() -> Self
pub fn default_cache() -> Self
Create with default config.
Sourcepub fn get(&self, key: &CacheKey) -> Option<QueryResponse>
pub fn get(&self, key: &CacheKey) -> Option<QueryResponse>
Get a cached response.
Returns Some(response) if found and not expired, None otherwise.
Sourcepub fn put(&self, key: CacheKey, response: QueryResponse)
pub fn put(&self, key: CacheKey, response: QueryResponse)
Put a response in the cache.
Sourcepub fn remove(&self, key: &CacheKey) -> Option<CacheEntry>
pub fn remove(&self, key: &CacheKey) -> Option<CacheEntry>
Remove an entry.
Sourcepub fn cleanup_expired(&self)
pub fn cleanup_expired(&self)
Remove expired entries.
Sourcepub fn stats(&self) -> CacheStats
pub fn stats(&self) -> CacheStats
Get cache statistics.
Trait Implementations§
Source§impl Debug for QueryCache
impl Debug for QueryCache
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> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.