DbConnection

Struct DbConnection 

Source
pub struct DbConnection<C> { /* private fields */ }
Expand description

A wrapper for RawDbConnection that houses all XMTP DB operations.

Implementations§

Source§

impl<C> DbConnection<C>

Source

pub fn new(conn: C) -> Self

Source§

impl<C> DbConnection<C>
where C: ConnectionExt,

Source

pub fn raw_query_read<T, F>(&self, fun: F) -> Result<T, ConnectionError>
where F: FnOnce(&mut SqliteConnection) -> Result<T, Error>,

Source

pub fn raw_query_write<T, F>(&self, fun: F) -> Result<T, ConnectionError>
where F: FnOnce(&mut SqliteConnection) -> Result<T, Error>,

Source§

impl<C: ConnectionExt> DbConnection<C>

Source

pub fn register_triggers(&self)

Create a new table and register triggers for tracking column updates

Source

pub fn disable_memory_security(&self)

Disable sqlcipher memory security

Source

pub fn intents_published(&self) -> i32

Source

pub fn intents_processed(&self) -> i32

Source

pub fn intents_deleted(&self) -> i32

Source

pub fn intent_payloads_deleted(&self) -> Vec<Vec<u8>>

Source

pub fn intents_created(&self) -> i32

Source

pub fn missing_messages(&self, sequence_ids: &[u64]) -> Vec<StoredGroupMessage>

Source

pub fn key_package_rotation_history(&self) -> Vec<(i64, i64)>

Source

pub fn print_db(&self)

print refresh state, group messages, and icebox tables of the database to stdout in column format.

Trait Implementations§

Source§

impl<C: Clone> Clone for DbConnection<C>

Source§

fn clone(&self) -> DbConnection<C>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<C> ConnectionExt for DbConnection<C>
where C: ConnectionExt,

Source§

fn raw_query_read<T, F>(&self, fun: F) -> Result<T, ConnectionError>
where F: FnOnce(&mut SqliteConnection) -> Result<T, Error>, Self: Sized,

in order to track transaction context
Source§

fn raw_query_write<T, F>(&self, fun: F) -> Result<T, ConnectionError>
where F: FnOnce(&mut SqliteConnection) -> Result<T, Error>, Self: Sized,

Run a scoped write-only query in order to track transaction context
Source§

fn disconnect(&self) -> Result<(), ConnectionError>

Source§

fn reconnect(&self) -> Result<(), ConnectionError>

Source§

impl<C> Debug for DbConnection<C>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<C: ConnectionExt> Delete<StoredGroupIntent> for DbConnection<C>

Source§

impl<C: ConnectionExt> Delete<StoredKeyStoreEntry> for DbConnection<C>

Source§

impl<C: ConnectionExt> From<DbConnection<C>> for XmtpOpenMlsProvider<SqlKeyStore<C>>

Source§

fn from(db: DbConnection<C>) -> XmtpOpenMlsProvider<SqlKeyStore<C>>

Converts to this type from the input type.
Source§

impl<C: ConnectionExt> IntoConnection for DbConnection<C>

Source§

impl<C: ConnectionExt> Pragmas for DbConnection<C>

Source§

fn busy_timeout(&self) -> Result<i32, ConnectionError>

Check the busy timeout value
Source§

fn set_sqlcipher_log<S: AsRef<str>>( &self, level: S, ) -> Result<(), ConnectionError>

Source§

impl<C: ConnectionExt> QueryAssociationStateCache for DbConnection<C>

Source§

fn write_to_cache( &self, inbox_id: String, sequence_id: i64, state: AssociationStateProto, ) -> Result<(), StorageError>

Source§

fn read_from_cache<A: AsRef<str>>( &self, inbox_id: A, sequence_id: i64, ) -> Result<Option<AssociationStateProto>, StorageError>

Source§

fn batch_read_from_cache( &self, identifiers: Vec<(String, i64)>, ) -> Result<Vec<AssociationStateProto>, StorageError>

Source§

impl<C: ConnectionExt> QueryConsentRecord for DbConnection<C>

Returns the consent_records for the given entity up

Insert consent_records, and replace existing entries, returns records that are new or changed

Source§

fn consent_records(&self) -> Result<Vec<StoredConsentRecord>, ConnectionError>

Source§

fn consent_records_paged( &self, limit: i64, offset: i64, ) -> Result<Vec<StoredConsentRecord>, ConnectionError>

Returns true if newer
Source§

impl<C: ConnectionExt> QueryConversationList for DbConnection<C>

Source§

impl<C: ConnectionExt> QueryDeviceSyncMessages for DbConnection<C>

Source§

fn unprocessed_sync_group_messages( &self, ) -> Result<Vec<StoredGroupMessage>, StorageError>

Source§

fn sync_group_messages_paged( &self, offset: i64, limit: i64, ) -> Result<Vec<StoredGroupMessage>, StorageError>

Source§

fn mark_device_sync_msg_as_processed( &self, message_id: &[u8], ) -> Result<(), StorageError>

Marks a device sync message as processed.
Source§

fn increment_device_sync_msg_attempt( &self, message_id: &[u8], max_attempts: i32, ) -> Result<i32, StorageError>

Increments the attempt count for a device sync message. If the attempt count reaches max_attempts, the state is set to Failed. Returns the new attempt count.
Source§

impl<C: ConnectionExt> QueryDms for DbConnection<C>

Source§

fn fetch_stitched( &self, key: &[u8], ) -> Result<Option<StoredGroup>, ConnectionError>

Same behavior as fetched, but will stitch DM groups

Source§

fn other_dms( &self, group_id: &[u8], ) -> Result<Vec<StoredGroup>, ConnectionError>

Load the other DMs that are stitched into this group

Source§

fn find_active_dm_group<M>( &self, members: M, ) -> Result<Option<StoredGroup>, ConnectionError>
where M: Display,

Source§

impl<C: ConnectionExt> QueryGroup for DbConnection<C>

Source§

fn find_groups<A: AsRef<GroupQueryArgs>>( &self, args: A, ) -> Result<Vec<StoredGroup>, ConnectionError>

Return regular Purpose::Conversation groups with additional optional filters

Source§

fn update_group_membership<GroupId: AsRef<[u8]>>( &self, group_id: GroupId, state: GroupMembershipState, ) -> Result<(), ConnectionError>

Updates group membership state

Source§

fn find_group(&self, id: &[u8]) -> Result<Option<StoredGroup>, ConnectionError>

Return a single group that matches the given ID

Source§

fn find_group_by_sequence_id( &self, cursor: Cursor, ) -> Result<Option<StoredGroup>, ConnectionError>

Return a single group that matches the given welcome ID

Source§

fn update_rotated_at_ns(&self, group_id: Vec<u8>) -> Result<(), StorageError>

Updates the ‘last time checked’ we checked for new installations.

Source§

fn update_installations_time_checked( &self, group_id: Vec<u8>, ) -> Result<(), StorageError>

Updates the ‘last time checked’ we checked for new installations.

Source§

fn group_cursors(&self) -> Result<Vec<Cursor>, ConnectionError>

Get all the welcome ids turned into groups

Source§

fn get_conversation_ids_for_remote_log_publish( &self, ) -> Result<Vec<StoredGroupCommitLogPublicKey>, ConnectionError>

Get conversation IDs for all conversations that require a remote commit log publish (DMs and groups where user is super admin, excluding sync groups and rejected groups)

Source§

fn find_groups_by_id_paged<A: AsRef<GroupQueryArgs>>( &self, args: A, offset: i64, ) -> Result<Vec<StoredGroup>, ConnectionError>

Source§

fn all_sync_groups(&self) -> Result<Vec<StoredGroup>, ConnectionError>

Source§

fn find_sync_group( &self, id: &[u8], ) -> Result<Option<StoredGroup>, ConnectionError>

Source§

fn primary_sync_group(&self) -> Result<Option<StoredGroup>, ConnectionError>

Source§

fn get_rotated_at_ns(&self, group_id: Vec<u8>) -> Result<i64, StorageError>

Source§

fn get_installations_time_checked( &self, group_id: Vec<u8>, ) -> Result<i64, StorageError>

Source§

fn update_message_disappearing_from_ns( &self, group_id: Vec<u8>, from_ns: Option<i64>, ) -> Result<(), StorageError>

Source§

fn update_message_disappearing_in_ns( &self, group_id: Vec<u8>, in_ns: Option<i64>, ) -> Result<(), StorageError>

Source§

fn insert_or_replace_group( &self, group: StoredGroup, ) -> Result<StoredGroup, StorageError>

Source§

fn mark_group_as_maybe_forked( &self, group_id: &[u8], fork_details: String, ) -> Result<(), StorageError>

Source§

fn clear_fork_flag_for_group( &self, group_id: &[u8], ) -> Result<(), ConnectionError>

Source§

fn has_duplicate_dm(&self, group_id: &[u8]) -> Result<bool, ConnectionError>

Source§

fn get_conversation_ids_for_remote_log_download( &self, ) -> Result<Vec<StoredGroupCommitLogPublicKey>, ConnectionError>

Get conversations for all conversations that require a remote commit log download (DMs and groups that are not sync groups)
Source§

fn get_conversation_ids_for_fork_check( &self, ) -> Result<Vec<Vec<u8>>, ConnectionError>

Get conversation IDs for fork checking (excludes already forked conversations and sync groups)
Source§

fn get_conversation_ids_for_requesting_readds( &self, ) -> Result<Vec<StoredGroupForReaddRequest>, ConnectionError>

Get conversation IDs for conversations that are forked and need readd requests
Source§

fn get_conversation_ids_for_responding_readds( &self, ) -> Result<Vec<StoredGroupForRespondingReadds>, ConnectionError>

Get conversation IDs for conversations that need to respond to readd requests
Source§

fn get_conversation_type( &self, group_id: &[u8], ) -> Result<ConversationType, ConnectionError>

Source§

fn set_group_commit_log_public_key( &self, group_id: &[u8], public_key: &[u8], ) -> Result<(), StorageError>

Updates the commit log public key for a group
Source§

fn set_group_commit_log_forked_status( &self, group_id: &[u8], is_forked: Option<bool>, ) -> Result<(), StorageError>

Updates the is_commit_log_forked status for a group
Source§

fn get_group_commit_log_forked_status( &self, group_id: &[u8], ) -> Result<Option<bool>, StorageError>

Gets the is_commit_log_forked status for a group
Source§

fn set_group_has_pending_leave_request_status( &self, group_id: &[u8], has_pending_leave_request: Option<bool>, ) -> Result<(), StorageError>

Updates the has_pending_leave_request status for a group
Source§

fn get_groups_have_pending_leave_request( &self, ) -> Result<Vec<Vec<u8>>, ConnectionError>

Source§

impl<C: ConnectionExt> QueryGroupIntent for DbConnection<C>

Source§

fn set_group_intent_error(&self, intent_id: ID) -> Result<(), StorageError>

Set the intent with the given ID to Error

Source§

fn find_dependant_commits<P: AsRef<[u8]>>( &self, payload_hashes: &[P], ) -> Result<HashMap<PayloadHash, IntentDependency>, StorageError>

Find the commit message refresh state for each intent by payload hash. Returns a map from payload hash to a vector of dependencies (one per originator).

Source§

fn insert_group_intent( &self, to_save: NewGroupIntent, ) -> Result<StoredGroupIntent, ConnectionError>

Source§

fn find_group_intents<Id: AsRef<[u8]>>( &self, group_id: Id, allowed_states: Option<Vec<IntentState>>, allowed_kinds: Option<Vec<IntentKind>>, ) -> Result<Vec<StoredGroupIntent>, ConnectionError>

Source§

fn set_group_intent_published( &self, intent_id: ID, payload_hash: &[u8], post_commit_data: Option<Vec<u8>>, staged_commit: Option<Vec<u8>>, published_in_epoch: i64, ) -> Result<(), StorageError>

Source§

fn set_group_intent_committed( &self, intent_id: ID, cursor: Cursor, ) -> Result<(), StorageError>

Source§

fn set_group_intent_processed(&self, intent_id: ID) -> Result<(), StorageError>

Source§

fn set_group_intent_to_publish(&self, intent_id: ID) -> Result<(), StorageError>

Source§

fn find_group_intent_by_payload_hash( &self, payload_hash: &[u8], ) -> Result<Option<StoredGroupIntent>, StorageError>

Source§

fn increment_intent_publish_attempt_count( &self, intent_id: ID, ) -> Result<(), StorageError>

Source§

fn set_group_intent_error_and_fail_msg( &self, intent: &StoredGroupIntent, msg_id: Option<Vec<u8>>, ) -> Result<(), StorageError>

Source§

impl<C: ConnectionExt> QueryGroupMessage for DbConnection<C>

Source§

fn get_group_messages( &self, group_id: &[u8], args: &MsgQueryArgs, ) -> Result<Vec<StoredGroupMessage>, ConnectionError>

Query for group messages

Source§

fn count_group_messages( &self, group_id: &[u8], args: &MsgQueryArgs, ) -> Result<i64, ConnectionError>

Count group messages matching the given criteria

Source§

fn get_group_messages_with_reactions( &self, group_id: &[u8], args: &MsgQueryArgs, ) -> Result<Vec<StoredGroupMessageWithReactions>, ConnectionError>

Query for group messages with their reactions

Source§

fn get_group_message<MessageId: AsRef<[u8]>>( &self, id: MessageId, ) -> Result<Option<StoredGroupMessage>, ConnectionError>

Get a particular group message

Source§

fn write_conn_get_group_message<MessageId: AsRef<[u8]>>( &self, id: MessageId, ) -> Result<Option<StoredGroupMessage>, ConnectionError>

Get a particular group message using the write connection

Source§

fn group_messages_paged( &self, args: &MsgQueryArgs, offset: i64, ) -> Result<Vec<StoredGroupMessage>, ConnectionError>

Source§

fn get_inbound_relations( &self, group_id: &[u8], message_ids: &[&[u8]], relation_query: RelationQuery, ) -> Result<InboundRelations, ConnectionError>

Source§

fn get_outbound_relations( &self, group_id: &[u8], reference_ids: &[&[u8]], ) -> Result<OutboundRelations, ConnectionError>

Source§

fn get_inbound_relation_counts( &self, group_id: &[u8], message_ids: &[&[u8]], relation_query: RelationQuery, ) -> Result<RelationCounts, ConnectionError>

Source§

fn get_latest_message_times_by_sender<GroupId: AsRef<[u8]>>( &self, group_id: GroupId, allowed_content_types: &[ContentType], ) -> Result<LatestMessageTimeBySender, ConnectionError>

Source§

fn get_group_message_by_timestamp<GroupId: AsRef<[u8]>>( &self, group_id: GroupId, timestamp: i64, ) -> Result<Option<StoredGroupMessage>, ConnectionError>

Source§

fn get_group_message_by_cursor<GroupId: AsRef<[u8]>>( &self, group_id: GroupId, cursor: Cursor, ) -> Result<Option<StoredGroupMessage>, ConnectionError>

Source§

fn set_delivery_status_to_published<MessageId: AsRef<[u8]>>( &self, msg_id: &MessageId, timestamp: u64, cursor: Cursor, message_expire_at_ns: Option<i64>, ) -> Result<usize, ConnectionError>

Source§

fn set_delivery_status_to_failed<MessageId: AsRef<[u8]>>( &self, msg_id: &MessageId, ) -> Result<usize, ConnectionError>

Source§

fn delete_expired_messages( &self, ) -> Result<Vec<StoredGroupMessage>, ConnectionError>

Source§

fn delete_message_by_id<MessageId: AsRef<[u8]>>( &self, message_id: MessageId, ) -> Result<usize, ConnectionError>

Source§

fn messages_newer_than( &self, cursors_by_group: &HashMap<Vec<u8>, GlobalCursor>, ) -> Result<Vec<Cursor>, ConnectionError>

Source§

fn clear_messages( &self, group_ids: Option<&[Vec<u8>]>, retention_days: Option<u32>, ) -> Result<usize, ConnectionError>

Clear messages from the database with optional filtering. Read more
Source§

impl<C: ConnectionExt> QueryGroupVersion for DbConnection<C>

Source§

fn set_group_paused( &self, group_id: &[u8], min_version: &str, ) -> Result<(), StorageError>

Source§

fn unpause_group(&self, group_id: &[u8]) -> Result<(), StorageError>

Source§

fn get_group_paused_version( &self, group_id: &[u8], ) -> Result<Option<String>, StorageError>

Source§

impl<C: ConnectionExt> QueryIcebox for DbConnection<C>

Source§

fn past_dependents( &self, cursors: &[Cursor], ) -> Result<Vec<OrphanedEnvelope>, ConnectionError>

Returns the envelopes (if they exist) plus all their dependencies, and dependencies of dependencies, along with each envelope’s own dependencies. This could be useful for resolving issues where a commit that could have been processed, was accidentally committed to the icebox. Generally, if an envelope has a dependency on something in the icebox already it means its dependency could not be processed, so it must also be iceboxed.
Source§

fn future_dependents( &self, cursors: &[Cursor], ) -> Result<Vec<OrphanedEnvelope>, ConnectionError>

Returns envelopes that depend on any of the specified cursors, along with each envelope’s own dependencies. Does not return the cursors themselves, if they exist in the chain.
Source§

fn ice(&self, orphans: Vec<OrphanedEnvelope>) -> Result<usize, ConnectionError>

cache the orphans until its parent(s) may be found.
Source§

fn prune_icebox(&self) -> Result<usize, ConnectionError>

Removes icebox entries that have been processed according to refresh_state. Deletes entries where the refresh_state cursor for the group is at or beyond the icebox entry’s sequence_id, indicating the envelope has been processed.
Source§

impl<C: ConnectionExt> QueryIdentity for DbConnection<C>

Source§

impl<C: ConnectionExt> QueryIdentityCache for DbConnection<C>

Source§

fn fetch_cached_inbox_ids<T>( &self, identifiers: &[T], ) -> Result<HashMap<String, String>, StorageError>
where T: Display, for<'a> &'a T: Into<StoredIdentityKind>,

Returns a HashMap of WalletAddress -> InboxId

Source§

fn cache_inbox_id<T, S>( &self, identifier: &T, inbox_id: S, ) -> Result<(), StorageError>
where T: Display, S: ToString, for<'a> &'a T: Into<StoredIdentityKind>,

Source§

impl<C: ConnectionExt> QueryIdentityUpdates for DbConnection<C>

Source§

fn get_identity_updates<InboxId: AsRef<str>>( &self, inbox_id: InboxId, from_sequence_id: Option<i64>, to_sequence_id: Option<i64>, ) -> Result<Vec<StoredIdentityUpdate>, ConnectionError>

Returns all identity updates for the given inbox ID up to the provided sequence_id. Returns updates greater than from_sequence_id and less than or equal to to_sequence_id

Source§

fn insert_or_ignore_identity_updates( &self, updates: &[StoredIdentityUpdate], ) -> Result<(), ConnectionError>

Batch insert identity updates, ignoring duplicates.

Source§

fn get_latest_sequence_id( &self, inbox_ids: &[&str], ) -> Result<HashMap<String, i64>, ConnectionError>

Given a list of inbox_ids return a HashMap of each inbox ID -> highest known sequence ID

Source§

fn get_latest_sequence_id_for_inbox( &self, inbox_id: &str, ) -> Result<i64, ConnectionError>

Source§

fn count_inbox_updates( &self, inbox_ids: &[&str], ) -> Result<HashMap<String, i64>, ConnectionError>

Returns the count of identity updates for inbox_ids
Source§

impl<C: ConnectionExt> QueryKeyPackageHistory for DbConnection<C>

Source§

impl<C: ConnectionExt> QueryKeyStoreEntry for DbConnection<C>

Source§

impl<C: ConnectionExt> QueryLocalCommitLog for DbConnection<C>

Source§

impl<C: ConnectionExt> QueryMessageDeletion for DbConnection<C>

Source§

fn get_message_deletion( &self, id: &[u8], ) -> Result<Option<StoredMessageDeletion>, ConnectionError>

Get a deletion record by the DeleteMessage ID
Source§

fn get_deletion_by_deleted_message_id( &self, deleted_message_id: &[u8], ) -> Result<Option<StoredMessageDeletion>, ConnectionError>

Get deletion record for a specific deleted message
Source§

fn get_deletions_for_messages( &self, message_ids: Vec<Vec<u8>>, ) -> Result<Vec<StoredMessageDeletion>, ConnectionError>

Get all deletions for a list of message IDs
Source§

fn get_group_deletions( &self, group_id: &[u8], ) -> Result<Vec<StoredMessageDeletion>, ConnectionError>

Get all deletions in a group
Source§

fn is_message_deleted(&self, message_id: &[u8]) -> Result<bool, ConnectionError>

Check if a message has been deleted
Source§

impl<C: ConnectionExt> QueryMigrations for DbConnection<C>

Source§

fn applied_migrations(&self) -> Result<Vec<String>, ConnectionError>

Returns a list of all applied migration versions, most recent first.
Source§

fn available_migrations(&self) -> Result<Vec<String>, ConnectionError>

Returns a list of all available (embedded) migration names.
Source§

fn rollback_to_version( &self, version: &str, ) -> Result<Vec<String>, ConnectionError>

Rollback all migrations after and including the specified version. Read more
Source§

fn run_migration(&self, name: &str) -> Result<(), ConnectionError>

Run a specific migration by name. Read more
Source§

fn revert_migration(&self, name: &str) -> Result<(), ConnectionError>

Revert a specific migration by name. Read more
Source§

fn run_pending_migrations(&self) -> Result<Vec<String>, ConnectionError>

Run all pending migrations.
Source§

impl<C: ConnectionExt> QueryPendingRemove for DbConnection<C>

Source§

fn get_pending_remove_users( &self, group_id: &[u8], ) -> Result<Vec<String>, ConnectionError>

Source§

fn get_user_pending_remove_status( &self, group_id: &[u8], inbox_id: &str, ) -> Result<bool, ConnectionError>

Source§

fn delete_pending_remove_users( &self, group_id: &[u8], inbox_ids: Vec<String>, ) -> Result<usize, ConnectionError>

Source§

impl<C: ConnectionExt> QueryReaddStatus for DbConnection<C>

Source§

fn get_readd_status( &self, group_id: &[u8], installation_id: &[u8], ) -> Result<Option<ReaddStatus>, ConnectionError>

Source§

fn is_awaiting_readd( &self, group_id: &[u8], installation_id: &[u8], ) -> Result<bool, ConnectionError>

Source§

fn update_requested_at_sequence_id( &self, group_id: &[u8], installation_id: &[u8], sequence_id: i64, ) -> Result<(), ConnectionError>

Update the requested_at_sequence_id for a given group_id and installation_id, provided it is higher than the current value. Inserts the row if it doesn’t exist.
Source§

fn update_responded_at_sequence_id( &self, group_id: &[u8], installation_id: &[u8], sequence_id: i64, ) -> Result<(), ConnectionError>

Update the responded_at_sequence_id for a given group_id and installation_id, provided it is higher than the current value. Inserts the row if it doesn’t exist.
Source§

fn delete_other_readd_statuses( &self, group_id: &[u8], self_installation_id: &[u8], ) -> Result<(), ConnectionError>

Source§

fn delete_readd_statuses( &self, group_id: &[u8], installation_ids: HashSet<Vec<u8>>, ) -> Result<(), ConnectionError>

Source§

fn get_readds_awaiting_response( &self, group_id: &[u8], self_installation_id: &[u8], ) -> Result<Vec<ReaddStatus>, ConnectionError>

Source§

impl<C: ConnectionExt> QueryRefreshState for DbConnection<C>

Source§

fn get_refresh_state<EntityId: AsRef<[u8]>>( &self, entity_id: EntityId, entity_kind: EntityKind, originator_id: u32, ) -> Result<Option<RefreshState>, StorageError>

Source§

fn get_last_cursor_for_originators<Id: AsRef<[u8]>>( &self, id: Id, entity_kind: EntityKind, originator_ids: &[u32], ) -> Result<Vec<Cursor>, StorageError>

Source§

fn get_last_cursor_for_ids<Id: AsRef<[u8]>>( &self, ids: &[Id], entities: &[EntityKind], ) -> Result<HashMap<Vec<u8>, GlobalCursor>, StorageError>

Source§

fn update_cursor<Id: AsRef<[u8]>>( &self, entity_id: Id, entity_kind: EntityKind, cursor: Cursor, ) -> Result<bool, StorageError>

Source§

fn get_remote_log_cursors( &self, conversation_ids: &[&Vec<u8>], ) -> Result<HashMap<Vec<u8>, Cursor>, ConnectionError>

Source§

fn lowest_common_cursor( &self, topics: &[&Topic], ) -> Result<GlobalCursor, StorageError>

Source§

fn lowest_common_cursor_combined( &self, topics: &[&Topic], ) -> Result<GlobalCursor, StorageError>

Source§

fn latest_cursor_for_id<Id: AsRef<[u8]>>( &self, entity_id: Id, entities: &[EntityKind], originators: Option<&[&OriginatorId]>, ) -> Result<GlobalCursor, StorageError>

Source§

fn latest_cursor_combined<Id: AsRef<[u8]>>( &self, entity_id: Id, entities: &[EntityKind], originators: Option<&[&OriginatorId]>, ) -> Result<GlobalCursor, StorageError>

Source§

fn get_last_cursor_for_originator<Id: AsRef<[u8]>>( &self, id: Id, entity_kind: EntityKind, originator_id: u32, ) -> Result<Cursor, StorageError>

Source§

impl<C: ConnectionExt> QueryRemoteCommitLog for DbConnection<C>

Source§

impl<C: ConnectionExt> QueryTasks for DbConnection<C>

Source§

fn create_task(&self, task: NewTask) -> Result<Task, StorageError>

Source§

fn get_tasks(&self) -> Result<Vec<Task>, StorageError>

Source§

fn get_next_task(&self) -> Result<Option<Task>, StorageError>

Source§

fn update_task( &self, id: i32, attempts: i32, last_attempted_at_ns: i64, next_attempt_at_ns: i64, ) -> Result<Task, StorageError>

Source§

fn delete_task(&self, id: i32) -> Result<bool, StorageError>

Source§

impl<C: ConnectionExt> ReadOnly for DbConnection<C>

Source§

impl<T, C> Store<DbConnection<C>> for Vec<T>
where T: Store<DbConnection<C>>,

Source§

type Output = ()

Source§

fn store(&self, into: &DbConnection<C>) -> Result<Self::Output, StorageError>

Auto Trait Implementations§

§

impl<C> Freeze for DbConnection<C>
where C: Freeze,

§

impl<C> RefUnwindSafe for DbConnection<C>
where C: RefUnwindSafe,

§

impl<C> Send for DbConnection<C>
where C: Send,

§

impl<C> Sync for DbConnection<C>
where C: Sync,

§

impl<C> Unpin for DbConnection<C>
where C: Unpin,

§

impl<C> UnwindSafe for DbConnection<C>
where C: UnwindSafe,

Blanket Implementations§

§

impl<T> AggregateExpressionMethods for T

§

fn aggregate_distinct(self) -> Self::Output
where Self: DistinctDsl,

DISTINCT modifier for aggregate functions Read more
§

fn aggregate_all(self) -> Self::Output
where Self: AllDsl,

ALL modifier for aggregate functions Read more
§

fn aggregate_filter<P>(self, f: P) -> Self::Output
where 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::Output
where Self: OrderAggregateDsl<O>,

Add an aggregate function order Read more
Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Any for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

§

fn type_name(&self) -> &'static str

§

impl<T> AnySync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

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
§

impl<T> Classify for T

§

type Classified = T

§

fn classify(self) -> T

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
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Declassify for T

§

type Declassified = T

§

fn declassify(self) -> T

§

impl<T> Downcast for T
where T: 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>

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)

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)

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
where T: Any + Send,

§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_sync(self: Box<T>) -> Box<dyn Any + Send + Sync>

Converts Box<Trait> (where Trait: DowncastSync) to Box<dyn Any + Send + Sync>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

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

Source§

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

Source§

impl<C> Fetch<IdentityCache> for C
where C: ConnectionExt,

Source§

impl<C> Fetch<PendingRemove> for C
where C: ConnectionExt,

Source§

impl<C> Fetch<StoredAssociationState> for C
where C: ConnectionExt,

Source§

impl<C> Fetch<StoredGroup> for C
where C: ConnectionExt,

Source§

impl<C> Fetch<StoredGroupIntent> for C
where C: ConnectionExt,

Source§

impl<C> Fetch<StoredGroupMessage> for C
where C: ConnectionExt,

Source§

impl<C> Fetch<StoredIdentity> for C
where C: ConnectionExt,

Source§

impl<C> Fetch<StoredKeyStoreEntry> for C
where C: ConnectionExt,

§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

§

const WITNESS: W = W::MAKE

A constant of the type witness
§

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

§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
§

impl<T> Instrument for T

§

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

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

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> IntoEither for T

Source§

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

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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

§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

impl<T> IntoSql for T

§

fn into_sql<T>(self) -> Self::Expression
where Self: Sized + AsExpression<T>, T: SqlType + TypedExpressionType,

Convert self to an expression for Diesel’s query builder. Read more
§

fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
where &'a Self: AsExpression<T>, T: SqlType + TypedExpressionType,

Convert &self to an expression for Diesel’s query builder. Read more
§

impl<L> LayerExt<L> for L

§

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<D> OwoColorize for D

§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either [OwoColorize::fg] or a color-specific method, such as [OwoColorize::green], Read more
§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either [OwoColorize::bg] or a color-specific method, such as [OwoColorize::on_yellow], Read more
§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
§

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

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WindowExpressionMethods for T

§

fn over(self) -> Self::Output
where Self: OverDsl,

Turn a function call into a window function call Read more
§

fn window_filter<P>(self, f: P) -> Self::Output
where 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::Output
where Self: PartitionByDsl<E>,

Add a partition clause to the current window function Read more
§

fn window_order<E>(self, expr: E) -> Self::Output
where Self: OrderWindowDsl<E>,

Add a order clause to the current window function Read more
§

fn frame_by<E>(self, expr: E) -> Self::Output
where Self: FrameDsl<E>,

Add a frame clause to the current window function Read more
§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> DbQuery for T

Source§

impl<T> MaybeSend for T
where T: Send + ?Sized,

Source§

impl<T> MaybeSync for T
where T: Sync + ?Sized,