1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
use async_trait::async_trait;

#[async_trait]
pub trait CompletionHandler {
    type Message;
    type CompletedEvent;

    async fn mark_complete(&self, msg: Self::Message, completed_event: Self::CompletedEvent);
    async fn ack_message(&self, msg: Self::Message);
    async fn ack_all(&self, notify: Option<tokio::sync::oneshot::Sender<()>>);
}