Skip to main content

xmtp_proto/types/
message_metadata.rs

1use crate::ConversionError;
2use chrono::Utc;
3use derive_builder::Builder;
4
5use crate::types::{Cursor, GroupId};
6
7#[derive(Clone, Builder, Debug)]
8#[builder(setter(into), build_fn(error = "ConversionError"))]
9pub struct GroupMessageMetadata {
10    /// Cursor of this message
11    pub cursor: Cursor,
12    /// server timestamp indicating when this message was created
13    pub created_ns: chrono::DateTime<Utc>,
14    /// GroupId of the message
15    pub group_id: GroupId,
16    #[builder(default)]
17    pub envelope_hash: Option<Vec<u8>>,
18    #[builder(default)]
19    pub expiry_ns: Option<u64>,
20}
21
22impl GroupMessageMetadata {
23    pub fn builder() -> GroupMessageMetadataBuilder {
24        GroupMessageMetadataBuilder::default()
25    }
26
27    pub fn sequence_id(&self) -> u64 {
28        self.cursor.0
29    }
30}