libsignal_rust/
errors.rs

1use thiserror::Error;
2
3#[derive(Error, Debug)]
4#[error("Signal protocol error")]
5pub struct SignalError;
6
7#[derive(Error, Debug)]
8#[error("Untrusted identity key for address: {addr}")]
9pub struct UntrustedIdentityKeyError {
10    pub addr: String,
11    pub identity_key: Vec<u8>,
12}
13
14impl UntrustedIdentityKeyError {
15    pub fn new(addr: String, identity_key: Vec<u8>) -> Self {
16        Self { addr, identity_key }
17    }
18}
19
20#[derive(Error, Debug)]
21#[error("Session error: {message}")]
22pub struct SessionError {
23    pub message: String,
24}
25
26impl SessionError {
27    pub fn new(message: impl Into<String>) -> Self {
28        Self {
29            message: message.into(),
30        }
31    }
32}
33
34#[derive(Error, Debug)]
35#[error("Message counter error: {message}")]
36pub struct MessageCounterError {
37    pub message: String,
38}
39
40impl MessageCounterError {
41    pub fn new(message: impl Into<String>) -> Self {
42        Self {
43            message: message.into(),
44        }
45    }
46}
47
48#[derive(Error, Debug)]
49#[error("PreKey error: {message}")]
50pub struct PreKeyError {
51    pub message: String,
52}
53
54impl PreKeyError {
55    pub fn new(message: impl Into<String>) -> Self {
56        Self {
57            message: message.into(),
58        }
59    }
60}