pub trait Handler<Input: DeserializeOwned> {
type Response;
type Error;
type Future: Future<Output = Result<Self::Response, Self::Error>>;
// Required method
fn handle(&mut self, source: String, event: Input) -> Self::Future;
}
pub trait Handler<Input: DeserializeOwned> {
type Response;
type Error;
type Future: Future<Output = Result<Self::Response, Self::Error>>;
// Required method
fn handle(&mut self, source: String, event: Input) -> Self::Future;
}