pub trait QueryGroupMessage {
Show 20 methods
// Required methods
fn get_group_messages(
&self,
group_id: &GroupId,
args: &MsgQueryArgs,
) -> Result<Vec<StoredGroupMessage>, ConnectionError>;
fn count_group_messages(
&self,
group_id: &GroupId,
args: &MsgQueryArgs,
) -> Result<i64, ConnectionError>;
fn missing_messages(
&self,
group_id: &GroupId,
sequence_ids: &[u64],
) -> Result<Vec<StoredGroupMessage>, ConnectionError>;
fn group_messages_paged(
&self,
args: &MsgQueryArgs,
offset: i64,
) -> Result<Vec<StoredGroupMessage>, ConnectionError>;
fn get_group_messages_with_reactions(
&self,
group_id: &GroupId,
args: &MsgQueryArgs,
) -> Result<Vec<StoredGroupMessageWithReactions>, ConnectionError>;
fn get_inbound_relations(
&self,
group_id: &GroupId,
message_ids: &[&[u8]],
relation_query: RelationQuery,
) -> Result<InboundRelations, ConnectionError>;
fn get_outbound_relations(
&self,
group_id: &GroupId,
message_ids: &[&[u8]],
) -> Result<OutboundRelations, ConnectionError>;
fn get_inbound_relation_counts(
&self,
group_id: &GroupId,
message_ids: &[&[u8]],
relation_query: RelationQuery,
) -> Result<RelationCounts, ConnectionError>;
fn get_group_message<MessageId: AsRef<[u8]>>(
&self,
id: MessageId,
) -> Result<Option<StoredGroupMessage>, ConnectionError>;
fn get_latest_message_times_by_sender<Id: AsRef<[u8]>>(
&self,
group_id: Id,
allowed_content_types: &[ContentType],
) -> Result<LatestMessageTimeBySender, ConnectionError>;
fn write_conn_get_group_message<MessageId: AsRef<[u8]>>(
&self,
id: MessageId,
) -> Result<Option<StoredGroupMessage>, ConnectionError>;
fn get_group_message_by_timestamp<Id: AsRef<[u8]>>(
&self,
group_id: Id,
timestamp: i64,
) -> Result<Option<StoredGroupMessage>, ConnectionError>;
fn get_group_message_by_cursor<Id: AsRef<[u8]>>(
&self,
group_id: Id,
sequence_id: Cursor,
) -> Result<Option<StoredGroupMessage>, ConnectionError>;
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, StorageError>;
fn set_delivery_status_to_failed<MessageId: AsRef<[u8]>>(
&self,
msg_id: &MessageId,
) -> Result<usize, ConnectionError>;
fn delete_expired_messages(
&self,
) -> Result<Vec<StoredGroupMessage>, ConnectionError>;
fn min_expire_at_ns(&self) -> Result<Option<i64>, ConnectionError>;
fn delete_message_by_id<MessageId: AsRef<[u8]>>(
&self,
message_id: MessageId,
) -> Result<usize, ConnectionError>;
fn messages_newer_than(
&self,
cursors_by_group: &HashMap<Vec<u8>, Cursor>,
) -> Result<Vec<(GroupId, Cursor)>, ConnectionError>;
fn clear_messages(
&self,
group_ids: Option<&[GroupId]>,
retention_days: Option<u32>,
) -> Result<usize, ConnectionError>;
}Required Methods§
Sourcefn get_group_messages(
&self,
group_id: &GroupId,
args: &MsgQueryArgs,
) -> Result<Vec<StoredGroupMessage>, ConnectionError>
fn get_group_messages( &self, group_id: &GroupId, args: &MsgQueryArgs, ) -> Result<Vec<StoredGroupMessage>, ConnectionError>
Query for group messages
Sourcefn count_group_messages(
&self,
group_id: &GroupId,
args: &MsgQueryArgs,
) -> Result<i64, ConnectionError>
fn count_group_messages( &self, group_id: &GroupId, args: &MsgQueryArgs, ) -> Result<i64, ConnectionError>
Count group messages matching the given criteria
Sourcefn missing_messages(
&self,
group_id: &GroupId,
sequence_ids: &[u64],
) -> Result<Vec<StoredGroupMessage>, ConnectionError>
fn missing_messages( &self, group_id: &GroupId, sequence_ids: &[u64], ) -> Result<Vec<StoredGroupMessage>, ConnectionError>
Return all Application-kind messages stored locally for group_id
whose sequence_id is NOT in the provided list. Used by tools that
compare local state against an authoritative set of sequence ids
(e.g. xdbg’s healthcheck validator).
fn group_messages_paged( &self, args: &MsgQueryArgs, offset: i64, ) -> Result<Vec<StoredGroupMessage>, ConnectionError>
Sourcefn get_group_messages_with_reactions(
&self,
group_id: &GroupId,
args: &MsgQueryArgs,
) -> Result<Vec<StoredGroupMessageWithReactions>, ConnectionError>
fn get_group_messages_with_reactions( &self, group_id: &GroupId, args: &MsgQueryArgs, ) -> Result<Vec<StoredGroupMessageWithReactions>, ConnectionError>
Query for group messages with their reactions
fn get_inbound_relations( &self, group_id: &GroupId, message_ids: &[&[u8]], relation_query: RelationQuery, ) -> Result<InboundRelations, ConnectionError>
fn get_outbound_relations( &self, group_id: &GroupId, message_ids: &[&[u8]], ) -> Result<OutboundRelations, ConnectionError>
fn get_inbound_relation_counts( &self, group_id: &GroupId, message_ids: &[&[u8]], relation_query: RelationQuery, ) -> Result<RelationCounts, ConnectionError>
Sourcefn get_group_message<MessageId: AsRef<[u8]>>(
&self,
id: MessageId,
) -> Result<Option<StoredGroupMessage>, ConnectionError>
fn get_group_message<MessageId: AsRef<[u8]>>( &self, id: MessageId, ) -> Result<Option<StoredGroupMessage>, ConnectionError>
Get a particular group message
fn get_latest_message_times_by_sender<Id: AsRef<[u8]>>( &self, group_id: Id, allowed_content_types: &[ContentType], ) -> Result<LatestMessageTimeBySender, ConnectionError>
Sourcefn write_conn_get_group_message<MessageId: AsRef<[u8]>>(
&self,
id: MessageId,
) -> Result<Option<StoredGroupMessage>, ConnectionError>
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
fn get_group_message_by_timestamp<Id: AsRef<[u8]>>( &self, group_id: Id, timestamp: i64, ) -> Result<Option<StoredGroupMessage>, ConnectionError>
fn get_group_message_by_cursor<Id: AsRef<[u8]>>( &self, group_id: Id, sequence_id: Cursor, ) -> Result<Option<StoredGroupMessage>, ConnectionError>
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, StorageError>
fn set_delivery_status_to_failed<MessageId: AsRef<[u8]>>( &self, msg_id: &MessageId, ) -> Result<usize, ConnectionError>
fn delete_expired_messages( &self, ) -> Result<Vec<StoredGroupMessage>, ConnectionError>
Sourcefn min_expire_at_ns(&self) -> Result<Option<i64>, ConnectionError>
fn min_expire_at_ns(&self) -> Result<Option<i64>, ConnectionError>
The soonest expire_at_ns among published Application messages that have
an expiry set, or None if no disappearing messages exist. Note this can
return a timestamp already in the past (an expiry that elapsed while the
worker was asleep) — the caller clamps the resulting sleep to >= 0 and
deletes on the next wake. Same filters as delete_expired_messages
without its expire_at_ns <= now bound.
fn delete_message_by_id<MessageId: AsRef<[u8]>>( &self, message_id: MessageId, ) -> Result<usize, ConnectionError>
Sourcefn messages_newer_than(
&self,
cursors_by_group: &HashMap<Vec<u8>, Cursor>,
) -> Result<Vec<(GroupId, Cursor)>, ConnectionError>
fn messages_newer_than( &self, cursors_by_group: &HashMap<Vec<u8>, Cursor>, ) -> Result<Vec<(GroupId, Cursor)>, ConnectionError>
Stored messages above each group’s cursor, attributed to their group. The attribution matters: sequence ids are not scoped per group, so a caller folding these into per-group state must never mix groups.
Sourcefn clear_messages(
&self,
group_ids: Option<&[GroupId]>,
retention_days: Option<u32>,
) -> Result<usize, ConnectionError>
fn clear_messages( &self, group_ids: Option<&[GroupId]>, retention_days: Option<u32>, ) -> Result<usize, ConnectionError>
Clear messages from the database with optional filtering.
§Arguments
group_ids- If provided, only delete messages in these groups. If None, delete from all groups.retention_days- If provided, only delete messages older than this many days. If None, delete all matching messages.
§Returns
The number of messages deleted.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl<T> QueryGroupMessage for &Twhere
T: QueryGroupMessage,
impl<T> QueryGroupMessage for &Twhere
T: QueryGroupMessage,
Source§fn get_group_messages(
&self,
group_id: &GroupId,
args: &MsgQueryArgs,
) -> Result<Vec<StoredGroupMessage>, ConnectionError>
fn get_group_messages( &self, group_id: &GroupId, args: &MsgQueryArgs, ) -> Result<Vec<StoredGroupMessage>, ConnectionError>
Query for group messages
Source§fn count_group_messages(
&self,
group_id: &GroupId,
args: &MsgQueryArgs,
) -> Result<i64, ConnectionError>
fn count_group_messages( &self, group_id: &GroupId, args: &MsgQueryArgs, ) -> Result<i64, ConnectionError>
Count group messages matching the given criteria
Source§fn get_group_messages_with_reactions(
&self,
group_id: &GroupId,
args: &MsgQueryArgs,
) -> Result<Vec<StoredGroupMessageWithReactions>, ConnectionError>
fn get_group_messages_with_reactions( &self, group_id: &GroupId, 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>
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>
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