QueryGroupMessage

Trait QueryGroupMessage 

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

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 group_messages_paged( &self, args: &MsgQueryArgs, offset: i64, ) -> Result<Vec<StoredGroupMessage>, ConnectionError>

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_inbound_relations( &self, group_id: &[u8], message_ids: &[&[u8]], relation_query: RelationQuery, ) -> Result<InboundRelations, ConnectionError>

Source

fn get_outbound_relations( &self, group_id: &[u8], message_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_group_message<MessageId: AsRef<[u8]>>( &self, id: MessageId, ) -> Result<Option<StoredGroupMessage>, ConnectionError>

Get a particular group message

Source

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

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 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, sequence_id: 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.

§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 &T

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], message_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>

Implementors§