pub struct InputEvidence { /* private fields */ }Expand description
Per-path bytes, directory membership or explicit absence observed before work.
Capture/validation requires caller custody over sources and parent directories; this value does not lock files, admit a release or retain output artifacts.
Implementations§
Source§impl InputEvidence
impl InputEvidence
Sourcepub fn capture(spec: &InputEvidenceSpec) -> Result<Self, InputEvidenceError>
pub fn capture(spec: &InputEvidenceSpec) -> Result<Self, InputEvidenceError>
Capture input authority without building or publishing an artifact cache.
Directories record membership, including empty directories. Missing roots are explicit evidence; links and special files refuse. Keep a genuine source write-exclusion boundary through capture, work and validation.
§Errors
Returns non-absolute paths, invalid exclusions, unsupported files or I/O.
Sourcepub const fn entries(&self) -> &BTreeMap<PathBuf, InputEvidenceValue>
pub const fn entries(&self) -> &BTreeMap<PathBuf, InputEvidenceValue>
Borrow the immutable per-path observations for consumer-owned projection.
Sourcepub fn digest(&self) -> Result<InputDigest, InputEvidenceError>
pub fn digest(&self) -> Result<InputDigest, InputEvidenceError>
Hash the caller identity and UTF-8 path/value map using big-endian lengths.
Fields are identity, then lexically sorted path/value pairs. Values are
absent, directory, or lowercase raw SHA-256 hexadecimal. Each field
starts with its u64 byte length in big-endian order. This preserves the
existing length-framed consumer evidence encoding without selecting a
cache namespace or adding a domain/version prefix.
§Errors
Returns non-UTF-8 paths that this evidence encoding cannot represent.
Sourcepub fn validate_after(&self, after: &Self) -> Result<(), InputEvidenceError>
pub fn validate_after(&self, after: &Self) -> Result<(), InputEvidenceError>
Validate an expanded/replaced inventory against pre-work authority.
Rechecks every original root even when a changed/disappearing depfile no longer names it. Late bytes cannot become pre-build authority. A newly named missing path is admissible only when a complete earlier directory scan proved its first child absent and that child was not excluded.
§Errors
Returns changed identity/policy/inputs, unobserved inputs or I/O failures.