pub struct RunRecord {Show 13 fields
pub schema: String,
pub decision_id: String,
pub plan_id: PlanId,
pub execution: RecordedExecution,
pub termination: Termination,
pub core: CoreEvidence,
pub timing: Timing,
pub requests: Vec<RequestRecord>,
pub cost: CostSummary,
pub remote_evidence: Option<Vec<RemoteEvidence>>,
pub remote_evidence_truncated: bool,
pub acquisitions: Option<Vec<AcquisitionRecord>>,
pub decision_cache: Option<DecisionCacheRecord>,
}Fields§
§schema: String§decision_id: StringSupplied by the caller; the delivery key sinks deduplicate by.
plan_id: PlanId§execution: RecordedExecution§termination: Termination§core: CoreEvidence§timing: Timing§requests: Vec<RequestRecord>In the order the core listed them.
cost: CostSummary§remote_evidence: Option<Vec<RemoteEvidence>>rustev.run/2 only (spec 020, 3.2): at most one entry per remote
attempt, in attempt order, at most MAX_REMOTE_EVIDENCE. Absent in
every other version, so their bytes are unchanged.
remote_evidence_truncated: boolrustev.run/2 only: remote attempts beyond the bound have no entry.
acquisitions: Option<Vec<AcquisitionRecord>>Spec 036: omitted when the plan has no acquisition step.
decision_cache: Option<DecisionCacheRecord>rustev.run/3 only (spec 044, 3.6.6): omitted when the plan has no
decision-result cache.
Implementations§
Source§impl RunRecord
impl RunRecord
Sourcepub fn check_version_members(&self) -> Result<(), RunVersionError>
pub fn check_version_members(&self) -> Result<(), RunVersionError>
Whether the version-specific members fit the schema: the remote
evidence list exactly in rustev.run/2, within its bounds.
Sourcepub fn project_v1(&self) -> Result<RunRecord, RunVersionError>
pub fn project_v1(&self) -> Result<RunRecord, RunVersionError>
The deterministic version 1 projection of a rustev.run/2 record
(spec 020, 3.2): the remote evidence removed, the schema tag
changed, every other member exactly as it is, so the canonical bytes
are the version 1 representation. Refused, never partial, for any
other record.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for RunRecord
impl<'de> Deserialize<'de> for RunRecord
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 Document for RunRecord
impl Document for RunRecord
Source§const SCHEMA: &'static str = schema::RUN
const SCHEMA: &'static str = schema::RUN
Source§const LIMITS: ParseLimits = RECORD_V1
const LIMITS: ParseLimits = RECORD_V1
Source§fn parse(bytes: &[u8]) -> Result<Self, DocumentError>
fn parse(bytes: &[u8]) -> Result<Self, DocumentError>
Source§fn record_digest(&self) -> Result<ContentDigest, CanonicalError>
fn record_digest(&self) -> Result<ContentDigest, CanonicalError>
sha256(SCHEMA || 0x00 || record canonical bytes) (spec 004, 3.1.6).
Equal to the identity of an identified document.Source§fn record_canonical(&self) -> Result<Vec<u8>, CanonicalError>where
Self: PartialEq,
fn record_canonical(&self) -> Result<Vec<u8>, CanonicalError>where
Self: PartialEq,
Source§impl JsonSchema for RunRecord
impl JsonSchema for RunRecord
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 more