#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum CapabilityLimitField {
AttachReceiptTtlMs,
ReceiptProvenanceTtlMs,
MaxLiveAttachReceiptsServer,
MaxLiveAttachReceiptsPerParticipant,
MaxReceiptProvenanceServer,
MaxReceiptProvenancePerConversation,
MaxReceiptProvenancePerParticipant,
MaxRetiredIdentitySlotsServer,
MaxRetiredIdentitySlotsPerConversation,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum ParticipantCapabilityConfigurationInvalid {
NonzeroLimit {
field: CapabilityLimitField,
actual: u64,
required_minimum: u64,
},
ReceiptDeadlineOrder {
attach_receipt_ttl_ms: u64,
receipt_provenance_ttl_ms: u64,
required_minimum_provenance_ttl_ms: u64,
},
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum ParticipantRetentionCapacityInvalid {
EntryCapacity {
required: u128,
configured: u64,
},
ByteCapacity {
required: u128,
configured: u64,
},
EpisodeChurnLimit {
configured: u64,
required_minimum: u64,
required_maximum: u64,
},
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum ConnectionIncarnationExhausted {
ServerIncarnation,
ConnectionOrdinal {
attempted_server_incarnation: u64,
},
}
impl ConnectionIncarnationExhausted {
#[must_use]
pub const fn current_value(self) -> u64 {
let _ = self;
u64::MAX
}
#[must_use]
pub const fn attempted_server_incarnation(self) -> Option<u64> {
match self {
Self::ServerIncarnation => None,
Self::ConnectionOrdinal {
attempted_server_incarnation,
} => Some(attempted_server_incarnation),
}
}
}