use std::io;
use std::sync::Arc;
use super::fingerprint::PipelineFingerprint;
use super::metrics::PipelineCacheMetrics;
pub trait PipelineCacheStore: Send + Sync {
fn get(&self, fp: &PipelineFingerprint) -> Option<Vec<u8>>;
fn get_arc(&self, fp: &PipelineFingerprint) -> Option<Arc<Vec<u8>>> {
self.get(fp).map(Arc::new)
}
fn put(&self, fp: PipelineFingerprint, artifact: Vec<u8>);
fn flush(&self) -> io::Result<()> {
Ok(())
}
#[must_use]
fn metrics(&self) -> PipelineCacheMetrics {
PipelineCacheMetrics::default()
}
}