[][src]Struct gotham::middleware::state::StateMiddleware

pub struct StateMiddleware<T> where
    T: Clone + RefUnwindSafe + StateData + Sync
{ /* fields omitted */ }

Middleware binding for generic types to enable easy shared state.

This acts as nothing more than a Middleware instance which will attach a generic type to a request State, however it removes a barrier for users to Gotham who might not know the internals.

The generic types inside this struct can (and will) be cloned often, so wrap your expensive types in reference counts as needed.

Methods

impl<T> StateMiddleware<T> where
    T: Clone + RefUnwindSafe + StateData + Sync
[src]

Main implementation.

pub fn new(t: T) -> Self[src]

Creates a new middleware binding, taking ownership of the state data.

Trait Implementations

impl<T> Middleware for StateMiddleware<T> where
    T: Clone + RefUnwindSafe + StateData + Sync
[src]

Middleware trait implementation.

fn call<Chain>(self, state: State, chain: Chain) -> Box<HandlerFuture> where
    Chain: FnOnce(State) -> Box<HandlerFuture>, 
[src]

Attaches the inner generic value to the request state.

This will enable the Handler to borrow the value directly from the state.

impl<T> NewMiddleware for StateMiddleware<T> where
    T: Clone + RefUnwindSafe + StateData + Sync
[src]

NewMiddleware trait implementation.

type Instance = Self

The type of Middleware created by the NewMiddleware.

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

Clones the current middleware to a new instance.

impl<T: Clone> Clone for StateMiddleware<T> where
    T: Clone + RefUnwindSafe + StateData + Sync
[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

Auto Trait Implementations

impl<T> Unpin for StateMiddleware<T> where
    T: Unpin

impl<T> Sync for StateMiddleware<T>

impl<T> Send for StateMiddleware<T>

impl<T> RefUnwindSafe for StateMiddleware<T>

impl<T> UnwindSafe for StateMiddleware<T> where
    T: UnwindSafe

Blanket Implementations

impl<T> From<T> for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Erased for T