Skip to main content

PrecedenceCondition

Enum PrecedenceCondition 

Source
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: DeliverySeq

Delivery 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

Source§

fn clone(&self) -> PrecedenceCondition

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for PrecedenceCondition

Source§

impl Debug for PrecedenceCondition

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for PrecedenceCondition

Source§

impl PartialEq for PrecedenceCondition

Source§

fn eq(&self, other: &PrecedenceCondition) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for PrecedenceCondition

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.