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 server_configuration;
12mod topic;
13mod topic_cursor;
14mod welcome_message;
15pub use api_identifier::*;
16pub use app_version::*;
17pub use backend_envelope::*;
18pub use conversation_type::*;
19pub use cursor::*;
20pub use group_message::*;
21pub use ids::*;
22pub use incoming_event::*;
23pub use message_metadata::*;
24pub use topic::*;
25pub use topic_cursor::*;
26pub use welcome_message::*;
27
28pub type SequenceId = u64;
29
30#[cfg(test)]
31mod tests {
32    use super::*;
33    use rstest::rstest;
34
35    #[rstest]
36    #[case(TopicKind::GroupMessagesV1, 0)]
37    #[case(TopicKind::WelcomeMessagesV1, 1)]
38    #[case(TopicKind::IdentityUpdatesV1, 2)]
39    #[case(TopicKind::KeyPackagesV1, 3)]
40    #[case(TopicKind::CommitLogEntriesV1, 4)]
41    fn test_topic_kind_values(#[case] topic_kind: TopicKind, #[case] expected_value: u8) {
42        assert_eq!(topic_kind as u8, expected_value);
43    }
44}
45
46mod backend_records;
47pub use backend_records::*;