1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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_all(&self, notify: Option<tokio::sync::oneshot::Sender<()>>);
    async fn release(self);
}