Skip to main content

drain_next_marker

Function drain_next_marker 

Source
pub fn drain_next_marker(
    frontiers: ClaimFrontiers,
    current_accounting: ClosureAccounting,
    retained_charges: Vec<RetainedRecordCharge>,
    marker_charge: RetainedRecordCharge,
) -> Result<MarkerDrainCommit, MarkerDrainError>
Expand description

Consumes the globally first marker candidate into one atomic durable commit.

This operation never accepts a raw candidate token, sequence, participant, epoch, marker count, or order key. All are derived from the coupled frontiers, and the candidate authority is consumed while deriving the exact bound-delivery or detached-release successor. An already-current OP/PC remains strict through its typed marker-append transition.

ยงErrors

Returns MarkerDrainError when the mandatory prefix is absent, belongs to a binding terminal, is not the exact next sequence, targets a detached binding, conflicts with the current closure edge, lacks its already-allocated causal order key, or cannot produce a valid resulting sequence ledger.