pub enum UniversalAnswer {
Kind {
name: &'static str,
},
Owner {
owner: OwnerFact,
},
CausingDeclarations {
commitment: Identity<CapturedDeclaration>,
dependencies: Bounded<Identity<CapturedDeclaration>, DEPENDENCY_LIMIT>,
},
Profile {
profile: Profile,
},
OutputAndDigest {
outputs: Bounded<AnsweredOutput, MEMBERSHIP_LIMIT>,
},
Assumptions {
assumptions: Bounded<OwnerFact, ASSUMPTION_LIMIT>,
},
Invalidators {
triggers: InvalidationSet,
},
RelatedDispositions {
related: Bounded<RelatedDisposition, RELATED_KIND_LIMIT>,
},
Repairs {
repairs: Bounded<Repair, REPAIR_LIMIT>,
},
}Expand description
One typed answer to a universal question.
Every arm carries the exact values that answer its row — identities, typed rosters, typed dispositions — and never a sentence standing in for a fact.
Variants§
Kind
The kind this output is.
Owner
The owner fact that required it.
CausingDeclarations
The declarations it was derived from.
Fields
commitment: Identity<CapturedDeclaration>The content commitment the request walked in with.
dependencies: Bounded<Identity<CapturedDeclaration>, DEPENDENCY_LIMIT>The captures that content declares it stands on.
Profile
The profile it was decided under.
OutputAndDigest
Every member it is, and the digest proved over each one’s rendered bytes.
The complete set in roster order, never a chosen row: a kind’s roster may fill several seats, and an answer naming one of them would be coverage-complete syntax over a flattened denominator — the second output’s identity and digest simply absent from a view that claims the whole expansion. Each row is two values because they come from two places: the member is what the plan declared, and the digest is what the closure proved.
Fields
outputs: Bounded<AnsweredOutput, MEMBERSHIP_LIMIT>One row per rendered seat, in roster order; never empty in a lawful expansion, because a rendering is structurally non-empty — and completion refuses a set that does not restate the proof’s own roster, so a shortened or reordered answer cannot ride a coverage-complete view.
Assumptions
The owner facts it rests on.
Invalidators
The triggers whose change makes it stale.
Fields
triggers: InvalidationSetThe watch set.
RelatedDispositions
What happened to every kind it is related to.
Fields
The accounted kinds.
Repairs
The owner-declared repairs that apply.
Implementations§
Source§impl UniversalAnswer
impl UniversalAnswer
Sourcepub const fn slot(&self) -> u8
pub const fn slot(&self) -> u8
This answer’s position in the declared roster, written ahead of its own material.
Not the question’s position stated twice: the question is what was ASKED and this is which answer SHAPE was given. They agree today because the table above is one-to-one, and a roster that ever admitted two shapes for one question would separate them here rather than deriving one preimage for both. A position is appended and never renumbered.
Trait Implementations§
Source§impl Answer for UniversalAnswer
impl Answer for UniversalAnswer
Source§type Question = UniversalQuestion
type Question = UniversalQuestion
Source§fn question(&self) -> UniversalQuestion
fn question(&self) -> UniversalQuestion
Source§fn encode_into(&self, into: &mut Vec<u8>)
fn encode_into(&self, into: &mut Vec<u8>)
Source§impl Clone for UniversalAnswer
impl Clone for UniversalAnswer
Source§fn clone(&self) -> UniversalAnswer
fn clone(&self) -> UniversalAnswer
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more