use serde::{Deserialize, Serialize};
#[derive(
Debug, Clone, Serialize, Deserialize, zerompk::ToMessagePack, zerompk::FromMessagePack,
)]
pub struct ResyncRequestMsg {
pub reason: ResyncReason,
pub from_mutation_id: u64,
pub collection: String,
}
#[derive(
Debug, Clone, Serialize, Deserialize, zerompk::ToMessagePack, zerompk::FromMessagePack,
)]
pub enum ResyncReason {
SequenceGap {
expected: u64,
received: u64,
},
ChecksumMismatch {
mutation_id: u64,
},
CorruptedState,
}
#[derive(
Debug, Clone, Serialize, Deserialize, zerompk::ToMessagePack, zerompk::FromMessagePack,
)]
pub struct ThrottleMsg {
pub throttle: bool,
pub queue_depth: u64,
pub suggested_rate: u64,
}