pub type DynMiddleware<Metadata> = Box<dyn for<'a> Fn(&'a mut Request<Body>, Metadata) -> BoxFuture<'a, Result<Result<DynMiddlewareStage2, Response<Body>>, HttpError>> + Send + Sync>;