pub trait QueryGroupMessage {
Show 18 methods
// Required methods
fn get_group_messages(
&self,
group_id: &[u8],
args: &MsgQueryArgs,
) -> Result<Vec<StoredGroupMessage>, ConnectionError>;
fn count_group_messages(
&self,
group_id: &[u8],
args: &MsgQueryArgs,
) -> Result<i64, ConnectionError>;
fn group_messages_paged(
&self,
args: &MsgQueryArgs,
offset: i64,
) -> Result<Vec<StoredGroupMessage>, ConnectionError>;
fn get_group_messages_with_reactions(
&self,
group_id: &[u8],
args: &MsgQueryArgs,
) -> Result<Vec<StoredGroupMessageWithReactions>, ConnectionError>;
fn get_inbound_relations(
&self,
group_id: &[u8],
message_ids: &[&[u8]],
relation_query: RelationQuery,
) -> Result<InboundRelations, ConnectionError>;
fn get_outbound_relations(
&self,
group_id: &[u8],
message_ids: &[&[u8]],
) -> Result<OutboundRelations, ConnectionError>;
fn get_inbound_relation_counts(
&self,
group_id: &[u8],
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<GroupId: AsRef<[u8]>>(
&self,
group_id: GroupId,
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<GroupId: AsRef<[u8]>>(
&self,
group_id: GroupId,
timestamp: i64,
) -> Result<Option<StoredGroupMessage>, ConnectionError>;
fn get_group_message_by_cursor<GroupId: AsRef<[u8]>>(
&self,
group_id: GroupId,
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, ConnectionError>;
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 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>, GlobalCursor>,
) -> Result<Vec<Cursor>, ConnectionError>;
fn clear_messages(
&self,
group_ids: Option<&[Vec<u8>]>,
retention_days: Option<u32>,
) -> Result<usize, ConnectionError>;
}Required Methods§
Sourcefn get_group_messages(
&self,
group_id: &[u8],
args: &MsgQueryArgs,
) -> Result<Vec<StoredGroupMessage>, ConnectionError>
fn get_group_messages( &self, group_id: &[u8], args: &MsgQueryArgs, ) -> Result<Vec<StoredGroupMessage>, ConnectionError>
Query for group messages
Sourcefn count_group_messages(
&self,
group_id: &[u8],
args: &MsgQueryArgs,
) -> Result<i64, ConnectionError>
fn count_group_messages( &self, group_id: &[u8], args: &MsgQueryArgs, ) -> Result<i64, ConnectionError>
Count group messages matching the given criteria
fn group_messages_paged( &self, args: &MsgQueryArgs, offset: i64, ) -> Result<Vec<StoredGroupMessage>, ConnectionError>
Sourcefn get_group_messages_with_reactions(
&self,
group_id: &[u8],
args: &MsgQueryArgs,
) -> Result<Vec<StoredGroupMessageWithReactions>, ConnectionError>
fn get_group_messages_with_reactions( &self, group_id: &[u8], args: &MsgQueryArgs, ) -> Result<Vec<StoredGroupMessageWithReactions>, ConnectionError>
Query for group messages with their reactions
fn get_inbound_relations( &self, group_id: &[u8], message_ids: &[&[u8]], relation_query: RelationQuery, ) -> Result<InboundRelations, ConnectionError>
fn get_outbound_relations( &self, group_id: &[u8], message_ids: &[&[u8]], ) -> Result<OutboundRelations, ConnectionError>
fn get_inbound_relation_counts( &self, group_id: &[u8], 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<GroupId: AsRef<[u8]>>( &self, group_id: GroupId, 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<GroupId: AsRef<[u8]>>( &self, group_id: GroupId, timestamp: i64, ) -> Result<Option<StoredGroupMessage>, ConnectionError>
fn get_group_message_by_cursor<GroupId: AsRef<[u8]>>( &self, group_id: GroupId, 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, ConnectionError>
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 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>, GlobalCursor>, ) -> Result<Vec<Cursor>, ConnectionError>
Sourcefn clear_messages(
&self,
group_ids: Option<&[Vec<u8>]>,
retention_days: Option<u32>,
) -> Result<usize, ConnectionError>
fn clear_messages( &self, group_ids: Option<&[Vec<u8>]>, 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: &[u8],
args: &MsgQueryArgs,
) -> Result<Vec<StoredGroupMessage>, ConnectionError>
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>
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>
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>
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