pub struct DiskCache { /* private fields */ }Expand description
Disk-backed pipeline cache. Writes one file per fingerprint
under <root>/<hex>.bin. Reads are stateless; writes are
write + rename for atomicity. No eviction policy today
(user decides) - the footprint is bounded by
sum(artifact_size × unique_canonical_programs).
Implementations§
Source§impl DiskCache
impl DiskCache
Sourcepub fn new(root: impl Into<PathBuf>) -> Result<Self, DiskCacheError>
pub fn new(root: impl Into<PathBuf>) -> Result<Self, DiskCacheError>
Construct a cache rooted at root. Creates the directory if
it doesn’t exist.
§Errors
Returns DiskCacheError::Io when the directory can’t be
created.
Sourcepub fn in_user_cache() -> Result<Self, DiskCacheError>
pub fn in_user_cache() -> Result<Self, DiskCacheError>
Construct a cache rooted at ~/.cache/vyre/pipelines/ (or
$XDG_CACHE_HOME/vyre/pipelines/ if set).
§Errors
Returns DiskCacheError::CacheDirUnknown when neither env
var resolves, or DiskCacheError::Io on mkdir failure.
Trait Implementations§
Source§impl PipelineCacheStore for DiskCache
impl PipelineCacheStore for DiskCache
Source§fn get(&self, fp: &PipelineFingerprint) -> Option<Vec<u8>>
fn get(&self, fp: &PipelineFingerprint) -> Option<Vec<u8>>
Look up a cached artifact for this fingerprint. Read more
Source§fn put(&self, fp: PipelineFingerprint, artifact: Vec<u8>)
fn put(&self, fp: PipelineFingerprint, artifact: Vec<u8>)
Insert a pre-compiled artifact. Implementations may dedupe
or evict per their own policy.
Source§fn metrics(&self) -> PipelineCacheMetrics
fn metrics(&self) -> PipelineCacheMetrics
Snapshot cache instrumentation for latency, throughput, and eviction
gates. Backends that do not maintain counters return zeros.
Source§fn get_arc(&self, fp: &PipelineFingerprint) -> Option<Arc<Vec<u8>>>
fn get_arc(&self, fp: &PipelineFingerprint) -> Option<Arc<Vec<u8>>>
V7-PERF-009: zero-clone hot-path lookup. Returns the cached artifact as
an
Arc<Vec<u8>> so multiple consumers share the underlying allocation.
Default impl wraps get; in-memory and layered caches override this to
return their internal Arc directly.Auto Trait Implementations§
impl !Freeze for DiskCache
impl !RefUnwindSafe for DiskCache
impl Send for DiskCache
impl Sync for DiskCache
impl Unpin for DiskCache
impl UnsafeUnpin for DiskCache
impl UnwindSafe for DiskCache
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