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
type Instance: Middleware
type Instance: Middleware
The type of Middleware
created by the NewMiddleware
.
Required methods
fn new_middleware(&self) -> Result<Self::Instance>
fn new_middleware(&self) -> Result<Self::Instance>
Create and return a new Middleware
value.
Implementors
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.
type Instance = Self
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.
type Instance = Self
impl<B, T> NewMiddleware for NewSessionMiddleware<B, T> where
B: NewBackend,
T: Default + Serialize + for<'de> Deserialize<'de> + Send + 'static,
impl<B, T> NewMiddleware for NewSessionMiddleware<B, T> where
B: NewBackend,
T: Default + Serialize + for<'de> Deserialize<'de> + Send + 'static,
type Instance = SessionMiddleware<B::Instance, T>
impl<T> NewMiddleware for StateMiddleware<T> where
T: Clone + RefUnwindSafe + StateData + Sync,
impl<T> NewMiddleware for StateMiddleware<T> where
T: Clone + RefUnwindSafe + StateData + Sync,
NewMiddleware
trait implementation.