libsignal_service/push_service/
account.rs

1use std::fmt;
2
3use serde::{Deserialize, Serialize};
4use uuid::Uuid;
5
6#[derive(Debug, Serialize, Deserialize, Clone)]
7pub struct ServiceIds {
8    #[serde(rename = "uuid")]
9    pub aci: Uuid,
10    #[serde(default)] // nil when not present (yet)
11    pub pni: Uuid,
12}
13
14impl ServiceIds {
15    pub fn aci(&self) -> libsignal_protocol::Aci {
16        libsignal_protocol::Aci::from_uuid_bytes(self.aci.into_bytes())
17    }
18
19    pub fn pni(&self) -> libsignal_protocol::Pni {
20        libsignal_protocol::Pni::from_uuid_bytes(self.pni.into_bytes())
21    }
22}
23
24impl fmt::Display for ServiceIds {
25    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
26        write!(f, "aci={} pni={}", self.aci, self.pni)
27    }
28}