use crate::errors::PublisherError;
use crate::traits::{BatchCommitFunc, CommitFunc};
use crate::CanonicalMessage;
#[derive(Debug)]
pub enum Handled {
Ack,
Publish(CanonicalMessage),
}
#[derive(Debug)]
pub enum Sent {
Ack,
Response(CanonicalMessage),
}
#[derive(Debug)]
pub enum SentBatch {
Ack,
Partial {
responses: Option<Vec<CanonicalMessage>>,
failed: Vec<(CanonicalMessage, PublisherError)>,
},
}
pub struct Received {
pub message: CanonicalMessage,
pub commit: CommitFunc,
}
impl std::fmt::Debug for Received {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("Received")
.field("message", &self.message)
.field("commit", &"<CommitFunc>")
.finish()
}
}
pub struct ReceivedBatch {
pub messages: Vec<CanonicalMessage>,
pub commit: BatchCommitFunc,
}
impl std::fmt::Debug for ReceivedBatch {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("ReceivedBatch")
.field("messages", &self.messages)
.field("commit", &"<BatchCommitFunc>")
.finish()
}
}