pub struct MarkerAckCommit { /* private fields */ }Expand description
Atomic zero-debt marker-ack commit.
The retained marker permit proves delivery to the exact authoritative
binding epoch. The cursor update is opaque and can be applied only through
Self::apply_to. Nonzero-debt edge completion is deliberately outside
this operation.
Implementations§
Source§impl MarkerAckCommit
impl MarkerAckCommit
Sourcepub const fn outcome(&self) -> &MarkerAckCommitted
pub const fn outcome(&self) -> &MarkerAckCommitted
Borrows the exact committed wire outcome.
Sourcepub const fn observer_progress_projection(&self) -> ObserverProgressProjection
pub const fn observer_progress_projection(&self) -> ObserverProgressProjection
Projects the exact committed marker boundary into hard observer progress.
Sourcepub const fn canonical_request(&self) -> MarkerAck
pub const fn canonical_request(&self) -> MarkerAck
Returns the exact canonical request selected into this commit.
Sourcepub const fn receiving_binding_epoch(&self) -> BindingEpoch
pub const fn receiving_binding_epoch(&self) -> BindingEpoch
Returns the receiving binding epoch authorized by shared lookup.
Sourcepub const fn offered_marker_delivery_seq(&self) -> DeliverySeq
pub const fn offered_marker_delivery_seq(&self) -> DeliverySeq
Returns the exact marker sequence proven offered to the binding.
Sourcepub const fn delivered_binding_epoch(&self) -> BindingEpoch
pub const fn delivered_binding_epoch(&self) -> BindingEpoch
Returns the binding epoch on which the marker was proven offered.
Sourcepub const fn from_cursor(&self) -> DeliverySeq
pub const fn from_cursor(&self) -> DeliverySeq
Returns the durable cursor prestate checked by this transition.
Sourcepub const fn resulting_cursor(&self) -> DeliverySeq
pub const fn resulting_cursor(&self) -> DeliverySeq
Returns the exact post-transition cursor for replay audit.
Sourcepub const fn proof(&self) -> &MarkerProofPermit
pub const fn proof(&self) -> &MarkerProofPermit
Borrows the exact delivered-marker authority retained by this commit.
Sourcepub fn progress_binding_fate_token(
&self,
token: SealedBindingFateToken,
) -> Result<SealedBindingFateToken, Box<SealedBindingFateToken>>
pub fn progress_binding_fate_token( &self, token: SealedBindingFateToken, ) -> Result<SealedBindingFateToken, Box<SealedBindingFateToken>>
Replays this exact selected marker transition into one sealed fate token.
The ordinary-ack path has always progressed the token in step with the
member cursor (ParticipantAckCommit::progress_binding_fate_token); the
marker path never did, so a marker-ack advanced the member and stranded
the token behind it, and the NEXT ordinary ack — live or rebuilt from
durable rows on boot — was refused against a frozen prestate.
§Errors
Returns the unchanged token when its conversation, participant, binding
epoch, or cursor prestate differs from this committed marker-ack.
Replaying a marker-ack the token has already consumed is NOT an error:
it returns the token untouched, matching Self::apply_to’s own
idempotence.
Sourcepub fn apply_to<F>(
self,
member: &mut LiveMember<F>,
) -> Result<MarkerAckCommitted, MarkerAckCommitError>
pub fn apply_to<F>( self, member: &mut LiveMember<F>, ) -> Result<MarkerAckCommitted, MarkerAckCommitError>
Applies this commit to either its exact old cursor or its already-written resulting cursor.
Replaying after a crash is idempotent: the old prestate advances once,
while the exact new prestate returns the same MarkerAckCommitted
without another mutation.
§Errors
Returns MarkerAckCommitError if the supplied member differs in
conversation, participant, generation, or cursor prestate.
Trait Implementations§
Source§impl Clone for MarkerAckCommit
impl Clone for MarkerAckCommit
Source§fn clone(&self) -> MarkerAckCommit
fn clone(&self) -> MarkerAckCommit
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more