pub struct InMemoryStore { /* private fields */ }Expand description
Correct non-durable crate::EventStore implementation for tests and backend equivalence.
Implementations§
Source§impl InMemoryStore
impl InMemoryStore
Sourcepub fn write_raw_worker_deployment(
&self,
name: &str,
bytes: Vec<u8>,
) -> Result<(), StoreError>
pub fn write_raw_worker_deployment( &self, name: &str, bytes: Vec<u8>, ) -> Result<(), StoreError>
Write backend bytes directly for persistence conformance testing.
This deliberately bypasses the entity codec so the shared suite can pin poisoned-row listing, replacement, and deletion behavior on every backend.
§Errors
Returns StoreError::Serialization when name is empty or whitespace.
Trait Implementations§
Source§impl Debug for InMemoryStore
impl Debug for InMemoryStore
Source§impl Default for InMemoryStore
impl Default for InMemoryStore
Source§fn default() -> InMemoryStore
fn default() -> InMemoryStore
Returns the “default value” for a type. Read more
Source§impl NamespaceStore for InMemoryStore
impl NamespaceStore for InMemoryStore
Source§fn register_namespace<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
origin: NamespaceOrigin,
) -> Pin<Box<dyn Future<Output = Result<MintOutcome, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn register_namespace<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
origin: NamespaceOrigin,
) -> Pin<Box<dyn Future<Output = Result<MintOutcome, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Idempotent minted-on-use upsert. Read more
Source§fn put_namespace<'life0, 'async_trait>(
&'life0 self,
record: NamespaceRecord,
) -> Pin<Box<dyn Future<Output = Result<MintOutcome, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn put_namespace<'life0, 'async_trait>(
&'life0 self,
record: NamespaceRecord,
) -> Pin<Box<dyn Future<Output = Result<MintOutcome, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Explicit upsert (
POST /namespaces). Read moreSource§fn list_namespaces<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<NamespaceRecord>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_namespaces<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<NamespaceRecord>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_namespace<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<NamespaceRecord>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_namespace<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<NamespaceRecord>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Looks up a single namespace by
name. Read moreSource§fn set_namespace_placement<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
placement: NamespacePlacement,
) -> Pin<Box<dyn Future<Output = Result<Option<()>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn set_namespace_placement<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
placement: NamespacePlacement,
) -> Pin<Box<dyn Future<Output = Result<Option<()>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn deprecate_namespace<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn deprecate_namespace<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Transitions a namespace from
NamespaceState::Active to
NamespaceState::Deprecated (deprecate-before-delete). Read moreSource§impl PackageStore for InMemoryStore
impl PackageStore for InMemoryStore
Source§fn put_package<'life0, 'async_trait>(
&'life0 self,
record: PackageRecord,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn put_package<'life0, 'async_trait>(
&'life0 self,
record: PackageRecord,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Persists
record and atomically points the type’s route at it. Read moreSource§fn put_package_with_routes<'life0, 'life1, 'async_trait>(
&'life0 self,
record: PackageRecord,
route_workflow_types: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn put_package_with_routes<'life0, 'life1, 'async_trait>(
&'life0 self,
record: PackageRecord,
route_workflow_types: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Persists
record and atomically points every member workflow type at
its content hash. Read moreSource§fn list_packages<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<PackageRecord>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_packages<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<PackageRecord>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Lists every persisted package in ascending
deployed_at order
(ties broken by (workflow_type, content_hash) text order), so
startup reload re-applies deploys deterministically.Source§fn delete_package<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
workflow_type: &'life1 str,
content_hash: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn delete_package<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
workflow_type: &'life1 str,
content_hash: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Deletes the persisted archive for
(workflow_type, content_hash). Read moreSource§fn put_package_route<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
workflow_type: &'life1 str,
content_hash: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn put_package_route<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
workflow_type: &'life1 str,
content_hash: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn list_package_routes<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<PackageRouteRecord>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_package_routes<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<PackageRouteRecord>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Lists every persisted route pointer in
workflow_type text order.Source§impl ReadableEventStore for InMemoryStore
impl ReadableEventStore for InMemoryStore
Source§fn read_history<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow_id: &'life1 WorkflowId,
) -> Pin<Box<dyn Future<Output = Result<Vec<Event>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read_history<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow_id: &'life1 WorkflowId,
) -> Pin<Box<dyn Future<Output = Result<Vec<Event>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Reads the complete event history for
workflow_id in ascending sequence order. Read moreSource§fn read_history_from<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow_id: &'life1 WorkflowId,
from_seq: u64,
) -> Pin<Box<dyn Future<Output = Result<Vec<Event>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read_history_from<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow_id: &'life1 WorkflowId,
from_seq: u64,
) -> Pin<Box<dyn Future<Output = Result<Vec<Event>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Reads the event history for
workflow_id restricted to events with sequence number
greater than or equal to from_seq, in ascending sequence order. Read moreSource§fn read_run_chain<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow_id: &'life1 WorkflowId,
) -> Pin<Box<dyn Future<Output = Result<Vec<RunSummary>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read_run_chain<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow_id: &'life1 WorkflowId,
) -> Pin<Box<dyn Future<Output = Result<Vec<RunSummary>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Reads the concrete run chain for
workflow_id in continuation order.Source§fn list_workflow_ids<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<WorkflowId>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_workflow_ids<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<WorkflowId>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Lists every workflow identifier that has at least one event in history. Read more
Source§fn list_active<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<WorkflowId>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_active<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<WorkflowId>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Lists workflow identifiers whose projected status is exactly
WorkflowStatus::Running.Source§fn list_paused<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<WorkflowId>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_paused<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<WorkflowId>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Lists workflow identifiers whose projected status is exactly
WorkflowStatus::Paused. Read moreSource§fn query<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 WorkflowFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<WorkflowSummary>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn query<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 WorkflowFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<WorkflowSummary>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Returns workflow summaries matching
filter.Source§fn schedule_timer<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
workflow_id: &'life1 WorkflowId,
timer_id: &'life2 TimerId,
fire_at: DateTime<Utc>,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn schedule_timer<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
workflow_id: &'life1 WorkflowId,
timer_id: &'life2 TimerId,
fire_at: DateTime<Utc>,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn expired_timers<'life0, 'async_trait>(
&'life0 self,
as_of: DateTime<Utc>,
) -> Pin<Box<dyn Future<Output = Result<Vec<TimerEntry>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn expired_timers<'life0, 'async_trait>(
&'life0 self,
as_of: DateTime<Utc>,
) -> Pin<Box<dyn Future<Output = Result<Vec<TimerEntry>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns durable timers whose
fire_at is less than or equal to as_of.Source§fn set_owned_shards(&self, shards: Option<&[usize]>)
fn set_owned_shards(&self, shards: Option<&[usize]>)
Restrict every per-workflow enumeration (active workflows, timers, outbox
rows) to the named set of distribution shards this node owns, or restore
the own-all-shards default when
shards is None. Read moreSource§fn acquire_owned_shards(&self, shards: &[usize]) -> Result<(), StoreError>
fn acquire_owned_shards(&self, shards: &[usize]) -> Result<(), StoreError>
Acquire-and-serve ownership of each named distribution shard BEFORE the
boot path recovers or enumerates over them, so the node is the fenced
owner and its replicated state is union-merged locally first. Read more
Source§fn acquire_owned_shard(&self, shard: usize) -> Result<(), StoreError>
fn acquire_owned_shard(&self, shard: usize) -> Result<(), StoreError>
Acquire-and-serve ownership of a SINGLE distribution
shard — the
per-shard primitive Self::acquire_owned_shards is a loop over, exposed
so the failover path can drive a per-shard abort seam: a clean election
loss on one shard (StoreError::NotOwner) drops only that shard rather
than failing the whole adoption batch (ADR-021 clean-partial). Read moreSource§fn is_current_owner(&self, shard: usize) -> bool
fn is_current_owner(&self, shard: usize) -> bool
Whether this node currently holds LIVE serve-authority for
shard — it won
the per-shard election THIS process lifetime and has not been deposed
in-process. Read moreSource§fn extend_owned_shards(&self, shards: &[usize])
fn extend_owned_shards(&self, shards: &[usize])
Add
shards to this node’s owned-enumeration scope, UNIONING them with
the shards it already owns rather than replacing the set. Read moreSource§fn publish_shard_owner(&self, shard: usize) -> Result<(), StoreError>
fn publish_shard_owner(&self, shard: usize) -> Result<(), StoreError>
Publish THIS node as the current owner of
shard in the cluster’s
shard-owner directory, so other nodes’ request-routing edges resolve
shard to this node (SS-3). Read moreSource§impl VisibilityStore for InMemoryStore
impl VisibilityStore for InMemoryStore
Source§fn record_visibility<'life0, 'async_trait>(
&'life0 self,
record: VisibilityRecord,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn record_visibility<'life0, 'async_trait>(
&'life0 self,
record: VisibilityRecord,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Upserts a workflow visibility record. Read more
Source§fn list_workflows<'life0, 'async_trait>(
&'life0 self,
filter: ListWorkflowsFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<WorkflowSummary>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_workflows<'life0, 'async_trait>(
&'life0 self,
filter: ListWorkflowsFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<WorkflowSummary>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Lists workflow visibility summaries matching
filter. Read moreSource§fn count_workflows<'life0, 'async_trait>(
&'life0 self,
filter: ListWorkflowsFilter,
) -> Pin<Box<dyn Future<Output = Result<u64, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count_workflows<'life0, 'async_trait>(
&'life0 self,
filter: ListWorkflowsFilter,
) -> Pin<Box<dyn Future<Output = Result<u64, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Counts workflow visibility summaries matching
filter. Read moreSource§impl WorkerDeploymentStore for InMemoryStore
impl WorkerDeploymentStore for InMemoryStore
Source§fn put_worker_deployment<'life0, 'async_trait>(
&'life0 self,
record: WorkerDeployment,
) -> Pin<Box<dyn Future<Output = Result<WorkerDeploymentPutResult, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn put_worker_deployment<'life0, 'async_trait>(
&'life0 self,
record: WorkerDeployment,
) -> Pin<Box<dyn Future<Output = Result<WorkerDeploymentPutResult, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Create or replace a deployment record, returning the exact persisted value.
Source§fn get_worker_deployment<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<WorkerDeployment>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_worker_deployment<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<WorkerDeployment>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Look up one deployment by name.
Source§fn list_worker_deployments<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<WorkerDeploymentListing, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_worker_deployments<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<WorkerDeploymentListing, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List decodable deployments and report every undecodable key, with both
sets ordered by primary-key name.
Source§fn set_desired_state<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
desired: DesiredState,
) -> Pin<Box<dyn Future<Output = Result<Option<WorkerDeployment>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn set_desired_state<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
desired: DesiredState,
) -> Pin<Box<dyn Future<Output = Result<Option<WorkerDeployment>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Set desired state on an existing record, returning
None when absent.Source§fn delete_worker_deployment<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<WorkerDeploymentDeleteOutcome, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_worker_deployment<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<WorkerDeploymentDeleteOutcome, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Atomically remove a row by key without requiring it to decode. Read more
Source§impl WritableEventStore for InMemoryStore
impl WritableEventStore for InMemoryStore
Source§fn append<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_token: WriteToken,
workflow_id: &'life1 WorkflowId,
events: &'life2 [Event],
expected_seq: u64,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn append<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_token: WriteToken,
workflow_id: &'life1 WorkflowId,
events: &'life2 [Event],
expected_seq: u64,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Atomically appends
events to workflow_id when the stored history head equals
expected_seq. Read moreSource§fn append_with_outbox<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
token: WriteToken,
workflow_id: &'life1 WorkflowId,
events: &'life2 [Event],
expected_seq: u64,
outbox_rows: &'life3 [OutboxRow],
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn append_with_outbox<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
token: WriteToken,
workflow_id: &'life1 WorkflowId,
events: &'life2 [Event],
expected_seq: u64,
outbox_rows: &'life3 [OutboxRow],
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Atomically appends
events and the durable-outbox outbox_rows for workflow_id in a
single transaction, under the same expected-head sequence guard as Self::append. Read moreSource§fn rearm_outbox_pending<'life0, 'life1, 'async_trait>(
&'life0 self,
rows: &'life1 [OutboxRow],
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn rearm_outbox_pending<'life0, 'life1, 'async_trait>(
&'life0 self,
rows: &'life1 [OutboxRow],
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Returns the outbox rows for
rows’ dispatch_keys to Pending, re-staging them for the
out-of-band dispatcher. Read moreSource§fn settle_outbox_row_cancelled<'life0, 'life1, 'async_trait>(
&'life0 self,
dispatch_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn settle_outbox_row_cancelled<'life0, 'life1, 'async_trait>(
&'life0 self,
dispatch_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Idempotently settles one outbox row to cancelled when this writer is backed by an outbox. Read more
Source§fn settle_workflow_outbox_rows_cancelled<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow_id: &'life1 WorkflowId,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn settle_workflow_outbox_rows_cancelled<'life0, 'life1, 'async_trait>(
&'life0 self,
workflow_id: &'life1 WorkflowId,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Idempotently settles EVERY live (
crate::OutboxStatus::Pending or
crate::OutboxStatus::Claimed) outbox row of workflow_id to
crate::OutboxStatus::Cancelled, returning the settled dispatch_keys (#253). Read moreAuto Trait Implementations§
impl !Freeze for InMemoryStore
impl RefUnwindSafe for InMemoryStore
impl Send for InMemoryStore
impl Sync for InMemoryStore
impl Unpin for InMemoryStore
impl UnsafeUnpin for InMemoryStore
impl UnwindSafe for InMemoryStore
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