pub struct MemoryStream { /* private fields */ }Expand description
Deterministic process-local provider. It retains idempotency results indefinitely, satisfying the minimum 24-hour contract while the process exists; it deliberately claims no crash recovery.
Implementations§
Source§impl MemoryStream
impl MemoryStream
Sourcepub fn new(limits: MemoryLimits) -> Self
pub fn new(limits: MemoryLimits) -> Self
Constructs one bounded independent provider.
Sourcepub fn new_with_clock(
limits: MemoryLimits,
clock: Arc<dyn UnixMillisClock>,
) -> Self
pub fn new_with_clock( limits: MemoryLimits, clock: Arc<dyn UnixMillisClock>, ) -> Self
Constructs a provider with an injected trusted clock.
Trait Implementations§
Source§impl Clone for MemoryStream
impl Clone for MemoryStream
Source§impl Default for MemoryStream
impl Default for MemoryStream
Source§impl StreamProvider for MemoryStream
impl StreamProvider for MemoryStream
Source§fn inspect_idempotency<'life0, 'async_trait>(
&'life0 self,
idempotency_key: IdempotencyKey,
) -> Pin<Box<dyn Future<Output = Result<Option<IdempotencyObservation>, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn inspect_idempotency<'life0, 'async_trait>(
&'life0 self,
idempotency_key: IdempotencyKey,
) -> Pin<Box<dyn Future<Output = Result<Option<IdempotencyObservation>, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Reads the retained terminal result for one caller-owned retry identity.
Source§fn tail<'life0, 'async_trait>(
&'life0 self,
path: StreamPath,
) -> Pin<Box<dyn Future<Output = Result<u64, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn tail<'life0, 'async_trait>(
&'life0 self,
path: StreamPath,
) -> Pin<Box<dyn Future<Output = Result<u64, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Current next sequence.
Source§fn append<'life0, 'async_trait>(
&'life0 self,
request: AppendRequest,
) -> Pin<Box<dyn Future<Output = Result<AppendOutcome, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn append<'life0, 'async_trait>(
&'life0 self,
request: AppendRequest,
) -> Pin<Box<dyn Future<Output = Result<AppendOutcome, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Atomic append or tail conflict.
Source§fn fork<'life0, 'async_trait>(
&'life0 self,
request: ForkRequest,
) -> Pin<Box<dyn Future<Output = Result<ForkReceipt, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn fork<'life0, 'async_trait>(
&'life0 self,
request: ForkRequest,
) -> Pin<Box<dyn Future<Output = Result<ForkReceipt, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Atomic immutable-prefix fork.
Source§fn trim<'life0, 'async_trait>(
&'life0 self,
path: StreamPath,
before: u64,
idempotency_key: IdempotencyKey,
) -> Pin<Box<dyn Future<Output = Result<TrimReceipt, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn trim<'life0, 'async_trait>(
&'life0 self,
path: StreamPath,
before: u64,
idempotency_key: IdempotencyKey,
) -> Pin<Box<dyn Future<Output = Result<TrimReceipt, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Monotonically advances a path’s logical trim point.
Source§fn delete<'life0, 'async_trait>(
&'life0 self,
path: StreamPath,
idempotency_key: IdempotencyKey,
) -> Pin<Box<dyn Future<Output = Result<DeleteReceipt, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete<'life0, 'async_trait>(
&'life0 self,
path: StreamPath,
idempotency_key: IdempotencyKey,
) -> Pin<Box<dyn Future<Output = Result<DeleteReceipt, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Permanently retires a path with no live descendants.
Source§fn read<'life0, 'async_trait>(
&'life0 self,
request: ReadRequest,
) -> Pin<Box<dyn Future<Output = Result<RecordStream, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn read<'life0, 'async_trait>(
&'life0 self,
request: ReadRequest,
) -> Pin<Box<dyn Future<Output = Result<RecordStream, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Opens a bounded finite read.
Source§fn follow<'life0, 'async_trait>(
&'life0 self,
path: StreamPath,
from: u64,
) -> Pin<Box<dyn Future<Output = Result<RecordStream, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn follow<'life0, 'async_trait>(
&'life0 self,
path: StreamPath,
from: u64,
) -> Pin<Box<dyn Future<Output = Result<RecordStream, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Replays and then remains live without a handoff gap.
Source§fn children<'life0, 'async_trait>(
&'life0 self,
request: ChildrenRequest,
) -> Pin<Box<dyn Future<Output = Result<ChildStream, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn children<'life0, 'async_trait>(
&'life0 self,
request: ChildrenRequest,
) -> Pin<Box<dyn Future<Output = Result<ChildStream, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Lists one fixed-snapshot direct-child page.
Source§fn commit<'life0, 'async_trait>(
&'life0 self,
request: CommitRequest,
) -> Pin<Box<dyn Future<Output = Result<CommitOutcome, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn commit<'life0, 'async_trait>(
&'life0 self,
request: CommitRequest,
) -> Pin<Box<dyn Future<Output = Result<CommitOutcome, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Executes one all-or-nothing optimistic commit.
Source§fn commit_before<'life0, 'async_trait>(
&'life0 self,
request: CommitRequest,
deadline_unix_millis: u64,
) -> Pin<Box<dyn Future<Output = Result<CommitOutcome, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn commit_before<'life0, 'async_trait>(
&'life0 self,
request: CommitRequest,
deadline_unix_millis: u64,
) -> Pin<Box<dyn Future<Output = Result<CommitOutcome, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Executes one coordinated commit only if the provider’s trusted clock is
strictly before
deadline_unix_millis at the linearization point. Read moreSource§fn read_commit<'life0, 'async_trait>(
&'life0 self,
commit_id: CommitId,
) -> Pin<Box<dyn Future<Output = Result<CommittedEnvelope, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn read_commit<'life0, 'async_trait>(
&'life0 self,
commit_id: CommitId,
) -> Pin<Box<dyn Future<Output = Result<CommittedEnvelope, StreamError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Reads one complete immutable successful envelope.
Auto Trait Implementations§
impl !RefUnwindSafe for MemoryStream
impl !UnwindSafe for MemoryStream
impl Freeze for MemoryStream
impl Send for MemoryStream
impl Sync for MemoryStream
impl Unpin for MemoryStream
impl UnsafeUnpin for MemoryStream
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request