Skip to main content

MarkerDelivery

Struct MarkerDelivery 

Source
pub struct MarkerDelivery { /* private fields */ }
Expand description

Exact marker-delivery witness.

This witness has no public constructor. Fresh delivery is produced only by the claim frontier’s consuming marker-drain transition; cold restoration requires its sealed retained-marker-record authority. Raw participant, binding, and sequence values therefore cannot create recovery authority.

use liminal_protocol::{
    lifecycle::MarkerDelivery,
    wire::{BindingEpoch, ConnectionIncarnation, Generation},
};

let epoch = BindingEpoch::new(
    ConnectionIncarnation::new(1, 1),
    Generation::ONE,
);
let _ = MarkerDelivery::new(7, epoch, 11);

Implementations§

Source§

impl MarkerDelivery

Source

pub const fn conversation_id(self) -> ConversationId

Returns the conversation whose frontier authority minted this delivery.

Source

pub const fn participant_id(self) -> ParticipantId

Returns the marker owner.

Source

pub const fn binding_epoch(self) -> BindingEpoch

Returns the exact delivery epoch.

Source

pub const fn marker_delivery_seq(self) -> DeliverySeq

Returns the exact marker sequence.

Source§

impl MarkerDelivery

Source

pub fn delivered_progress( self, event: Event, ) -> Result<ParticipantCursorProgress, Self>

Consumes sealed marker-delivery authority and derives its exact cursor progress witness after validating the delivered event.

This debt-independent projection is for owners that persist the marker successor separately from later closure-accounting evolution. Callers cannot mint MarkerDelivery; only a validated marker drain or restore can supply this authority.

§Errors

Returns the unchanged sealed delivery unless participant, epoch, and marker sequence exactly match.

Source

pub fn delivered( self, debt: ClosureDebt, event: Event, ) -> Result<ClosureState, ClosureState>

Consumes exact final-emitter delivery and derives marker-backed PCP.

The PCP boundary is the delivered marker itself; callers cannot supply a different cursor witness.

§Errors

Returns the unchanged owed state unless participant, epoch, and marker exactly match this delivery witness.

Source

pub const fn lower_progress( self, debt: ClosureDebt, event: Event, resulting_debt: Option<ClosureDebt>, ) -> Result<ClosureState, ClosureState>

Applies a lower normal ack, projection, or compaction below the anchor, preserving exact delivery while debt remains or clearing it with debt.

§Errors

Returns the unchanged owed state when the event is not a permitted lower progress event or reaches the marker anchor.

Source

pub fn binding_fate( self, debt: ClosureDebt, event: Event, ) -> Result<ClosureState, ClosureState>

Consumes exact pre-delivery binding fate and derives Leave-only DMR.

§Errors

Returns the unchanged owed state unless fate names the exact participant and binding epoch targeted by this undelivered marker.

Source

pub const fn retarget( self, new_binding_epoch: BindingEpoch, episode_churn_used: u64, delta_cycles: u64, episode_churn_limit: u64, ) -> Result<Self, (Self, DetachedAttachRefusal)>

Retargets undelivered marker delivery after exact charged supersession.

§Errors

Returns the unchanged delivery with EpisodeChurnLimit or StaleAuthority when charged churn or the next-generation check fails.

Source

pub fn leave( self, debt: ClosureDebt, event: Event, successor: DebtCompletion, ) -> Result<ClosureState, ClosureState>

Consumes exact live Leave and installs only clear/OP/PC.

§Errors

Returns the unchanged owed state unless Leave names the exact live participant and binding epoch.

Trait Implementations§

Source§

impl Clone for MarkerDelivery

Source§

fn clone(&self) -> MarkerDelivery

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 MarkerDelivery

Source§

impl Debug for MarkerDelivery

Source§

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

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

impl Eq for MarkerDelivery

Source§

impl PartialEq for MarkerDelivery

Source§

fn eq(&self, other: &MarkerDelivery) -> 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 MarkerDelivery

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.