pub trait CacheValidator
where Self: Send,
{ // Required methods fn allocate_slots(&mut self, slot_count: usize); fn is_slot_valid(&self, slot_id: usize) -> bool; fn validate_slot(&mut self, slot_id: usize); fn invalidate_slot(&mut self, slot_id: usize); // Provided method fn update_validity(&mut self) { ... } }
Expand description

Validators are used when working with caches and determine for how long a specific cache entry stays valid.

Required Methods§

source

fn allocate_slots(&mut self, slot_count: usize)

Allocate the required amount of slots used for validation

source

fn is_slot_valid(&self, slot_id: usize) -> bool

Checks wether or not the given slot is valid.

source

fn validate_slot(&mut self, slot_id: usize)

Callback from the cache implementation when a page is cached and the slot should become valid.

source

fn invalidate_slot(&mut self, slot_id: usize)

Callback from the caching implementation to mark a slot as invalid.

This can happen if two different cache entries fall into the same slot id.

Provided Methods§

source

fn update_validity(&mut self)

Invoked once per Read/Write so internal state can be updated if necessary.

This is an optimization so things like std::time::Instant only need to be computed once.

Implementors§