pub struct PostgresSessionStorage { /* private fields */ }Expand description
PostgreSQL-backed SessionStorage implementation.
Note: the sessions table stores ids as UUID, so Session::id must be
a valid UUID string - other values fail at runtime with a cast error.
Sessions are saved with last-write-wins semantics: there is no optimistic locking, so avoid running the same session concurrently from multiple workers (the later save silently overwrites the earlier one).
Implementations§
Source§impl PostgresSessionStorage
impl PostgresSessionStorage
Sourcepub async fn connect(database_url: &str) -> Result<Self>
pub async fn connect(database_url: &str) -> Result<Self>
Connect with default pool settings (5 max connections) and run the
schema migration. Use PostgresSessionStorage::with_pool for custom
pool configuration.
Trait Implementations§
Source§impl SessionStorage for PostgresSessionStorage
impl SessionStorage for PostgresSessionStorage
fn save<'life0, 'async_trait>(
&'life0 self,
session: Session,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Session>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Auto Trait Implementations§
impl !RefUnwindSafe for PostgresSessionStorage
impl !UnwindSafe for PostgresSessionStorage
impl Freeze for PostgresSessionStorage
impl Send for PostgresSessionStorage
impl Sync for PostgresSessionStorage
impl Unpin for PostgresSessionStorage
impl UnsafeUnpin for PostgresSessionStorage
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