pub struct MessagesV1 {
pub messages: Vec<AuthorizedMessageV1>,
pub actions_state: MessageActionsState,
}Fields§
§messages: Vec<AuthorizedMessageV1>§actions_state: MessageActionsStateComputed state from action messages (not serialized - rebuilt on each delta)
Implementations§
Source§impl MessagesV1
impl MessagesV1
Sourcepub fn rebuild_actions_state(&mut self)
pub fn rebuild_actions_state(&mut self)
Rebuild the computed actions state by scanning all action messages.
This method only processes PUBLIC action messages. For private rooms,
use rebuild_actions_state_with_decrypted and provide the decrypted
content for each private action message.
Sourcepub fn rebuild_actions_state_with_decrypted(
&mut self,
decrypted_content: &HashMap<MessageId, Vec<u8>>,
)
pub fn rebuild_actions_state_with_decrypted( &mut self, decrypted_content: &HashMap<MessageId, Vec<u8>>, )
Rebuild actions state with decrypted content for private action messages.
For private rooms, the caller should decrypt each private action message
and provide the plaintext bytes in decrypted_content, keyed by message ID.
§Arguments
decrypted_content- Map of message_id -> decrypted plaintext bytes for private action messages. Public actions are decoded directly.
Sourcepub fn is_deleted(&self, message_id: &MessageId) -> bool
pub fn is_deleted(&self, message_id: &MessageId) -> bool
Check if a message has been deleted
Sourcepub fn effective_text(&self, message: &AuthorizedMessageV1) -> Option<String>
pub fn effective_text(&self, message: &AuthorizedMessageV1) -> Option<String>
Get the effective text content for a message (edited content if edited, original otherwise) Returns the text content as a string, or None if the message is encrypted/undecodable
Sourcepub fn reactions(
&self,
message_id: &MessageId,
) -> Option<&HashMap<String, Vec<MemberId>>>
pub fn reactions( &self, message_id: &MessageId, ) -> Option<&HashMap<String, Vec<MemberId>>>
Get reactions for a message
Sourcepub fn display_messages(&self) -> impl Iterator<Item = &AuthorizedMessageV1>
pub fn display_messages(&self) -> impl Iterator<Item = &AuthorizedMessageV1>
Get all non-deleted, non-action messages for display
Trait Implementations§
Source§impl Clone for MessagesV1
impl Clone for MessagesV1
Source§fn clone(&self) -> MessagesV1
fn clone(&self) -> MessagesV1
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl ComposableState for MessagesV1
impl ComposableState for MessagesV1
type ParentState = ChatRoomStateV1
type Summary = Vec<MessageId>
type Delta = Vec<AuthorizedMessageV1>
type Parameters = ChatRoomParametersV1
fn verify( &self, parent_state: &Self::ParentState, parameters: &Self::Parameters, ) -> Result<(), String>
fn summarize( &self, _parent_state: &Self::ParentState, _parameters: &Self::Parameters, ) -> Self::Summary
fn delta( &self, _parent_state: &Self::ParentState, _parameters: &Self::Parameters, old_state_summary: &Self::Summary, ) -> Option<Self::Delta>
Source§fn apply_delta(
&mut self,
parent_state: &Self::ParentState,
parameters: &Self::Parameters,
delta: &Option<Self::Delta>,
) -> Result<(), String>
fn apply_delta( &mut self, parent_state: &Self::ParentState, parameters: &Self::Parameters, delta: &Option<Self::Delta>, ) -> Result<(), String>
delta to the current state. Read moreSource§fn merge(
&mut self,
parent_state: &Self::ParentState,
parameters: &Self::Parameters,
other_state: &Self,
) -> Result<(), String>
fn merge( &mut self, parent_state: &Self::ParentState, parameters: &Self::Parameters, other_state: &Self, ) -> Result<(), String>
Source§impl Debug for MessagesV1
impl Debug for MessagesV1
Source§impl Default for MessagesV1
impl Default for MessagesV1
Source§fn default() -> MessagesV1
fn default() -> MessagesV1
Source§impl<'de> Deserialize<'de> for MessagesV1
impl<'de> Deserialize<'de> for MessagesV1
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for MessagesV1
impl PartialEq for MessagesV1
Source§fn eq(&self, other: &MessagesV1) -> bool
fn eq(&self, other: &MessagesV1) -> bool
self and other values to be equal, and is used by ==.