synapse_primitives/
lib.rs1pub mod flags;
12pub mod id;
13pub mod semver;
14pub mod siphash;
15
16pub use flags::{Flags32, Flags64};
18pub use id::{HeaderKeyId, InstanceId, InterfaceId, MethodId, MetricId, ServiceId};
19pub use semver::{PackedVersion, VersionError};
20pub use uuid::Uuid;
21
22pub fn uuid_bytes(id: Uuid) -> bytes::Bytes {
24 bytes::Bytes::copy_from_slice(id.as_bytes())
25}
26
27#[cfg(test)]
28mod tests {
29 use super::*;
30
31 #[test]
32 fn test_integration_example() {
33 let interface_id = siphash::hash_name_u32("mensa.user.v2.UserInterface");
35 assert_ne!(interface_id, 0);
36
37 let version = semver::pack_version(2, 3, 1).unwrap();
39 assert_eq!(version.as_u32(), 2_003_001);
40
41 let mut flags = Flags64::new();
43 flags.set(0, true);
44 assert!(flags.get(0));
45
46 let uuid = Uuid::parse_str("550e8400-e29b-41d4-a716-446655440000").unwrap();
48 assert_eq!(uuid.as_bytes().len(), 16);
49 }
50}