pub enum AttemptTokenBodyConflict {
CredentialAttach {
token: AttachAttemptToken,
conversation_id: ConversationId,
presented_participant_id: ParticipantId,
presented_generation: Generation,
presented_marker_delivery_seq: Option<DeliverySeq>,
conflict: AttemptConflict,
},
Leave {
token: LeaveAttemptToken,
conversation_id: ConversationId,
presented_participant_id: ParticipantId,
presented_generation: Generation,
},
RecordAdmission {
token: RecordAdmissionAttemptToken,
conversation_id: ConversationId,
presented_participant_id: ParticipantId,
presented_generation: Generation,
},
}Expand description
An attempt token was reused with a different canonical body.
Admits credential attach, Leave, and — under §0.15 amendment A4 — ordinary record admission.
Variants§
CredentialAttach
Credential attach conflict; operation tag is fixed to attach.
Fields
token: AttachAttemptTokenPresented attach token.
conversation_id: ConversationIdConversation from the conflicting request.
presented_participant_id: ParticipantIdPresented participant.
presented_generation: GenerationPresented generation.
presented_marker_delivery_seq: Option<DeliverySeq>Presented marker option.
conflict: AttemptConflictGeneration or marker conflict, tested in that order.
Leave
Leave conflict; only generation conflict is constructible.
Fields
token: LeaveAttemptTokenPresented Leave token.
conversation_id: ConversationIdConversation from the conflicting request.
presented_participant_id: ParticipantIdPresented participant.
presented_generation: GenerationPresented generation.
RecordAdmission
Ordinary record-admission conflict (§0.15 amendment A4).
Carries no AttemptConflict selector, in the same way the Leave
variant carries no presented_marker_delivery_seq: the committed-identity
key is the (token, canonical-payload fingerprint, verified participant)
triple, so neither Generation nor MarkerDeliverySequence is
constructible on this arm. The one conflicting axis is the canonical body
this row is named for. Only the SAME-participant arm reaches the wire;
the cross-participant arm is silent forever (register law, A4).
Fields
token: RecordAdmissionAttemptTokenPresented record-admission token.
conversation_id: ConversationIdConversation from the conflicting request.
presented_participant_id: ParticipantIdPresented participant, which is the committed identity’s own.
presented_generation: GenerationPresented generation.
Trait Implementations§
Source§impl Clone for AttemptTokenBodyConflict
impl Clone for AttemptTokenBodyConflict
Source§fn clone(&self) -> AttemptTokenBodyConflict
fn clone(&self) -> AttemptTokenBodyConflict
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more