pub struct Session {
pub id: String,
pub data: RwLock<SessionData>,
pub expires_at: u64,
}Expand description
A single server-side session. Thread-safe via an interior RwLock.
Contract: never hold the data read/write guard across an
.await — it is a synchronous std::sync::RwLock, scoped to this one
session. Read what you need into locals, drop the guard, then await.
Fields§
§id: String§data: RwLock<SessionData>§expires_at: u64Implementations§
Source§impl Session
impl Session
pub fn new_empty(id: String, ttl_secs: u64) -> Arc<Self> ⓘ
pub fn from_data(id: String, data: SessionData, ttl_secs: u64) -> Arc<Self> ⓘ
pub fn id(&self) -> &str
pub fn get<T: DeserializeOwned>(&self, key: &str) -> Option<T>
pub fn set<T: Serialize>(&self, key: &str, value: T)
pub fn remove(&self, key: &str)
pub fn is_expired(&self) -> bool
pub fn data_as_json(&self) -> String
Auto Trait Implementations§
impl !Freeze for Session
impl RefUnwindSafe for Session
impl Send for Session
impl Sync for Session
impl Unpin for Session
impl UnsafeUnpin for Session
impl UnwindSafe for Session
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request