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§
fn load(&self, key: Hash, node: &str, expected: Expected) -> Option<Entry>
Sourcefn peek(&self, key: Hash, node: &str, expected: Expected) -> Option<Entry>
fn peek(&self, key: Hash, node: &str, expected: Expected) -> Option<Entry>
load with no side effect: no recency, promotion, fault or removal.
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§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".