pub enum PersistentOrMem<P, S, M> {
Persistent(P),
Single(S),
Mem(M),
}Variants§
Trait Implementations§
Source§impl<P, S, M> ConnectionExt for PersistentOrMem<P, S, M>
impl<P, S, M> ConnectionExt for PersistentOrMem<P, S, M>
Source§fn raw_query<T, F>(&self, fun: F) -> Result<T, ConnectionError>
fn raw_query<T, F>(&self, fun: F) -> Result<T, ConnectionError>
Run a scoped query against the underlying SQLite connection.
fn disconnect(&self) -> Result<(), ConnectionError>
fn reconnect(&self) -> Result<(), ConnectionError>
Auto Trait Implementations§
impl<P, S, M> Freeze for PersistentOrMem<P, S, M>
impl<P, S, M> RefUnwindSafe for PersistentOrMem<P, S, M>
impl<P, S, M> Send for PersistentOrMem<P, S, M>
impl<P, S, M> Sync for PersistentOrMem<P, S, M>
impl<P, S, M> Unpin for PersistentOrMem<P, S, M>
impl<P, S, M> UnsafeUnpin for PersistentOrMem<P, S, M>
impl<P, S, M> UnwindSafe for PersistentOrMem<P, S, M>
Blanket Implementations§
§impl<T> AggregateExpressionMethods for T
impl<T> AggregateExpressionMethods for T
§fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
DISTINCT modifier for aggregate functions Read more§fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
ALL modifier for aggregate functions Read more§fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
Add an aggregate function filter Read more
§fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
Add an aggregate function order Read more
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<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<C> Fetch<IdentityCache> for Cwhere
C: ConnectionExt,
impl<C> Fetch<IdentityCache> for Cwhere
C: ConnectionExt,
type Key = ()
fn fetch( &self, _key: &<C as Fetch<IdentityCache>>::Key, ) -> Result<Option<IdentityCache>, StorageError>
Source§impl<C> Fetch<PendingRemove> for Cwhere
C: ConnectionExt,
impl<C> Fetch<PendingRemove> for Cwhere
C: ConnectionExt,
type Key = ()
fn fetch( &self, _key: &<C as Fetch<PendingRemove>>::Key, ) -> Result<Option<PendingRemove>, StorageError>
Source§impl<C> Fetch<StoredAssociationState> for Cwhere
C: ConnectionExt,
impl<C> Fetch<StoredAssociationState> for Cwhere
C: ConnectionExt,
type Key = (String, i64)
fn fetch( &self, key: &<C as Fetch<StoredAssociationState>>::Key, ) -> Result<Option<StoredAssociationState>, StorageError>
Source§impl<C> Fetch<StoredGroup> for Cwhere
C: ConnectionExt,
impl<C> Fetch<StoredGroup> for Cwhere
C: ConnectionExt,
type Key = GroupId
fn fetch( &self, key: &<C as Fetch<StoredGroup>>::Key, ) -> Result<Option<StoredGroup>, StorageError>
Source§impl<C> Fetch<StoredGroupIntent> for Cwhere
C: ConnectionExt,
impl<C> Fetch<StoredGroupIntent> for Cwhere
C: ConnectionExt,
type Key = i32
fn fetch( &self, key: &<C as Fetch<StoredGroupIntent>>::Key, ) -> Result<Option<StoredGroupIntent>, StorageError>
Source§impl<C> Fetch<StoredGroupMessage> for Cwhere
C: ConnectionExt,
impl<C> Fetch<StoredGroupMessage> for Cwhere
C: ConnectionExt,
type Key = Vec<u8>
fn fetch( &self, key: &<C as Fetch<StoredGroupMessage>>::Key, ) -> Result<Option<StoredGroupMessage>, StorageError>
Source§impl<C> Fetch<StoredIdentity> for Cwhere
C: ConnectionExt,
impl<C> Fetch<StoredIdentity> for Cwhere
C: ConnectionExt,
type Key = ()
fn fetch( &self, _key: &<C as Fetch<StoredIdentity>>::Key, ) -> Result<Option<StoredIdentity>, StorageError>
Source§impl<C> Fetch<StoredKeyStoreEntry> for Cwhere
C: ConnectionExt,
impl<C> Fetch<StoredKeyStoreEntry> for Cwhere
C: ConnectionExt,
type Key = Vec<u8>
fn fetch( &self, key: &<C as Fetch<StoredKeyStoreEntry>>::Key, ) -> Result<Option<StoredKeyStoreEntry>, StorageError>
Source§impl<C> Fetch<UploadedTopic> for Cwhere
C: ConnectionExt,
impl<C> Fetch<UploadedTopic> for Cwhere
C: ConnectionExt,
type Key = Vec<u8>
fn fetch( &self, key: &<C as Fetch<UploadedTopic>>::Key, ) -> Result<Option<UploadedTopic>, StorageError>
§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<T> IntoSql for T
impl<T> IntoSql for T
§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<C> QueryDelivery for Cwhere
C: ConnectionExt,
impl<C> QueryDelivery for Cwhere
C: ConnectionExt,
Source§fn stream_database_id(&self) -> Result<[u8; 16], StorageError>
fn stream_database_id(&self) -> Result<[u8; 16], StorageError>
Read the database identity used to reject foreign or pre-restore cursors.
Source§fn rotate_stream_database_id(&self) -> Result<[u8; 16], StorageError>
fn rotate_stream_database_id(&self) -> Result<[u8; 16], StorageError>
Rotate only under exclusive restore lifecycle access. Existing consumer tokens are fenced.
Source§fn assign_delivery_sequence(
&self,
message_id: &[u8],
) -> Result<Option<u64>, StorageError>
fn assign_delivery_sequence( &self, message_id: &[u8], ) -> Result<Option<u64>, StorageError>
Allocate within the transaction that makes a message deliverable.
A duplicate keeps its number. An optimistic unpublished row has no number.
Source§fn current_delivery_cursor(&self) -> Result<DeliveryCursor, StorageError>
fn current_delivery_cursor(&self) -> Result<DeliveryCursor, StorageError>
Read the persistent allocator, not the maximum remaining message row.
Source§fn acquire_delivery_owner(
&self,
now_ns: i64,
until_ns: i64,
) -> Result<DeliveryOwner, StorageError>
fn acquire_delivery_owner( &self, now_ns: i64, until_ns: i64, ) -> Result<DeliveryOwner, StorageError>
Acquire the sole default-consumer lease at a supplied time; fail if one is active.
Source§fn acquire_delivery_owner_with_clock(
&self,
lease_ns: i64,
clock: impl FnOnce() -> i64,
) -> Result<DeliveryOwner, StorageError>
fn acquire_delivery_owner_with_clock( &self, lease_ns: i64, clock: impl FnOnce() -> i64, ) -> Result<DeliveryOwner, StorageError>
Read the clock after the writer is acquired, not before a possible lock wait.
Source§fn renew_delivery_owner(
&self,
owner: DeliveryOwner,
now_ns: i64,
until_ns: i64,
) -> Result<(), StorageError>
fn renew_delivery_owner( &self, owner: DeliveryOwner, now_ns: i64, until_ns: i64, ) -> Result<(), StorageError>
An expired token cannot be renewed. The caller must acquire a new token.
Source§fn renew_delivery_owner_with_clock(
&self,
owner: DeliveryOwner,
lease_ns: i64,
clock: impl FnOnce() -> i64,
) -> Result<(), StorageError>
fn renew_delivery_owner_with_clock( &self, owner: DeliveryOwner, lease_ns: i64, clock: impl FnOnce() -> i64, ) -> Result<(), StorageError>
Extend only the current, unexpired token using time read after the writer lock.
Source§fn check_delivery_owner(
&self,
owner: DeliveryOwner,
now_ns: i64,
) -> Result<(), StorageError>
fn check_delivery_owner( &self, owner: DeliveryOwner, now_ns: i64, ) -> Result<(), StorageError>
Reject expired or replaced tokens before handing a message to the app.
Source§fn check_delivery_owner_with_clock(
&self,
owner: DeliveryOwner,
clock: impl FnOnce() -> i64,
) -> Result<(), StorageError>
fn check_delivery_owner_with_clock( &self, owner: DeliveryOwner, clock: impl FnOnce() -> i64, ) -> Result<(), StorageError>
Check ownership using fresh time after the database connection is available.
Source§fn release_delivery_owner(
&self,
owner: DeliveryOwner,
) -> Result<(), StorageError>
fn release_delivery_owner( &self, owner: DeliveryOwner, ) -> Result<(), StorageError>
Release this token only; a stale consumer cannot release its replacement.
Source§fn delivery_message_is_retained(
&self,
message_id: &[u8],
cursor: DeliveryCursor,
now_ns: i64,
) -> Result<bool, StorageError>
fn delivery_message_is_retained( &self, message_id: &[u8], cursor: DeliveryCursor, now_ns: i64, ) -> Result<bool, StorageError>
A buffered candidate can expire or be deleted while its previous item is held.
Source§fn default_delivery_messages(
&self,
owner: DeliveryOwner,
scope: &DeliveryScope,
now_ns: i64,
limit: u32,
) -> Result<Vec<DeliveryMessage>, StorageError>
fn default_delivery_messages( &self, owner: DeliveryOwner, scope: &DeliveryScope, now_ns: i64, limit: u32, ) -> Result<Vec<DeliveryMessage>, StorageError>
Read retained candidates above each group’s default position.
The caller applies consent/type filters and acknowledges scanned rows by the same owner.
Source§fn default_delivery_messages_bounded(
&self,
owner: DeliveryOwner,
scope: &DeliveryScope,
now_ns: i64,
limit: u32,
max_bytes: u64,
) -> Result<Vec<DeliveryMessage>, StorageError>
fn default_delivery_messages_bounded( &self, owner: DeliveryOwner, scope: &DeliveryScope, now_ns: i64, limit: u32, max_bytes: u64, ) -> Result<Vec<DeliveryMessage>, StorageError>
Bound rows and bytes before loading message bodies; this read never advances D.
Source§fn replay_delivery_messages(
&self,
after: DeliveryCursor,
scope: &DeliveryScope,
now_ns: i64,
limit: u32,
) -> Result<Vec<DeliveryMessage>, StorageError>
fn replay_delivery_messages( &self, after: DeliveryCursor, scope: &DeliveryScope, now_ns: i64, limit: u32, ) -> Result<Vec<DeliveryMessage>, StorageError>
Explicit replay does not read or write default delivery positions.
Source§fn replay_delivery_messages_bounded(
&self,
after: DeliveryCursor,
scope: &DeliveryScope,
now_ns: i64,
limit: u32,
max_bytes: u64,
) -> Result<Vec<DeliveryMessage>, StorageError>
fn replay_delivery_messages_bounded( &self, after: DeliveryCursor, scope: &DeliveryScope, now_ns: i64, limit: u32, max_bytes: u64, ) -> Result<Vec<DeliveryMessage>, StorageError>
Read a bounded retained prefix strictly after the cursor, without an owner or D writes.
Source§fn delivery_history_snapshot(
&self,
scope: &DeliveryScope,
now_ns: i64,
limit: u32,
) -> Result<DeliverySnapshot, StorageError>
fn delivery_history_snapshot( &self, scope: &DeliveryScope, now_ns: i64, limit: u32, ) -> Result<DeliverySnapshot, StorageError>
Return recent retained history and a cursor from the same database snapshot.
Source§fn delivery_history_snapshot_bounded(
&self,
scope: &DeliveryScope,
now_ns: i64,
limit: u32,
max_bytes: u64,
) -> Result<DeliverySnapshot, StorageError>
fn delivery_history_snapshot_bounded( &self, scope: &DeliveryScope, now_ns: i64, limit: u32, max_bytes: u64, ) -> Result<DeliverySnapshot, StorageError>
Bound history allocation while capturing its resume cursor in the same snapshot.
Source§fn delivery_history_snapshot_filtered(
&self,
scope: &DeliveryScope,
filter: &DeliveryFilter,
now_ns: i64,
limit: u32,
max_bytes: u64,
) -> Result<DeliverySnapshot, StorageError>
fn delivery_history_snapshot_filtered( &self, scope: &DeliveryScope, filter: &DeliveryFilter, now_ns: i64, limit: u32, max_bytes: u64, ) -> Result<DeliverySnapshot, StorageError>
Apply history filters before its limit, with history and cursor in one read transaction.
Source§fn acknowledge_delivery(
&self,
owner: DeliveryOwner,
group_id: GroupId,
cursor: DeliveryCursor,
now_ns: i64,
) -> Result<(), StorageError>
fn acknowledge_delivery( &self, owner: DeliveryOwner, group_id: GroupId, cursor: DeliveryCursor, now_ns: i64, ) -> Result<(), StorageError>
Acknowledge after callback return or the next iterator request, never on queue insertion.
This also fences progress for rows excluded by a consent/type filter.
Source§fn acknowledge_delivery_with_clock(
&self,
owner: DeliveryOwner,
group_id: GroupId,
cursor: DeliveryCursor,
clock: impl FnOnce() -> i64,
) -> Result<(), StorageError>
fn acknowledge_delivery_with_clock( &self, owner: DeliveryOwner, group_id: GroupId, cursor: DeliveryCursor, clock: impl FnOnce() -> i64, ) -> Result<(), StorageError>
Advance this group’s D only after a fresh owner check under the state writer.
Source§impl<C> QueryIncomingEnvelope for Cwhere
C: ConnectionExt,
impl<C> QueryIncomingEnvelope for Cwhere
C: ConnectionExt,
Source§fn record_welcome_discovery(
&self,
group_id: GroupId,
welcome_cursor: Cursor,
) -> Result<(), StorageError>
fn record_welcome_discovery( &self, group_id: GroupId, welcome_cursor: Cursor, ) -> Result<(), StorageError>
Record the first successful Welcome installation inside its state transaction.
Rejoin does not change discovery. Local creation and history import do not call this.
Source§fn group_ids_discovered_through(
&self,
target: Cursor,
) -> Result<Vec<GroupId>, StorageError>
fn group_ids_discovered_through( &self, target: Cursor, ) -> Result<Vec<GroupId>, StorageError>
Groups first discovered through the fixed own-installation Welcome target.
Later joins and local/imported groups cannot expand this captured discovery set.
Source§fn record_terminal_rejection(
&self,
topic: &StreamTopic,
sequence: Cursor,
code: &'static str,
) -> Result<(), StorageError>
fn record_terminal_rejection( &self, topic: &StreamTopic, sequence: Cursor, code: &'static str, ) -> Result<(), StorageError>
Keep one rejection diagnostic per topic, replacing it with a later rejection.
Store a stable error code, never an input payload or a formatted error message.
The caller records this inside the same state transaction that deletes the pending row.
Source§fn read_last_rejection(
&self,
topic: &StreamTopic,
) -> Result<Option<TerminalRejection>, StorageError>
fn read_last_rejection( &self, topic: &StreamTopic, ) -> Result<Option<TerminalRejection>, StorageError>
Read the topic’s last committed rejection code without loading envelope data.
Source§fn admit_ordered_batch(
&self,
topic: &StreamTopic,
after: Cursor,
envelopes: &[NewIncomingEnvelope],
limits: IncomingLimits,
) -> Result<AdmissionResult, StorageError>
fn admit_ordered_batch( &self, topic: &StreamTopic, after: Cursor, envelopes: &[NewIncomingEnvelope], limits: IncomingLimits, ) -> Result<AdmissionResult, StorageError>
Commit the complete ordered batch and its received position together.
An overlap is safe; a gap before the source cursor is rejected.
Validation, capacity, or storage failure leaves both F and pending rows unchanged.
Source§fn topic_progress(
&self,
topic: &StreamTopic,
) -> Result<TopicProgress, StorageError>
fn topic_progress( &self, topic: &StreamTopic, ) -> Result<TopicProgress, StorageError>
Read P and F from the same row; an unseen topic starts at zero.
Source§fn first_pending_envelope(
&self,
topic: &StreamTopic,
) -> Result<Option<StoredIncomingEnvelope>, StorageError>
fn first_pending_envelope( &self, topic: &StreamTopic, ) -> Result<Option<StoredIncomingEnvelope>, StorageError>
Read the next actual ID. Missing integer IDs are not queue entries.
Source§fn pending_envelope(
&self,
topic: &StreamTopic,
sequence: Cursor,
) -> Result<Option<StoredIncomingEnvelope>, StorageError>
fn pending_envelope( &self, topic: &StreamTopic, sequence: Cursor, ) -> Result<Option<StoredIncomingEnvelope>, StorageError>
Recheck one independent welcome under the caller’s state transaction.
Source§fn pending_states_through(
&self,
topic: &StreamTopic,
target: Cursor,
) -> Result<Vec<PendingEnvelopeState>, StorageError>
fn pending_states_through( &self, topic: &StreamTopic, target: Cursor, ) -> Result<Vec<PendingEnvelopeState>, StorageError>
Read actual pending IDs through the fixed target without loading ciphertext.
Topic and kind admission limits bound the number of stored rows returned here.
Source§fn complete_pending_envelope(
&self,
topic: &StreamTopic,
sequence: Cursor,
) -> Result<bool, StorageError>
fn complete_pending_envelope( &self, topic: &StreamTopic, sequence: Cursor, ) -> Result<bool, StorageError>
Complete only the current group or identity head. Welcomes are independent.
Call this inside the state transaction that applies or rejects the envelope.
Deletion and P advance commit together; an unresolved Welcome keeps its prefix open.
Source§fn set_incoming_retry(
&self,
topic: &StreamTopic,
sequence: Cursor,
retry: &IncomingRetry,
) -> Result<bool, StorageError>
fn set_incoming_retry( &self, topic: &StreamTopic, sequence: Cursor, retry: &IncomingRetry, ) -> Result<bool, StorageError>
Retry metadata is written only while this work is still current.
Source§fn ready_welcomes(
&self,
now_ns: i64,
limit: u32,
) -> Result<Vec<StoredIncomingEnvelope>, StorageError>
fn ready_welcomes( &self, now_ns: i64, limit: u32, ) -> Result<Vec<StoredIncomingEnvelope>, StorageError>
Read due, unblocked Welcome rows. Production callers must also set a byte bound.
Source§fn ready_welcomes_bounded(
&self,
now_ns: i64,
limit: u32,
max_bytes: u64,
) -> Result<Vec<StoredIncomingEnvelope>, StorageError>
fn ready_welcomes_bounded( &self, now_ns: i64, limit: u32, max_bytes: u64, ) -> Result<Vec<StoredIncomingEnvelope>, StorageError>
Read a due prefix without loading envelope bytes above the batch budget.
Permanently blocked rows require a new coordinator generation, not a timer retry.
Source§fn blocked_welcomes_bounded(
&self,
topic: &StreamTopic,
after: Cursor,
limit: u32,
max_bytes: u64,
) -> Result<Vec<StoredIncomingEnvelope>, StorageError>
fn blocked_welcomes_bounded( &self, topic: &StreamTopic, after: Cursor, limit: u32, max_bytes: u64, ) -> Result<Vec<StoredIncomingEnvelope>, StorageError>
Read one bounded page for a new coordinator generation to recheck unsupported work.
Source§fn welcome_barrier_complete(
&self,
topic: &StreamTopic,
target: Cursor,
) -> Result<bool, StorageError>
fn welcome_barrier_complete( &self, topic: &StreamTopic, target: Cursor, ) -> Result<bool, StorageError>
Later welcome success cannot hide an earlier unresolved welcome.
Source§fn has_pending_welcomes(&self) -> Result<bool, StorageError>
fn has_pending_welcomes(&self) -> Result<bool, StorageError>
Keep welcome private keys while any unresolved welcome can still need them.
Source§fn install_group_anchor(
&self,
group_id: GroupId,
anchor: Cursor,
mode: JoinAnchorMode,
) -> Result<(), StorageError>
fn install_group_anchor( &self, group_id: GroupId, anchor: Cursor, mode: JoinAnchorMode, ) -> Result<(), StorageError>
Install a validated join anchor without rewinding either durable position.
The caller must check the group state and install MLS state in the same transaction.
Source§fn pending_topic_usage(
&self,
kind: NetworkEntityKind,
) -> Result<Vec<PendingTopicUsage>, StorageError>
fn pending_topic_usage( &self, kind: NetworkEntityKind, ) -> Result<Vec<PendingTopicUsage>, StorageError>
Largest queues come first; empty topics are absent and must not be paused.
Source§impl<C> QueryPreparedEnvelope for Cwhere
C: ConnectionExt,
impl<C> QueryPreparedEnvelope for Cwhere
C: ConnectionExt,
Source§fn prepared_envelopes(
&self,
intent_id: ID,
) -> Result<Option<Vec<u8>>, StorageError>
fn prepared_envelopes( &self, intent_id: ID, ) -> Result<Option<Vec<u8>>, StorageError>
Read the persisted attempt. None means no attempt is currently prepared.
Source§impl<S, T> Upcast<T> for S
impl<S, T> Upcast<T> for S
§impl<T> WindowExpressionMethods for T
impl<T> WindowExpressionMethods for T
§fn over(self) -> Self::Outputwhere
Self: OverDsl,
fn over(self) -> Self::Outputwhere
Self: OverDsl,
Turn a function call into a window function call Read more
§fn window_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
fn window_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
Add a filter to the current window function Read more
§fn partition_by<E>(self, expr: E) -> Self::Outputwhere
Self: PartitionByDsl<E>,
fn partition_by<E>(self, expr: E) -> Self::Outputwhere
Self: PartitionByDsl<E>,
Add a partition clause to the current window function Read more
§fn window_order<E>(self, expr: E) -> Self::Outputwhere
Self: OrderWindowDsl<E>,
fn window_order<E>(self, expr: E) -> Self::Outputwhere
Self: OrderWindowDsl<E>,
Add a order clause to the current window function Read more