pub struct TrackingCopyCache<M> { /* private fields */ }
Expand description

Keeps track of already accessed keys. We deliberately separate cached Reads from cached mutations because we want to invalidate Reads’ cache so it doesn’t grow too fast.

Implementations§

source§

impl<M: Meter<Key, StoredValue>> TrackingCopyCache<M>

source

pub fn new(max_cache_size: usize, meter: M) -> TrackingCopyCache<M>

Creates instance of TrackingCopyCache with specified max_cache_size, above which least-recently-used elements of the cache are invalidated. Measurements of elements’ “size” is done with the usage of Meter instance.

source

pub fn insert_read(&mut self, key: Key, value: StoredValue)

Inserts key and value pair to Read cache.

source

pub fn insert_key_tag_read(&mut self, key_tag: KeyTag, keys: BTreeSet<Key>)

Inserts a KeyTag value and the keys under this prefix into the key reads cache.

source

pub fn insert_write(&mut self, key: Key, value: StoredValue)

Inserts key and value pair to Write/Add cache.

source

pub fn get(&mut self, key: &Key) -> Option<&StoredValue>

Gets value from key in the cache.

source

pub fn get_key_tag_muts_cached( &mut self, key_tag: &KeyTag ) -> Option<&BTreeSet<Key>>

Gets the set of mutated keys in the cache by KeyTag.

source

pub fn get_key_tag_reads_cached( &mut self, key_tag: &KeyTag ) -> Option<&BTreeSet<Key>>

Gets the set of read keys in the cache by KeyTag.

Auto Trait Implementations§

§

impl<M> RefUnwindSafe for TrackingCopyCache<M>where M: RefUnwindSafe,

§

impl<M> Send for TrackingCopyCache<M>where M: Send,

§

impl<M> Sync for TrackingCopyCache<M>where M: Sync,

§

impl<M> Unpin for TrackingCopyCache<M>where M: Unpin,

§

impl<M> UnwindSafe for TrackingCopyCache<M>where M: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for Twhere T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for Twhere T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
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 Twhere 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

§

type Output = T

Should always be Self
source§

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

§

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 Twhere U: TryFrom<T>,

§

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.
§

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

§

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