1use async_trait::async_trait; 2 3#[async_trait] 4pub trait EventEmitter { 5 type Event; 6 type Error: std::fmt::Debug; 7 async fn emit_event(&mut self, completed_events: Vec<Self::Event>) -> Result<(), Self::Error>; 8}