pub struct InMemCacheTracker<T, F> { /* private fields */ }
Expand description
keep track of block accesses in memory
Implementations§
Source§impl<T, F> InMemCacheTracker<T, F>
impl<T, F> InMemCacheTracker<T, F>
Sourcepub fn new(mk_cache_entry: F) -> Self
pub fn new(mk_cache_entry: F) -> Self
mk_cache_entry will be called on each block access to create or update a cache entry. It allows to customize whether we are interested in an entry at all, and what entries we want to be preserved.
E.g. to just sort entries by their access time, use |access, _, _| Some(access)
.
this will keep entries in the cache based on last access time.
It is also possible to use more sophisticated strategies like only caching certain cid types or caching based on the data size.
Trait Implementations§
Source§impl<T, F> CacheTracker for InMemCacheTracker<T, F>
impl<T, F> CacheTracker for InMemCacheTracker<T, F>
Source§fn blocks_accessed(&self, blocks: Vec<BlockInfo>)
fn blocks_accessed(&self, blocks: Vec<BlockInfo>)
called whenever blocks were accessed
Source§fn blocks_deleted(&self, blocks: Vec<BlockInfo>)
fn blocks_deleted(&self, blocks: Vec<BlockInfo>)
notification that these ids no longer have to be tracked
Source§fn retain_ids(&self, ids: &[i64])
fn retain_ids(&self, ids: &[i64])
notification that only these ids should be retained
Source§fn sort_ids(&self, ids: &mut [i64])
fn sort_ids(&self, ids: &mut [i64])
sort ids by importance. More important ids should go to the end.
Source§fn has_persistent_state(&self) -> bool
fn has_persistent_state(&self) -> bool
indicate whether
retain_ids
should be called on startupAuto Trait Implementations§
impl<T, F> Freeze for InMemCacheTracker<T, F>where
F: Freeze,
impl<T, F> !RefUnwindSafe for InMemCacheTracker<T, F>
impl<T, F> Send for InMemCacheTracker<T, F>
impl<T, F> Sync for InMemCacheTracker<T, F>
impl<T, F> Unpin for InMemCacheTracker<T, F>where
F: Unpin,
impl<T, F> !UnwindSafe for InMemCacheTracker<T, F>
Blanket Implementations§
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
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