pub struct EvidenceRunRecord {Show 15 fields
pub schema: u32,
pub id: String,
pub origin: Origin,
pub commit: String,
pub working_tree: TreeState,
pub recorded_at: String,
pub ledger: LedgerTarget,
pub run: Option<RunRef>,
pub provenance: Vec<EvidenceProvenance>,
pub totals: EvidenceRunTotals,
pub absent: Vec<EvidenceAbsent>,
pub dropped: Vec<EvidenceDropped>,
pub unknown: Vec<String>,
pub coverage: Option<EvidenceCoverage>,
pub executions: Vec<Execution>,
}Expand description
One recording, as a typed run: what it recorded, against what, measured how, and what the reports held that it could not record.
Every evidence record returns one and writes it with --run-record <file>. It is
supplementary: a verdict is derived from the tracked ledger only, and a run record can
weaken one only through the one monotone rule (weakened_by_records).
use majordomus_cli::evidence::{EvidenceRunRecord, LedgerTarget, TreeState};
let r: EvidenceRunRecord = serde_json::from_value(serde_json::json!({
"schema": 1, "id": "local:0123456789ab:20260926T120000Z", "origin": "local",
"commit": "0123456789abcdef0123456789abcdef01234567", "working_tree": "clean",
"recorded_at": "2026-09-26T12:00:00Z", "ledger": "repo"
})).unwrap();
assert_eq!((r.working_tree, r.ledger), (TreeState::Clean, LedgerTarget::Repo));
assert!(r.executions.is_empty() && r.coverage.is_none());Fields§
§schema: u32§id: Stringrun_id of the recording.
origin: OriginWhere the run happened.
commit: StringThe recorder’s HEAD, which every measurement given equals.
working_tree: TreeStateThe weakest tree over the reports given: unknown for a report with no measurement.
recorded_at: StringRFC 3339 UTC, the at of every execution.
ledger: LedgerTargetThe ledger the executions were merged into.
run: Option<RunRef>The CI run, when there was one.
provenance: Vec<EvidenceProvenance>Each report’s measurement, ordered suite, crate, coverage, each naming its producer.
totals: EvidenceRunTotalsCounts over the executions.
absent: Vec<EvidenceAbsent>The producers that gave nothing, and why.
dropped: Vec<EvidenceDropped>What the reports held that no claim can name yet.
unknown: Vec<String>Tests the reports named that this repository does not have.
coverage: Option<EvidenceCoverage>The coverage measurement, bound to its commit.
executions: Vec<Execution>The executions recorded.
Implementations§
Source§impl EvidenceRunRecord
impl EvidenceRunRecord
Sourcepub fn id_of(execution: &Execution) -> String
pub fn id_of(execution: &Execution) -> String
The id of the run record execution belongs to: every execution of a recording
shares its origin, run, commit and at.
use majordomus_cli::evidence::{EvidenceRunRecord, Execution};
let e: Execution = serde_json::from_value(serde_json::json!({
"test": "suite:01_a", "runner": "suite", "source": "test/cases/01_a.sh",
"outcome": "pass", "seconds": 1, "commit": "a".repeat(40), "working_tree": "clean",
"digest": "sha256:0", "at": "2026-09-26T12:00:00Z", "origin": "local",
"command": "bash test/run.sh 01_a"
})).unwrap();
assert_eq!(EvidenceRunRecord::id_of(&e), "local:aaaaaaaaaaaa:20260926T120000Z");Trait Implementations§
Source§impl Clone for EvidenceRunRecord
impl Clone for EvidenceRunRecord
Source§fn clone(&self) -> EvidenceRunRecord
fn clone(&self) -> EvidenceRunRecord
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 EvidenceRunRecord
impl Debug for EvidenceRunRecord
Source§impl<'de> Deserialize<'de> for EvidenceRunRecord
impl<'de> Deserialize<'de> for EvidenceRunRecord
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 JsonSchema for EvidenceRunRecord
impl JsonSchema for EvidenceRunRecord
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl Ordered for EvidenceRunRecord
A recording is ordered by when it was recorded, and its id — unique, the run_id —
makes the order total when two were recorded in the same second. RFC 3339 UTC reads in
time order under the canonical comparison, its digit runs being fixed-width.
impl Ordered for EvidenceRunRecord
A recording is ordered by when it was recorded, and its id — unique, the run_id —
makes the order total when two were recorded in the same second. RFC 3339 UTC reads in
time order under the canonical comparison, its digit runs being fixed-width.
Source§impl PartialEq for EvidenceRunRecord
impl PartialEq for EvidenceRunRecord
Source§fn eq(&self, other: &EvidenceRunRecord) -> bool
fn eq(&self, other: &EvidenceRunRecord) -> bool
self and other values to be equal, and is used by ==.