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, Serialize, Deserialize)]
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)
}