use async_trait::async_trait;
use std::fmt::Debug;
#[async_trait]
pub trait CxAwareAsyncMediatorInternalHandle<Cx, Ev: Debug> {
#[allow(missing_docs)]
async fn send<Req>(&self, req: Req)
where
Req: Send,
Self: CxAwareAsyncRequestHandler<Cx, Req, Ev>;
}
#[async_trait]
pub trait CxAwareAsyncRequestHandler<Cx, Req, Res> {
#[allow(missing_docs)]
async fn handle(&self, req: Req, cx: &Cx);
}
pub trait CxAwareMediatorBuilderInterface<M, Cx, Ev> {
#[allow(missing_docs)]
fn add_context(self, cx: Cx) -> Self
where
Ev: Debug;
}