CacheWrapper

Struct CacheWrapper 

Source
pub struct CacheWrapper { /* private fields */ }
Expand description

What: Combined cache wrapper that uses memory and optionally disk cache.

Inputs: None (created via CacheWrapper::new())

Output:

  • CacheWrapper instance ready for use

Details:

  • Always uses in-memory LRU cache
  • Optionally uses disk cache if enabled in config
  • Checks memory cache first, then disk cache
  • Writes to both caches when storing

Implementations§

Source§

impl CacheWrapper

Source

pub fn new(config: &CacheConfig) -> Result<Self, CacheError>

What: Create a new cache wrapper with memory and optional disk cache.

Inputs:

  • config: Cache configuration

Output:

  • Result<CacheWrapper> with configured caches, or error if initialization fails

Details:

  • Always creates memory cache
  • Creates disk cache if enabled in config
  • Returns error if disk cache creation fails
§Errors
  • Returns Err(CacheError::Io) if disk cache directory creation fails
Source

pub fn get<V>(&self, key: &str) -> Option<V>
where V: Clone + Serialize + for<'de> Deserialize<'de>,

What: Get a value from cache (checks memory first, then disk).

Inputs:

  • key: Cache key

Output:

  • Option<V> containing cached value if found, None otherwise

Details:

  • Checks memory cache first (fastest)
  • Falls back to disk cache if memory miss
  • Promotes disk cache hits to memory cache
Source

pub fn set<V>( &self, key: &str, value: &V, ttl: Duration, ) -> Result<(), CacheError>
where V: Clone + Serialize + for<'de> Deserialize<'de>,

What: Store a value in cache (writes to both memory and disk if enabled).

Inputs:

  • key: Cache key
  • value: Value to cache
  • ttl: Time-to-live duration

Output:

  • Result<(), CacheError> indicating success or failure

Details:

  • Writes to memory cache (always)
  • Writes to disk cache if enabled
  • Errors in disk cache don’t prevent memory cache write
§Errors
  • Returns Err(CacheError::Serialization) if value serialization fails
Source

pub fn invalidate(&self, key: &str) -> Result<(), CacheError>

What: Invalidate a cache entry (removes from both memory and disk).

Inputs:

  • key: Cache key to invalidate

Output:

  • Result<(), CacheError> indicating success or failure

Details:

  • Removes from memory cache
  • Removes from disk cache if enabled
§Errors
  • Returns Err(CacheError::Io) if disk cache file removal fails (disk cache only)
Source

pub fn clear(&self) -> Result<(), CacheError>

What: Clear all cache entries (both memory and disk).

Inputs: None

Output:

  • Result<(), CacheError> indicating success or failure

Details:

  • Clears memory cache
  • Clears disk cache if enabled
§Errors
  • Returns Err(CacheError::Io) if disk cache cleanup fails (disk cache only)

Trait Implementations§

Source§

impl Debug for CacheWrapper

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more