pub struct SqliteOperatorSessionStore { /* private fields */ }Expand description
SQLite-backed persistent OperatorSessionStore.
Open with SqliteOperatorSessionStore::open (file path) or
SqliteOperatorSessionStore::open_in_memory (tests). Both return the
store plus an AsyncIsleDriver the caller must shutdown().await
when done — same contract as every sibling sqlite store.
Implementations§
Source§impl SqliteOperatorSessionStore
impl SqliteOperatorSessionStore
Sourcepub async fn open(
path: impl AsRef<Path>,
) -> Result<(Self, AsyncIsleDriver), OperatorSessionStoreError>
pub async fn open( path: impl AsRef<Path>, ) -> Result<(Self, AsyncIsleDriver), OperatorSessionStoreError>
Open (or create) a SQLite database file and run the schema setup.
Also purges a pre-release plaintext-token table
([purge_legacy_plaintext_table]) and restricts the file to 0600
on unix ([harden_file_permissions]).
Sourcepub async fn open_in_memory() -> Result<(Self, AsyncIsleDriver), OperatorSessionStoreError>
pub async fn open_in_memory() -> Result<(Self, AsyncIsleDriver), OperatorSessionStoreError>
Open an ephemeral in-memory database (tests, doctests).
Trait Implementations§
Source§impl OperatorSessionStore for SqliteOperatorSessionStore
impl OperatorSessionStore for SqliteOperatorSessionStore
Source§fn put<'life0, 'async_trait>(
&'life0 self,
record: OperatorSessionRecord,
) -> Pin<Box<dyn Future<Output = Result<(), OperatorSessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn put<'life0, 'async_trait>(
&'life0 self,
record: OperatorSessionRecord,
) -> Pin<Box<dyn Future<Output = Result<(), OperatorSessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Insert or replace the row for
record.sid. Upsert semantics: sids
are freshly minted so a same-sid overwrite only happens on a
deliberate re-put of the same session.Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
sid: &'life1 SessionId,
) -> Pin<Box<dyn Future<Output = Result<(), OperatorSessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
sid: &'life1 SessionId,
) -> Pin<Box<dyn Future<Output = Result<(), OperatorSessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete the row for
sid. NotFound when no such row exists.Source§fn list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<OperatorSessionRecord>, OperatorSessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<OperatorSessionRecord>, OperatorSessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List the sessions this store can decode, ascending by
joined_at_secs (mint order, stable for deterministic rehydration). Read moreAuto Trait Implementations§
impl Freeze for SqliteOperatorSessionStore
impl RefUnwindSafe for SqliteOperatorSessionStore
impl Send for SqliteOperatorSessionStore
impl Sync for SqliteOperatorSessionStore
impl Unpin for SqliteOperatorSessionStore
impl UnsafeUnpin for SqliteOperatorSessionStore
impl UnwindSafe for SqliteOperatorSessionStore
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> 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