Skip to main content

Cache

Trait Cache 

Source
pub trait Cache: Sync {
    // Required methods
    fn load(&self, key: Hash, node: &str, expected: Expected) -> Option<Entry>;
    fn peek(&self, key: Hash, node: &str, expected: Expected) -> Option<Entry>;
    fn store(
        &self,
        key: Hash,
        payload: &Payload,
        traces: &[FilterTrace],
        label: Option<&Label>,
    );
    fn holds(&self, key: Hash) -> bool;
    fn worth_storing(
        &self,
        cost: Duration,
        bytes: usize,
        kind: PayloadKind,
    ) -> bool;
    fn sweep(&self);
    fn held_bytes(&self) -> u64;
    fn evicted_bytes(&self) -> u64;
    fn max_bytes(&self) -> u64;

    // Provided methods
    fn faults(&self) -> u64 { ... }
    fn dir(&self) -> Option<&Path> { ... }
}

Required Methods§

Source

fn load(&self, key: Hash, node: &str, expected: Expected) -> Option<Entry>

Source

fn peek(&self, key: Hash, node: &str, expected: Expected) -> Option<Entry>

load with no side effect: no recency, promotion, fault or removal.

Source

fn store( &self, key: Hash, payload: &Payload, traces: &[FilterTrace], label: Option<&Label>, )

Source

fn holds(&self, key: Hash) -> bool

Source

fn worth_storing(&self, cost: Duration, bytes: usize, kind: PayloadKind) -> bool

Source

fn sweep(&self)

Source

fn held_bytes(&self) -> u64

Source

fn evicted_bytes(&self) -> u64

Source

fn max_bytes(&self) -> u64

Provided Methods§

Source

fn faults(&self) -> u64

Source

fn dir(&self) -> Option<&Path>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§