Skip to main content

InMemorySessionStoreFactory

Struct InMemorySessionStoreFactory 

Source
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§

Source§

impl InMemorySessionStoreFactory

Source

pub fn new() -> Self

Source

pub fn with_clock(clock: Arc<dyn Clock>) -> Self

Trait Implementations§

Source§

impl Clone for InMemorySessionStoreFactory

Source§

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)

Performs copy-assignment from source. Read more
Source§

impl Default for InMemorySessionStoreFactory

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl SessionStoreFactory for InMemorySessionStoreFactory

Source§

fn durability_tier(&self) -> DurabilityTier

Durability tier the stores produced by this factory provide; defaults to [DurabilityTier::Inline].
Source§

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,

Source§

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,

Source§

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,

The attachment GC root set across ALL sessions this factory owns, reconciled against intent_grace_cutoff_epoch_ms: every committed ref, plus every uncommitted intent younger than the cutoff. Intents at or before the cutoff are crash orphans (their turn never committed and has aged past the grace window) — the factory forgets them and excludes them, so their blobs become collectable. Factories with no attachment story default to empty; the durable factories override this (Postgres queries and prunes the global manifest table; SQLite unions and reconciles its per-session databases at sweep time). 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,

Whether ANY session this factory owns currently holds a GC-live ref for attachment_id (a committed ref, or an uncommitted intent younger than the cutoff). 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 more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AttachmentRootSet for T

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,

The live root set, reconciled against intent_grace_cutoff_epoch_ms. Read more
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 'life0: 'async_trait, 'life1: 'async_trait, T: 'async_trait,

Whether a single id currently has a live root — a committed ref, or an uncommitted intent younger than intent_grace_cutoff_epoch_ms. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more