Struct gotham::middleware::session::SessionData

source ·
pub struct SessionData<T>
where T: Default + Serialize + for<'de> Deserialize<'de> + Send + 'static,
{ /* private fields */ }
Expand description

The wrapping type for application session data.

The application will receive a SessionData<T> via the State container, where T is the session type given to NewSessionMiddleware.

§Examples

#[derive(Default, Deserialize, Serialize)]
struct MySessionType {
    items: Vec<String>,
}

fn my_handler(state: State) -> (State, Response<Body>) {
    // The `Router` has a `NewSessionMiddleware<_, MySessionType>` in a pipeline which is
    // active for this handler.
    let body = {
        let session = SessionData::<MySessionType>::borrow_from(&state);
        format!("{:?}", session.items)
    };

    let response = create_response(&state,
                                   StatusCode::OK,
                                   mime::TEXT_PLAIN,
                                   body);

    (state, response)
}

Implementations§

source§

impl<T> SessionData<T>
where T: Default + Serialize + for<'de> Deserialize<'de> + Send + 'static,

source

pub fn discard( self, state: &mut State ) -> Pin<Box<dyn Future<Output = Result<(), SessionError>> + Send>>

Discards the session, invalidating it for future use and removing the data from the Backend.

Trait Implementations§

source§

impl<T> Deref for SessionData<T>
where T: Default + Serialize + for<'de> Deserialize<'de> + Send + 'static,

§

type Target = T

The resulting type after dereferencing.
source§

fn deref(&self) -> &T

Dereferences the value.
source§

impl<T> DerefMut for SessionData<T>
where T: Default + Serialize + for<'de> Deserialize<'de> + Send + 'static,

source§

fn deref_mut(&mut self) -> &mut T

Mutably dereferences the value.
source§

impl<T> StateData for SessionData<T>
where T: Default + Serialize + for<'de> Deserialize<'de> + Send + 'static,

Auto Trait Implementations§

§

impl<T> Freeze for SessionData<T>
where T: Freeze,

§

impl<T> !RefUnwindSafe for SessionData<T>

§

impl<T> Send for SessionData<T>

§

impl<T> !Sync for SessionData<T>

§

impl<T> Unpin for SessionData<T>
where T: Unpin,

§

impl<T> !UnwindSafe for SessionData<T>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromState for T
where T: StateData,

source§

fn try_borrow_from(state: &State) -> Option<&T>

Tries to borrow a value from the State storage. Read more
source§

fn borrow_from(state: &State) -> &T

Borrows a value from the State storage. Read more
source§

fn try_borrow_mut_from(state: &mut State) -> Option<&mut T>

Tries to mutably borrow a value from the State storage. Read more
source§

fn borrow_mut_from(state: &mut State) -> &mut T

Mutably borrows a value from the State storage. Read more
source§

fn try_take_from(state: &mut State) -> Option<T>

Tries to move a value out of the State storage and return ownership. Read more
source§

fn take_from(state: &mut State) -> T

Moves a value out of the State storage and returns ownership. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> Formattable for T
where T: Deref, <T as Deref>::Target: Formattable,