kache-store 1.2.2

Local content-addressed artifact storage for kache.
Documentation
//! Local artifact storage, independent of compiler parsing and remote transports.

pub mod atomic;
mod blob_drift;
mod blob_validation;
mod cc_memo;
pub mod config;
pub mod eviction;
mod eviction_evidence;
pub mod file_hash;
pub mod filesystem;
mod index_compaction;
pub mod link;
pub mod markers;
pub mod opcounts;
pub mod sharing;
mod store;
#[cfg(test)]
mod test_support;

pub use blob_drift::{BlobRefcountDrift, blob_refcount_drift};
pub use eviction_evidence::{EvictionEvidenceCohort, EvictionHorizonEvidence};
pub use store::*;

/// Compiler-owned rules applied when publishing an entry. Implementations must
/// permit shared inodes only for outputs that remain immutable after publication.
pub trait ArtifactPolicy {
    fn allow_hardlink(name: &str) -> bool;
    fn allow_empty(name: &str, output_types: &[String]) -> bool;
    fn emit_kind(name: &str) -> Option<&'static str>;
    fn stable_after_store(name: &str) -> bool;
}