pub struct EphemeralDbConnection { /* private fields */ }Implementations§
Source§impl EphemeralDbConnection
impl EphemeralDbConnection
pub fn new() -> Result<Self, PlatformStorageError>
Trait Implementations§
Source§impl ConnectionExt for EphemeralDbConnection
impl ConnectionExt for EphemeralDbConnection
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 Freeze for EphemeralDbConnection
impl !RefUnwindSafe for EphemeralDbConnection
impl Send for EphemeralDbConnection
impl Sync for EphemeralDbConnection
impl Unpin for EphemeralDbConnection
impl UnsafeUnpin for EphemeralDbConnection
impl !UnwindSafe for EphemeralDbConnection
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