pub struct InMemorySessionStoreFactory { /* private fields */ }Expand description
Session-id-keyed factory: the same in-memory store is returned for a given session across opens (so a worker rebuild sees the session’s state), and a fresh store is created on first use. Inline durability tier.
Implementations§
Trait Implementations§
Source§impl Clone for InMemorySessionStoreFactory
impl Clone for InMemorySessionStoreFactory
Source§fn clone(&self) -> InMemorySessionStoreFactory
fn clone(&self) -> InMemorySessionStoreFactory
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl SessionStoreFactory for InMemorySessionStoreFactory
impl SessionStoreFactory for InMemorySessionStoreFactory
Source§fn durability_tier(&self) -> DurabilityTier
fn durability_tier(&self) -> DurabilityTier
Durability tier the stores produced by this factory provide; defaults to
[
DurabilityTier::Inline].fn create_store<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 SessionStoreCreateRequest,
) -> Pin<Box<dyn Future<Output = Result<Arc<dyn RuntimePersistence>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn open_existing_store<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 SessionStoreCreateRequest,
) -> Pin<Box<dyn Future<Output = Result<Option<Arc<dyn RuntimePersistence>>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn live_attachment_refs<'life0, 'async_trait>(
&'life0 self,
intent_grace_cutoff_epoch_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<BTreeSet<AttachmentId>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn live_attachment_refs<'life0, 'async_trait>(
&'life0 self,
intent_grace_cutoff_epoch_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<BTreeSet<AttachmentId>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
The attachment GC root set across every session this factory owns. An
uncommitted intent is forgotten only when it is old enough and its
durable owner is dead: a superseding session turn commit or an absent
process row. Ownerless host puts use age alone. Factories with no
attachment story default to empty; durable factories evaluate and prune
the predicate atomically. Exposed to the GC lever via the blanket
AttachmentRootSet implementation.Source§fn has_live_attachment_ref<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 AttachmentId,
intent_grace_cutoff_epoch_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn has_live_attachment_ref<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 AttachmentId,
intent_grace_cutoff_epoch_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Whether ANY session this factory owns currently holds a GC-live ref for
attachment_id under that same age plus owner-reachability rule. The
single-id counterpart to
Self::live_attachment_refs, used by the attachment GC lever’s
delete-time root re-check so it need not re-materialize the whole root set
per candidate blob. The default re-materializes the root set and tests
membership; the durable factories override with a targeted single-id query
(Postgres one indexed SELECT; SQLite iterates its per-session databases
only until the first hit). Read moreAuto Trait Implementations§
impl !RefUnwindSafe for InMemorySessionStoreFactory
impl !UnwindSafe for InMemorySessionStoreFactory
impl Freeze for InMemorySessionStoreFactory
impl Send for InMemorySessionStoreFactory
impl Sync for InMemorySessionStoreFactory
impl Unpin for InMemorySessionStoreFactory
impl UnsafeUnpin for InMemorySessionStoreFactory
Blanket Implementations§
Source§impl<T> AttachmentRootSet for Twhere
T: SessionStoreFactory + ?Sized,
impl<T> AttachmentRootSet for Twhere
T: SessionStoreFactory + ?Sized,
Source§fn live_attachment_refs<'life0, 'async_trait>(
&'life0 self,
intent_grace_cutoff_epoch_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<BTreeSet<AttachmentId>, StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
fn live_attachment_refs<'life0, 'async_trait>(
&'life0 self,
intent_grace_cutoff_epoch_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<BTreeSet<AttachmentId>, StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
The live root set, reconciled against
intent_grace_cutoff_epoch_ms. Read moreSource§fn has_live_attachment_ref<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 AttachmentId,
intent_grace_cutoff_epoch_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
T: 'async_trait,
fn has_live_attachment_ref<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 AttachmentId,
intent_grace_cutoff_epoch_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
T: 'async_trait,
Whether a single id currently has a live root under the same age plus
owner-reachability rule as
Self::live_attachment_refs. Read moreSource§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