pub struct SourceCache { /* private fields */ }Expand description
Thread-safe cache for resolved source data.
Provides an in-memory layer with optional SQLite-backed disk persistence and optional TTL-based expiration.
Implementations§
Source§impl SourceCache
impl SourceCache
Sourcepub fn with_ttl(ttl: Duration) -> Self
pub fn with_ttl(ttl: Duration) -> Self
Create a new in-memory-only cache with a TTL.
Entries older than ttl are considered expired and will not be returned.
Sourcepub fn with_sqlite(path: &Path) -> Result<Self, String>
pub fn with_sqlite(path: &Path) -> Result<Self, String>
Create a cache backed by a SQLite database at the given path.
The table is created if it does not exist. Existing cached values are loaded into memory on construction.
Sourcepub fn with_sqlite_and_ttl(
path: &Path,
ttl: Option<Duration>,
) -> Result<Self, String>
pub fn with_sqlite_and_ttl( path: &Path, ttl: Option<Duration>, ) -> Result<Self, String>
Create a SQLite-backed cache with an optional TTL.
Sourcepub fn store(&self, source_id: &str, value: &Value)
pub fn store(&self, source_id: &str, value: &Value)
Store a resolved value in the cache (memory + disk if available).
Sourcepub fn get(&self, source_id: &str) -> Option<Value>
pub fn get(&self, source_id: &str) -> Option<Value>
Retrieve a cached value for a source.
Returns None if no entry exists or if the entry has expired (when TTL is set).
Sourcepub fn invalidate(&self, source_id: &str)
pub fn invalidate(&self, source_id: &str)
Remove a cached entry (memory + disk).
Sourcepub fn evict_expired(&self)
pub fn evict_expired(&self)
Remove all expired entries from the cache (memory + disk). Only meaningful when a TTL is configured.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for SourceCache
impl RefUnwindSafe for SourceCache
impl Send for SourceCache
impl Sync for SourceCache
impl Unpin for SourceCache
impl UnsafeUnpin for SourceCache
impl UnwindSafe for SourceCache
Blanket Implementations§
Source§impl<T> AnyExt for T
impl<T> AnyExt for T
Source§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind referenceSource§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable referenceSource§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointerSource§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointerSource§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
Source§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
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>
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>
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