pub struct ArtifactRow {
pub name: String,
pub path: String,
pub size_bytes: u64,
pub stage: String,
pub deterministic: bool,
pub nondeterministic_reason: Option<String>,
pub hash: Option<String>,
pub hashes: Vec<String>,
}Expand description
One row per emitted artifact.
deterministic=true artifacts carry a single hash; drifting
artifacts carry the per-run array under hashes (and may still have
nondeterministic_reason set when allow-listed).
Fields§
§name: StringDist-root-relative path of the artifact (forward-slash-normalized,
dist/ prefix stripped). Multi-arch artifacts sharing a basename
(e.g. per-target makeself scratch dirs) get distinct entries here.
Raw cargo binaries discovered under <worktree>/.det-tmp/target/
instead get a target/<triple>/release/<bin> key so they are not
confused with same-basename dist/ artifacts.
path: StringPath as seen by the harness — workspace-relative when possible, absolute otherwise.
size_bytes: u64Size in bytes, taken from the last run that produced the artifact.
stage: StringStage name responsible for the artifact (e.g. archive, sbom).
Best-effort — the harness infers from output path conventions and
falls back to "unknown" when it cannot attribute.
deterministic: booltrue when every run produced an identical SHA256.
nondeterministic_reason: Option<String>Set when the artifact is on the allow-list. Drives the “allowlist excluded this from drift_count” UX.
hash: Option<String>Single hash when the artifact is deterministic; None otherwise.
Mutually exclusive with hashes.
hashes: Vec<String>Per-run hash array when the artifact drifted (length == runs).
skip_serializing_if = "Vec::is_empty" keeps the JSON compact for
deterministic rows.
Trait Implementations§
Source§impl Clone for ArtifactRow
impl Clone for ArtifactRow
Source§fn clone(&self) -> ArtifactRow
fn clone(&self) -> ArtifactRow
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ArtifactRow
impl Debug for ArtifactRow
Source§impl<'de> Deserialize<'de> for ArtifactRow
impl<'de> Deserialize<'de> for ArtifactRow
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ArtifactRow
impl PartialEq for ArtifactRow
Source§fn eq(&self, other: &ArtifactRow) -> bool
fn eq(&self, other: &ArtifactRow) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for ArtifactRow
impl Serialize for ArtifactRow
impl Eq for ArtifactRow
impl StructuralPartialEq for ArtifactRow
Auto Trait Implementations§
impl Freeze for ArtifactRow
impl RefUnwindSafe for ArtifactRow
impl Send for ArtifactRow
impl Sync for ArtifactRow
impl Unpin for ArtifactRow
impl UnsafeUnpin for ArtifactRow
impl UnwindSafe for ArtifactRow
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.