//! Utility for writing middleware.
//! ```rust
//! use skyzen::{middleware::Middleware, BoxHttpError, Request, Response};
//! use tracing::info;
//!
//! #[derive(Clone, Default)]
//! struct LogMiddleware;
//!
//! impl Middleware for LogMiddleware {
//! type Error = BoxHttpError;
//! async fn handle<E: http_kit::Endpoint>(
//! &mut self,
//! request: &mut Request,
//! mut next: E,
//! ) -> http_kit::Result<Response, http_kit::middleware::MiddlewareError<E::Error, Self::Error>>
//! {
//! info!("request received");
//! next.respond(request)
//! .await
//! .map_err(http_kit::middleware::MiddlewareError::Endpoint)
//! }
//! }
//! ```
pub use ;
pub use ErrorHandlingMiddleware;
pub use Middleware;