Struct actix_session::Session
source · [−]pub struct Session(_);
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.
use actix_session::Session;
async fn index(session: Session) -> actix_web::Result<&'static str> {
// access session data
if let Some(count) = session.get::<i32>("counter")? {
session.insert("counter", count + 1)?;
} else {
session.insert("counter", 1)?;
}
Ok("Welcome!")
}
You can also retrieve a Session
object from an HttpRequest
or a ServiceRequest
using
SessionExt
.
Implementations
sourceimpl Session
impl Session
sourcepub fn get<T: DeserializeOwned>(
&self,
key: &str
) -> Result<Option<T>, SessionGetError>
pub fn get<T: DeserializeOwned>(
&self,
key: &str
) -> Result<Option<T>, SessionGetError>
Get a value
from the session.
It returns an error if it fails to deserialize as T
the JSON value associated with key
.
sourcepub fn entries(&self) -> Ref<'_, HashMap<String, String>>
pub fn entries(&self) -> Ref<'_, HashMap<String, String>>
Get all raw key-value data from the session.
Note that values are JSON encoded.
sourcepub fn status(&self) -> SessionStatus
pub fn status(&self) -> SessionStatus
Returns session status.
sourcepub fn insert<T: Serialize>(
&self,
key: impl Into<String>,
value: T
) -> Result<(), SessionInsertError>
pub fn insert<T: Serialize>(
&self,
key: impl Into<String>,
value: T
) -> Result<(), SessionInsertError>
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.
It returns an error if it fails to serialize value
to JSON.
sourcepub fn remove(&self, key: &str) -> Option<String>
pub fn remove(&self, key: &str) -> Option<String>
Remove value from the session.
If present, the JSON encoded value is returned.
Trait Implementations
sourceimpl FromRequest for Session
impl FromRequest for Session
Extractor implementation for Session
s.
Examples
use actix_session::Session;
#[get("/")]
async fn index(session: Session) -> Result<impl Responder> {
// access session data
if let Some(count) = session.get::<i32>("counter")? {
session.insert("counter", count + 1)?;
} else {
session.insert("counter", 1)?;
}
let count = session.get::<i32>("counter")?.unwrap();
Ok(format!("Counter: {}", count))
}
type Error = Error
type Error = Error
The associated error which can be returned.
sourcefn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future
fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future
Create a Self
from request parts asynchronously.
Auto Trait Implementations
impl !RefUnwindSafe for Session
impl !Send for Session
impl !Sync for Session
impl Unpin for Session
impl !UnwindSafe for Session
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more