Skip to main content

CacheManager

Struct CacheManager 

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

SHA-256 content-hash deduplication cache backed by SessionStore.

Implementations§

Source§

impl CacheManager

Source

pub fn new(store: SessionStore, max_size_bytes: u64) -> Self

Source

pub fn get_or_compress( &self, _path: &Path, content: &[u8], pipeline: &CompressionPipeline, ) -> Result<CacheResult>

Look up content in the cache.

  • On dedup: return CacheResult::Dedup with a compact reference token.
  • On fresh: compress via pipeline, persist to store, return CacheResult::Fresh.
Source

pub fn invalidate(&self, path: &Path) -> Result<()>

Invalidate the cache entry for path if its current content is known.

Reads the file at path, computes its hash, and removes the matching entry from the store. If the file does not exist the call is a no-op.

Source

pub fn evict_lru(&self) -> Result<u64>

Evict least-recently-used entries until total cache size is at or below max_size_bytes.

Returns the number of bytes freed.

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, 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> Same for T

Source§

type Output = T

Should always be Self
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.