Trait gotham::middleware::NewMiddleware

source ·
pub trait NewMiddleware: Sync + RefUnwindSafe {
    type Instance: Middleware;

    // Required method
    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())
    }
}

Required Associated Types§

source

type Instance: Middleware

The type of Middleware created by the NewMiddleware.

Required Methods§

source

fn new_middleware(&self) -> Result<Self::Instance>

Create and return a new Middleware value.

Implementors§

source§

impl NewMiddleware for CookieParser

NewMiddleware trait implementation.

source§

impl NewMiddleware for RequestLogger

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.

source§

impl NewMiddleware for SimpleLogger

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.

source§

impl NewMiddleware for SecurityMiddleware

NewMiddleware trait implementation.

source§

impl NewMiddleware for RequestTimer

NewMiddleware trait implementation.

source§

impl<B, T> NewMiddleware for NewSessionMiddleware<B, T>
where B: NewBackend, T: Default + Serialize + for<'de> Deserialize<'de> + Send + 'static,

source§

impl<T> NewMiddleware for StateMiddleware<T>

NewMiddleware trait implementation.