DefaultFilesMetadataCache

Struct DefaultFilesMetadataCache 

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

Default implementation of FileMetadataCache

Collected file embedded metadata cache.

The metadata for each file is invalidated when the file size or last modification time have been changed.

§Internal details

The memory_limit controls the maximum size of the cache, which uses a Least Recently Used eviction algorithm. When adding a new entry, if the total size of the cached entries exceeds memory_limit, the least recently used entries are evicted until the total size is lower than memory_limit.

§Extra Handling

Users should use the Self::get and Self::put methods. The Self::get_with_extra and Self::put_with_extra methods simply call get and put, respectively.

Implementations§

Source§

impl DefaultFilesMetadataCache

Source

pub fn new(memory_limit: usize) -> Self

Create a new instance of DefaultFilesMetadataCache.

§Arguments

memory_limit: the maximum size of the cache, in bytes

Source

pub fn memory_used(&self) -> usize

Returns the size of the cached memory, in bytes.

Trait Implementations§

Source§

impl CacheAccessor<ObjectMeta, Arc<dyn FileMetadata>> for DefaultFilesMetadataCache

Source§

type Extra = ObjectMeta

Source§

fn get(&self, k: &ObjectMeta) -> Option<Arc<dyn FileMetadata>>

Get value from cache.
Source§

fn get_with_extra( &self, k: &ObjectMeta, _e: &Self::Extra, ) -> Option<Arc<dyn FileMetadata>>

Get value from cache.
Source§

fn put( &self, key: &ObjectMeta, value: Arc<dyn FileMetadata>, ) -> Option<Arc<dyn FileMetadata>>

Put value into cache. Returns the old value associated with the key if there was one.
Source§

fn put_with_extra( &self, key: &ObjectMeta, value: Arc<dyn FileMetadata>, _e: &Self::Extra, ) -> Option<Arc<dyn FileMetadata>>

Put value into cache. Returns the old value associated with the key if there was one.
Source§

fn remove(&mut self, k: &ObjectMeta) -> Option<Arc<dyn FileMetadata>>

Remove an entry from the cache, returning value if they existed in the map.
Source§

fn contains_key(&self, k: &ObjectMeta) -> bool

Check if the cache contains a specific key.
Source§

fn len(&self) -> usize

Fetch the total number of cache entries.
Source§

fn clear(&self)

Remove all entries from the cache.
Source§

fn name(&self) -> String

Return the cache name.
Source§

fn is_empty(&self) -> bool

Check if the Cache collection is empty or not.
Source§

impl FileMetadataCache for DefaultFilesMetadataCache

Source§

fn cache_limit(&self) -> usize

Returns the cache’s memory limit in bytes.
Source§

fn update_cache_limit(&self, limit: usize)

Updates the cache with a new memory limit in bytes.
Source§

fn list_entries(&self) -> HashMap<Path, FileMetadataCacheEntry>

Retrieves the information about the entries currently cached.

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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
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> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

impl<T> ErasedDestructor for T
where T: 'static,