pub struct SessionStore { /* private fields */ }Expand description
Session store - manages all sessions for users
Implementations§
Source§impl SessionStore
impl SessionStore
pub fn new() -> Self
pub fn with_config(max_completed_per_user: usize, timeout_secs: i64) -> Self
Sourcepub fn start_session(&self, user_id: &str) -> SessionId
pub fn start_session(&self, user_id: &str) -> SessionId
Start a new session for a user
Sourcepub fn start_session_with_id(
&self,
user_id: &str,
session_id: SessionId,
) -> SessionId
pub fn start_session_with_id( &self, user_id: &str, session_id: SessionId, ) -> SessionId
Start a session with a specific ID (for resumption)
Sourcepub fn get_or_create_session(&self, user_id: &str) -> SessionId
pub fn get_or_create_session(&self, user_id: &str) -> SessionId
Get or create active session for user
Sourcepub fn add_event(&self, session_id: &SessionId, event: SessionEvent) -> bool
pub fn add_event(&self, session_id: &SessionId, event: SessionEvent) -> bool
Add event to a session
Sourcepub fn add_event_to_user(
&self,
user_id: &str,
event: SessionEvent,
) -> Option<SessionId>
pub fn add_event_to_user( &self, user_id: &str, event: SessionEvent, ) -> Option<SessionId>
Add event to user’s active session
Sourcepub fn end_session(
&self,
session_id: &SessionId,
reason: &str,
) -> Option<Session>
pub fn end_session( &self, session_id: &SessionId, reason: &str, ) -> Option<Session>
End a session
Sourcepub fn get_session(&self, session_id: &SessionId) -> Option<Session>
pub fn get_session(&self, session_id: &SessionId) -> Option<Session>
Get session by ID
Sourcepub fn get_user_sessions(
&self,
user_id: &str,
limit: usize,
) -> Vec<SessionSummary>
pub fn get_user_sessions( &self, user_id: &str, limit: usize, ) -> Vec<SessionSummary>
Get all sessions for a user
Sourcepub fn get_active_session(&self, user_id: &str) -> Option<Session>
pub fn get_active_session(&self, user_id: &str) -> Option<Session>
Get active session for user
Sourcepub fn cleanup_stale_sessions(&self) -> usize
pub fn cleanup_stale_sessions(&self) -> usize
Cleanup stale sessions
Sourcepub fn stats(&self) -> SessionStoreStats
pub fn stats(&self) -> SessionStoreStats
Get store statistics
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for SessionStore
impl !RefUnwindSafe for SessionStore
impl Send for SessionStore
impl Sync for SessionStore
impl Unpin for SessionStore
impl UnsafeUnpin for SessionStore
impl UnwindSafe for SessionStore
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more