Skip to main content

ParticipantConversationRestore

Struct ParticipantConversationRestore 

Source
pub struct ParticipantConversationRestore<EF, V, LF, D> {
    pub participants: Vec<ParticipantLifecycleRestore<EF, V, LF, D>>,
    pub frontiers: ClaimFrontiersRestore,
    pub sequence_ledger: SequenceLedger,
    pub order_ledger: OrderLedger,
    pub closure: ClosureStateRestore,
}
Expand description

Complete raw participant-conversation snapshot for public cold restore.

Every field is inert storage data. The only consumer is Self::restore, which validates the whole snapshot as one unit: participant capsules first, then the conversation history derived from those exact restored participants (never an empty history), then frontiers and the closure edge against that owned history. Components restored from different snapshots are not independently combinable — ParticipantConversationState has no public constructor, restored binding origins and marker-record authorities are minted only inside this joint validation, and mixing capsules from different histories fails the frontier-projection and provenance checks. A valid producer proof therefore cannot be spliced into executable authority it never had.

Fields§

§participants: Vec<ParticipantLifecycleRestore<EF, V, LF, D>>

Complete live and retired participant states.

§frontiers: ClaimFrontiersRestore

Coupled raw claim frontiers.

§sequence_ledger: SequenceLedger

Aggregate delivery-sequence ledger.

§order_ledger: OrderLedger

Aggregate transaction-order ledger.

§closure: ClosureStateRestore

Current closure state.

Implementations§

Source§

impl<EF, V, LF, D> ParticipantConversationRestore<EF, V, LF, D>

Source

pub fn restore( self, ) -> Result<ParticipantConversationState<EF, V, LF, D>, ConversationStateRestoreError>

Restores participant lifecycle, sealed history/origins, frontiers, and closure as one total conversation snapshot.

The conversation history backing frontier and closure validation is derived exclusively from the participants restored in this same call — never from an empty placeholder — so raw causal rows, binding origins, and marker ownership must be proven by the exact membership and tombstone capsules supplied alongside them.

§Errors

Returns a storage error when participant snapshots or binding origins disagree, and a claim-frontier error when the exact participant-derived history does not back raw causal rows and marker ownership.

Trait Implementations§

Source§

impl<EF: Clone, V: Clone, LF: Clone, D: Clone> Clone for ParticipantConversationRestore<EF, V, LF, D>

Source§

fn clone(&self) -> ParticipantConversationRestore<EF, V, LF, D>

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<EF: Debug, V: Debug, LF: Debug, D: Debug> Debug for ParticipantConversationRestore<EF, V, LF, D>

Source§

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

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

impl<EF: Eq, V: Eq, LF: Eq, D: Eq> Eq for ParticipantConversationRestore<EF, V, LF, D>

Source§

impl<EF: PartialEq, V: PartialEq, LF: PartialEq, D: PartialEq> PartialEq for ParticipantConversationRestore<EF, V, LF, D>

Source§

fn eq(&self, other: &ParticipantConversationRestore<EF, V, LF, D>) -> bool

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

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

Inequality operator !=. Read more
Source§

impl<EF: PartialEq, V: PartialEq, LF: PartialEq, D: PartialEq> StructuralPartialEq for ParticipantConversationRestore<EF, V, LF, D>

Auto Trait Implementations§

§

impl<EF, V, LF, D> Freeze for ParticipantConversationRestore<EF, V, LF, D>

§

impl<EF, V, LF, D> RefUnwindSafe for ParticipantConversationRestore<EF, V, LF, D>

§

impl<EF, V, LF, D> Send for ParticipantConversationRestore<EF, V, LF, D>
where D: Send, V: Send, EF: Send, LF: Send,

§

impl<EF, V, LF, D> Sync for ParticipantConversationRestore<EF, V, LF, D>
where D: Sync, V: Sync, EF: Sync, LF: Sync,

§

impl<EF, V, LF, D> Unpin for ParticipantConversationRestore<EF, V, LF, D>
where D: Unpin, V: Unpin, EF: Unpin, LF: Unpin,

§

impl<EF, V, LF, D> UnsafeUnpin for ParticipantConversationRestore<EF, V, LF, D>

§

impl<EF, V, LF, D> UnwindSafe for ParticipantConversationRestore<EF, V, LF, D>
where D: UnwindSafe, V: UnwindSafe, EF: UnwindSafe, LF: UnwindSafe,

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.