pub struct CacheMetadataManager<'a, F: FileSystem> { /* private fields */ }Expand description
Manages cache metadata for optimized version checking
Implementations§
Source§impl<'a, F: FileSystem> CacheMetadataManager<'a, F>
impl<'a, F: FileSystem> CacheMetadataManager<'a, F>
pub const fn new(fs: &'a F) -> Self
Sourcepub fn load_metadata<P: AsRef<Path>>(
&self,
cache_dir: P,
) -> Result<GlobalCacheMetadata, Error>
pub fn load_metadata<P: AsRef<Path>>( &self, cache_dir: P, ) -> Result<GlobalCacheMetadata, Error>
Load global cache metadata, creating default if it doesn’t exist
§Errors
Returns an error if the metadata file exists but cannot be read or parsed
Sourcepub fn save_metadata<P: AsRef<Path>>(
&self,
cache_dir: P,
metadata: &GlobalCacheMetadata,
) -> Result<(), Error>
pub fn save_metadata<P: AsRef<Path>>( &self, cache_dir: P, metadata: &GlobalCacheMetadata, ) -> Result<(), Error>
Save global cache metadata
§Errors
Returns an error if the metadata cannot be serialized or written to disk
Sourcepub fn check_spec_version<P: AsRef<Path>>(
&self,
cache_dir: P,
spec_name: &str,
) -> Result<bool, Error>
pub fn check_spec_version<P: AsRef<Path>>( &self, cache_dir: P, spec_name: &str, ) -> Result<bool, Error>
Check if a spec’s cache is compatible with current version
§Errors
Returns an error if the metadata file cannot be loaded
Sourcepub fn update_spec_metadata<P: AsRef<Path>>(
&self,
cache_dir: P,
spec_name: &str,
file_size: u64,
) -> Result<(), Error>
pub fn update_spec_metadata<P: AsRef<Path>>( &self, cache_dir: P, spec_name: &str, file_size: u64, ) -> Result<(), Error>
Update metadata for a specific spec
§Errors
Returns an error if the metadata cannot be loaded or saved
Sourcepub fn update_spec_metadata_with_fingerprint<P: AsRef<Path>>(
&self,
cache_dir: P,
spec_name: &str,
file_size: u64,
content_hash: Option<String>,
mtime_secs: Option<u64>,
spec_file_size: Option<u64>,
) -> Result<(), Error>
pub fn update_spec_metadata_with_fingerprint<P: AsRef<Path>>( &self, cache_dir: P, spec_name: &str, file_size: u64, content_hash: Option<String>, mtime_secs: Option<u64>, spec_file_size: Option<u64>, ) -> Result<(), Error>
Update metadata for a specific spec including fingerprint data for cache invalidation
§Errors
Returns an error if the metadata cannot be loaded or saved
Sourcepub fn get_stored_fingerprint<P: AsRef<Path>>(
&self,
cache_dir: P,
spec_name: &str,
) -> Result<Option<(String, u64, u64)>, Error>
pub fn get_stored_fingerprint<P: AsRef<Path>>( &self, cache_dir: P, spec_name: &str, ) -> Result<Option<(String, u64, u64)>, Error>
Retrieve the stored fingerprint for a spec (content hash, mtime, file size).
Returns None if the spec is not in metadata or has no fingerprint data
(legacy metadata created before fingerprinting was added).
§Errors
Returns an error if the metadata file cannot be loaded