pub enum PrecedenceCondition {
BindingTerminal,
MarkerDrain {
settlement_epoch: DeliverySeq,
},
FencedRecovery,
Unclassified,
}Expand description
Which of amendment A5’s clearing conditions raised a Precedence refusal.
Participant contract §0.16 rules ONE seam (apply_live_transition) into
THREE clearing conditions with no shared retry story, and rules a different
lawful answer for each. The bare Precedence variant destroyed that
discriminant, which is why all three wrappers flattened it into the same
bare connection close. The condition is therefore computed AT the seam,
from the exact state the seam’s own guard reads, and travels out with the
refusal — no caller re-derives it and no caller enumerates call sites.
Self::Unclassified exists so the type can never lie: a Precedence
raised somewhere that is NOT one of the amendment’s three conditions says
so, and the server keeps the pre-amendment bare close for it.
Variants§
BindingTerminal
Condition 1 — a pending binding terminal holds the immutable lane. The
blocked resource is hard-observer progress and the wake is the already
pushed 0x0200 ObserverProgressed.
MarkerDrain
Condition 2 — a compaction-marker candidate is awaiting its drain.
Fields
settlement_epoch: DeliverySeqDelivery sequence of the marker candidate that must drain NEXT.
This is the settlement epoch the refusal waits on. It is the head of
the immutable sequence lane, which is exactly the candidate
drain_next_marker_core consumes (it takes first() and refuses a
binding terminal there), so the epoch a refusal carries is the epoch
the clearing write announces.
FencedRecovery
Condition 3 — an armed fenced-recovery block. Excluded by the board #13
constructor census: no production constructor of
StoredAttachModeV3::Fenced exists, so this arm is unreachable in
production and gets no wire row. The first production constructor VOIDS
that exclusion.
Unclassified
Not one of §0.16’s three conditions: a Precedence raised over a
retained marker below a measured floor, or with an order-lane candidate
the sequence lane cannot name. Never presented as a settlement.
Trait Implementations§
Source§impl Clone for PrecedenceCondition
impl Clone for PrecedenceCondition
Source§fn clone(&self) -> PrecedenceCondition
fn clone(&self) -> PrecedenceCondition
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more