Skip to main content

Middleware

Trait Middleware 

Source
pub trait Middleware:
    Send
    + Sync
    + 'static {
    // Required method
    fn handle<'life0, 'async_trait>(
        &'life0 self,
        req: Request,
        next: Next,
    ) -> Pin<Box<dyn Future<Output = Result<Response>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

Middleware trait

Required Methods§

Source

fn handle<'life0, 'async_trait>( &'life0 self, req: Request, next: Next, ) -> Pin<Box<dyn Future<Output = Result<Response>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<M: Middleware + ?Sized> Middleware for Arc<M>

Share one middleware instance between several registrations, e.g. a RateLimiter whose budget spans multiple groups

Source§

fn handle<'life0, 'async_trait>( &'life0 self, req: Request, next: Next, ) -> Pin<Box<dyn Future<Output = Result<Response>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Implementors§

Source§

impl Middleware for AccessLog

Source§

impl Middleware for Compression

Source§

impl Middleware for Csrf

Source§

impl Middleware for ETags

Source§

impl Middleware for JwtAuth

Source§

impl Middleware for Metrics

Source§

impl Middleware for RateLimiter

Source§

impl Middleware for RequestIdLayer

Source§

impl Middleware for SessionLayer

Source§

impl<F, Fut> Middleware for F
where F: Fn(Request, Next) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Response>> + Send + 'static,

Implement Middleware for async functions