use crate::wire::{ConversationId, Generation, ParticipantId};
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct SdkParticipantRequestTooLarge {
pub conversation_id: ConversationId,
pub encoded_bytes: u64,
pub limit: u64,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum SdkObserverParkCapacityExceeded {
PerConversationRows {
conversation_id: ConversationId,
limit: u64,
occupied: u64,
requested: u64,
},
PerConversationBytes {
conversation_id: ConversationId,
limit: u64,
occupied: u64,
requested: u64,
},
SdkWideConversations {
conversation_id: ConversationId,
limit: u64,
occupied: u64,
requested: u64,
},
SdkWideRows {
conversation_id: ConversationId,
limit: u64,
occupied: u64,
requested: u64,
},
SdkWideBytes {
conversation_id: ConversationId,
limit: u64,
occupied: u64,
requested: u64,
},
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum ParkOrderCounter {
ParkOrder,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct SdkParkOrderExhausted {
conversation_id: ConversationId,
}
impl SdkParkOrderExhausted {
#[must_use]
pub const fn new(conversation_id: ConversationId) -> Self {
Self { conversation_id }
}
#[must_use]
pub const fn conversation_id(self) -> ConversationId {
self.conversation_id
}
#[must_use]
pub const fn counter(self) -> ParkOrderCounter {
let _ = self;
ParkOrderCounter::ParkOrder
}
#[must_use]
pub const fn value(self) -> u64 {
let _ = self;
u64::MAX
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum RecordAdmissionOperation {
OrdinaryRecordAdmission,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct RecordAdmissionUnknown {
pub conversation_id: ConversationId,
pub participant_id: ParticipantId,
pub capability_generation: Generation,
pub operation: RecordAdmissionOperation,
pub park_order: u64,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct CredentialRecoveryLost {
pub conversation_id: ConversationId,
pub participant_id: ParticipantId,
pub last_known_generation: Generation,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum ReconnectState {
Parked,
PermitOutstanding,
AttemptInProgress,
Online,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum ReconnectRequiredEvent {
TransportFate,
OnlineTransition,
ExplicitCallerAction,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum ReconnectDelayResult {
ReconnectArmed {
event: ReconnectRequiredEvent,
},
ReconnectNotArmed {
state: ReconnectState,
required_event: ReconnectRequiredEvent,
},
}