pub trait Middleware: Send + Sync {
// Required methods
fn call<'async_trait>(
self: Box<Self>,
request: Request,
next: Next,
) -> Pin<Box<dyn Future<Output = Response> + Send + 'async_trait>>
where Self: 'async_trait;
fn clone_box(&self) -> Box<dyn Middleware>;
}