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.