pub struct ContinuitySessionStoreAdapter { /* private fields */ }Expand description
Adapts a ContinuityStore to the Meerkat SessionStore interface.
On the external-authoritative path, this is the session persistence layer. No separate local SQLite is created under scratch_dir — the ContinuityStore is the single authoritative session truth.
The adapter maintains a session→identity registry populated by the runtime during restore/activate. This maps SessionId to the owning identity’s continuity parameters (identity, generation, fencing_token).
Implementations§
Source§impl ContinuitySessionStoreAdapter
impl ContinuitySessionStoreAdapter
pub fn new(store: Arc<dyn ContinuityStore>) -> Self
Trait Implementations§
Source§impl SessionStore for ContinuitySessionStoreAdapter
impl SessionStore for ContinuitySessionStoreAdapter
Source§fn save<'life0, 'life1, 'async_trait>(
&'life0 self,
session: &'life1 Session,
) -> Pin<Box<dyn Future<Output = Result<(), SessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn save<'life0, 'life1, 'async_trait>(
&'life0 self,
session: &'life1 Session,
) -> Pin<Box<dyn Future<Output = Result<(), SessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Save a session (create or extend). Read more
Source§fn save_transcript_rewrite<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session: &'life1 Session,
commit: &'life2 TranscriptRewriteCommit,
) -> Pin<Box<dyn Future<Output = Result<(), SessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn save_transcript_rewrite<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session: &'life1 Session,
commit: &'life2 TranscriptRewriteCommit,
) -> Pin<Box<dyn Future<Output = Result<(), SessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Save a same-SessionId transcript rewrite. Read more
Save a compatibility projection after a separate authority has already
committed the session snapshot. Read more
Save an authoritative projection only if the persisted row is still the
revision that the caller already validated.
Source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 SessionId,
) -> Pin<Box<dyn Future<Output = Result<Option<Session>, SessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 SessionId,
) -> Pin<Box<dyn Future<Output = Result<Option<Session>, SessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Load a session by ID.
Source§fn list<'life0, 'async_trait>(
&'life0 self,
_filter: SessionFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<SessionMeta>, SessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list<'life0, 'async_trait>(
&'life0 self,
_filter: SessionFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<SessionMeta>, SessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List sessions matching filter.
Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 SessionId,
) -> Pin<Box<dyn Future<Output = Result<(), SessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 SessionId,
) -> Pin<Box<dyn Future<Output = Result<(), SessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete a session.
Source§fn delete_if_current_revision<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 SessionId,
expected_current_revision: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<bool, SessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn delete_if_current_revision<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 SessionId,
expected_current_revision: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<bool, SessionStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Delete a compatibility projection only if it is still the revision that
the caller already validated as unsafe to expose.
Auto Trait Implementations§
impl !Freeze for ContinuitySessionStoreAdapter
impl !RefUnwindSafe for ContinuitySessionStoreAdapter
impl !UnwindSafe for ContinuitySessionStoreAdapter
impl Send for ContinuitySessionStoreAdapter
impl Sync for ContinuitySessionStoreAdapter
impl Unpin for ContinuitySessionStoreAdapter
impl UnsafeUnpin for ContinuitySessionStoreAdapter
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<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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