pub struct DatabaseSessionDriver { /* private fields */ }Expand description
Database session driver using SeaORM
Stores sessions in a sessions table with dual timeout enforcement:
- Idle timeout: expires after inactivity (based on
last_activity) - Absolute timeout: expires after creation time (based on
created_at)
Both timeouts are checked on every read() and enforced during gc().
Implementations§
Trait Implementations§
Source§impl SessionStore for DatabaseSessionDriver
impl SessionStore for DatabaseSessionDriver
Source§fn read<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<SessionData>, FrameworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<SessionData>, FrameworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Read a session by its ID Read more
Source§fn write<'life0, 'life1, 'async_trait>(
&'life0 self,
session: &'life1 SessionData,
) -> Pin<Box<dyn Future<Output = Result<(), FrameworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn write<'life0, 'life1, 'async_trait>(
&'life0 self,
session: &'life1 SessionData,
) -> Pin<Box<dyn Future<Output = Result<(), FrameworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Write a session to storage Read more
Source§fn destroy<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), FrameworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn destroy<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), FrameworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Destroy a session by its ID
Source§fn gc<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, FrameworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn gc<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, FrameworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Garbage collect expired sessions Read more
Source§fn destroy_for_user<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: i64,
except_session_id: Option<&'life1 str>,
) -> Pin<Box<dyn Future<Output = Result<u64, FrameworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn destroy_for_user<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: i64,
except_session_id: Option<&'life1 str>,
) -> Pin<Box<dyn Future<Output = Result<u64, FrameworkError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Destroy all sessions for a user, optionally keeping one session. Read more
Auto Trait Implementations§
impl Freeze for DatabaseSessionDriver
impl RefUnwindSafe for DatabaseSessionDriver
impl Send for DatabaseSessionDriver
impl Sync for DatabaseSessionDriver
impl Unpin for DatabaseSessionDriver
impl UnsafeUnpin for DatabaseSessionDriver
impl UnwindSafe for DatabaseSessionDriver
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> 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