Trait gotham::middleware::NewMiddleware[][src]

pub trait NewMiddleware: Sync + RefUnwindSafe {
    type Instance: Middleware;
    fn new_middleware(&self) -> Result<Self::Instance>;
}
Expand description

A type which is used to spawn new Middleware values. When implementing a Middleware, this defines how instances of the Middleware are created.

This can be derived by Middleware that implement Clone, and will result in the following implementation:

struct MyMiddleware;

impl NewMiddleware for MyMiddleware {
    type Instance = Self;

    fn new_middleware(&self) -> anyhow::Result<Self::Instance> {
        Ok(self.clone())
    }
}

Associated Types

The type of Middleware created by the NewMiddleware.

Required methods

Create and return a new Middleware value.

Implementors

NewMiddleware trait implementation.

Implementation of NewMiddleware is required for Gotham middleware.

This will simply dereference the internal state, rather than deriving NewMiddleware which will clone the structure - should be cheaper for repeated calls.

Implementation of NewMiddleware is required for Gotham middleware.

This will simply dereference the internal state, rather than deriving NewMiddleware which will clone the structure - should be cheaper for repeated calls.

NewMiddleware trait implementation.

NewMiddleware trait implementation.

NewMiddleware trait implementation.