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: ClaimFrontiersRestoreCoupled raw claim frontiers.
sequence_ledger: SequenceLedgerAggregate delivery-sequence ledger.
order_ledger: OrderLedgerAggregate transaction-order ledger.
closure: ClosureStateRestoreCurrent closure state.
Implementations§
Source§impl<EF, V, LF, D> ParticipantConversationRestore<EF, V, LF, D>
impl<EF, V, LF, D> ParticipantConversationRestore<EF, V, LF, D>
Sourcepub fn restore(
self,
) -> Result<ParticipantConversationState<EF, V, LF, D>, ConversationStateRestoreError>
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>
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>
fn clone(&self) -> ParticipantConversationRestore<EF, V, LF, D>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more