Skip to main content

Session

Struct Session 

Source
pub struct Session(/* private fields */);
Available on crate feature session only.
Expand description

The primary interface to access and modify session state.

Session is an extractor—you can specify it as an input type for your request handlers and it will be automatically extracted from the incoming request.

You can also retrieve a Session object from an HttpRequest or a ServiceRequest using SessionExt.

Implementations§

Source§

impl Session

Source

pub fn get<T: DeserializeOwned>(&self, key: &str) -> Result<Option<T>>

Get a value from the session.

It returns an error if it fails to deserialize as T the JSON value associated with key.

Source

pub fn contains_key(&self, key: &str) -> bool

Returns true if the session contains a value for the specified key.

Source

pub fn entries(&self) -> Ref<'_, Map<String, Value>>

Get all raw key-value data from the session.

Note that values are JSON values.

Source

pub fn status(&self) -> SessionStatus

Returns session status.

Source

pub fn insert<T: Serialize>( &self, key: impl Into<String>, value: T, ) -> Result<()>

Inserts a key-value pair into the session.

Any serializable value can be used and will be encoded as JSON in session data, hence why only a reference to the value is taken.

§Errors

Returns an error if JSON serialization of value fails.

Source

pub fn update<T: Serialize + DeserializeOwned, F>( &self, key: impl Into<String>, updater: F, ) -> Result<()>
where F: FnOnce(T) -> T,

Updates a key-value pair into the session.

If the key exists then update it to the new value and place it back in. If the key does not exist it will not be updated.

Any serializable value can be used and will be encoded as JSON in the session data, hence why only a reference to the value is taken.

§Errors

Returns an error if JSON serialization of the value fails.

Source

pub fn update_or<T: Serialize + DeserializeOwned, F>( &self, key: &str, default_value: T, updater: F, ) -> Result<()>
where F: FnOnce(T) -> T,

Updates a key-value pair into the session, or inserts a default value.

If the key exists then update it to the new value and place it back in. If the key does not exist the default value will be inserted instead.

Any serializable value can be used and will be encoded as JSON in session data, hence why only a reference to the value is taken.

§Errors

Returns error if JSON serialization of a value fails.

Source

pub fn remove(&self, key: &str) -> Option<Value>

Remove value from the session.

If present, the JSON value is returned.

Source

pub fn remove_as<T: DeserializeOwned>( &self, key: &str, ) -> Option<Result<T, Value>>

Remove value from the session and deserialize.

Returns None if key was not present in session. Returns T if deserialization succeeds, otherwise returns the raw JSON value.

Source

pub fn clear(&self)

Clear the session.

Source

pub fn purge(&self)

Removes session both client and server side.

Source

pub fn renew(&self)

Renews the session key, assigning existing session state to new key.

Trait Implementations§

Source§

impl Clone for Session

Source§

fn clone(&self) -> Session

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl FromRequest for Session

Extractor implementation for Sessions.

Source§

type Error = Error

The associated error which can be returned.
Source§

type Future = Ready<Result<Session, Error>>

Future that resolves to a Self. Read more
Source§

fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future

Create a Self from request parts asynchronously.
Source§

fn extract(req: &HttpRequest) -> Self::Future

Create a Self from request head asynchronously. Read more

Auto Trait Implementations§

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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>,

Source§

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