pub struct ParticipantConversationState<EF, V, LF, D> { /* private fields */ }Expand description
Fully validated whole-conversation participant state.
This state can execute restored edge authority. It has no public
constructor and its fields are private: the sole producer is
ParticipantConversationRestore::restore, so possession of this value
proves the complete snapshot validated jointly.
ⓘ
use liminal_protocol::lifecycle::ParticipantConversationState;
fn fabricate() {
let _ = ParticipantConversationState::<[u8; 4], [u8; 4], [u8; 4], [u8; 4]> {
participants: unreachable!(),
frontiers: unreachable!(),
closure: unreachable!(),
};
}Implementations§
Source§impl<EF, V, LF, D> ParticipantConversationState<EF, V, LF, D>
impl<EF, V, LF, D> ParticipantConversationState<EF, V, LF, D>
Sourcepub fn participants(&self) -> &[RestoredParticipantLifecycle<EF, V, LF, D>]
pub fn participants(&self) -> &[RestoredParticipantLifecycle<EF, V, LF, D>]
Borrows every restored participant and tombstone.
Sourcepub const fn frontiers(&self) -> &ClaimFrontiers
pub const fn frontiers(&self) -> &ClaimFrontiers
Borrows the finalized claim frontiers.
Sourcepub const fn closure(&self) -> ClosureState
pub const fn closure(&self) -> ClosureState
Returns the exact closure state.
Sourcepub fn into_parts(
self,
) -> (Vec<RestoredParticipantLifecycle<EF, V, LF, D>>, ClaimFrontiers, ClosureState)
pub fn into_parts( self, ) -> (Vec<RestoredParticipantLifecycle<EF, V, LF, D>>, ClaimFrontiers, ClosureState)
Consumes the validated state into its participant, frontier, and closure components.
Decomposition is one-way: no public path recombines components into this validated form, so values split here cannot be spliced with components restored from another snapshot.
Trait Implementations§
Source§impl<EF: Debug, V: Debug, LF: Debug, D: Debug> Debug for ParticipantConversationState<EF, V, LF, D>
impl<EF: Debug, V: Debug, LF: Debug, D: Debug> Debug for ParticipantConversationState<EF, V, LF, D>
impl<EF: Eq, V: Eq, LF: Eq, D: Eq> Eq for ParticipantConversationState<EF, V, LF, D>
Source§impl<EF: PartialEq, V: PartialEq, LF: PartialEq, D: PartialEq> PartialEq for ParticipantConversationState<EF, V, LF, D>
impl<EF: PartialEq, V: PartialEq, LF: PartialEq, D: PartialEq> PartialEq for ParticipantConversationState<EF, V, LF, D>
impl<EF: PartialEq, V: PartialEq, LF: PartialEq, D: PartialEq> StructuralPartialEq for ParticipantConversationState<EF, V, LF, D>
Auto Trait Implementations§
impl<EF, V, LF, D> Freeze for ParticipantConversationState<EF, V, LF, D>
impl<EF, V, LF, D> RefUnwindSafe for ParticipantConversationState<EF, V, LF, D>
impl<EF, V, LF, D> Send for ParticipantConversationState<EF, V, LF, D>
impl<EF, V, LF, D> Sync for ParticipantConversationState<EF, V, LF, D>
impl<EF, V, LF, D> Unpin for ParticipantConversationState<EF, V, LF, D>
impl<EF, V, LF, D> UnsafeUnpin for ParticipantConversationState<EF, V, LF, D>
impl<EF, V, LF, D> UnwindSafe for ParticipantConversationState<EF, V, LF, D>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more