pub struct InferenceCache { /* private fields */ }Expand description
Memoization cache for inference results.
Keyed by (goal_term_hash, kb_version) → bindings.
Implementations§
Source§impl InferenceCache
impl InferenceCache
Sourcepub fn new(max_entries: usize) -> Self
pub fn new(max_entries: usize) -> Self
Create a new cache with the given capacity (default 1024).
Sourcepub fn get(&mut self, key: &InferenceCacheKey) -> Option<&CachedResult>
pub fn get(&mut self, key: &InferenceCacheKey) -> Option<&CachedResult>
Look up a cached result. Records hit/miss statistics.
Sourcepub fn insert(&mut self, key: InferenceCacheKey, result: CachedResult)
pub fn insert(&mut self, key: InferenceCacheKey, result: CachedResult)
Insert a result. Evicts the least recently used entry when at capacity.
Sourcepub fn invalidate_for_kb_version(&mut self, old_version: u64)
pub fn invalidate_for_kb_version(&mut self, old_version: u64)
Invalidate all entries that were computed for a specific KB version.
Sourcepub fn stats(&self) -> CacheStats
pub fn stats(&self) -> CacheStats
Return a snapshot of cache statistics.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for InferenceCache
impl RefUnwindSafe for InferenceCache
impl Send for InferenceCache
impl Sync for InferenceCache
impl Unpin for InferenceCache
impl UnsafeUnpin for InferenceCache
impl UnwindSafe for InferenceCache
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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