Skip to main content

xmtp_proto/
types.rs

1//! Types representing the current representation of the world to libxmtp
2mod api_identifier;
3mod app_version;
4mod backend_envelope;
5mod conversation_type;
6mod cursor;
7mod group_message;
8mod ids;
9mod incoming_event;
10mod message_metadata;
11mod received_envelope;
12mod server_configuration;
13mod topic;
14mod topic_cursor;
15mod welcome_message;
16pub use api_identifier::*;
17pub use app_version::*;
18pub use backend_envelope::*;
19pub use conversation_type::*;
20pub use cursor::*;
21pub use group_message::*;
22pub use ids::*;
23pub use incoming_event::*;
24pub use message_metadata::*;
25pub use received_envelope::*;
26pub use topic::*;
27pub use topic_cursor::*;
28pub use welcome_message::*;
29
30pub type SequenceId = u64;
31
32#[cfg(test)]
33mod tests {
34    use super::*;
35    use rstest::rstest;
36
37    #[rstest]
38    #[case(TopicKind::GroupMessagesV1, 0)]
39    #[case(TopicKind::WelcomeMessagesV1, 1)]
40    #[case(TopicKind::IdentityUpdatesV1, 2)]
41    #[case(TopicKind::KeyPackagesV1, 3)]
42    #[case(TopicKind::CommitLogEntriesV1, 4)]
43    fn test_topic_kind_values(#[case] topic_kind: TopicKind, #[case] expected_value: u8) {
44        assert_eq!(topic_kind as u8, expected_value);
45    }
46}
47
48mod backend_records;
49pub use backend_records::*;