platform/error/
base_error.rs1use super::{
6 ConfigError, DatabaseError, NetworkError, SerializationError, StorageError, ValidationError,
7};
8use thiserror::Error;
9
10#[derive(Error, Debug)]
12pub enum BaseError {
13 #[error("AId error: {0}")]
16 Aid(#[from] crate::aid::credential::AidError),
17
18 #[error("Realm error: {0}")]
20 Realm(#[from] crate::realm::RealmError),
21
22 #[error("Identity service error: {message}")]
25 IdentityService { message: String },
26
27 #[error("Signaling service error: {message}")]
29 SignalingService { message: String },
30
31 #[error("Admin service error: {message}")]
33 ControlService { message: String },
34
35 #[error("TURN service error: {message}")]
37 TurnService { message: String },
38
39 #[error("STUN service error: {message}")]
41 StunService { message: String },
42
43 #[error("Configuration error: {0}")]
46 Config(#[from] ConfigError),
47
48 #[error("Network error: {0}")]
50 Network(#[from] NetworkError),
51
52 #[error("Database error: {0}")]
54 Database(#[from] DatabaseError),
55
56 #[error("Storage error: {0}")]
58 Storage(#[from] StorageError),
59
60 #[error("IO error: {0}")]
63 Io(#[from] std::io::Error),
64
65 #[error("Serialization error: {0}")]
67 Serialization(#[from] SerializationError),
68
69 #[error("Validation error: {0}")]
71 Validation(#[from] ValidationError),
72
73 #[error("General error: {message}")]
75 General { message: String },
76
77 #[error("Internal error: {message}")]
79 Internal { message: String },
80}
81
82impl BaseError {
83 pub fn general(message: impl Into<String>) -> Self {
85 Self::General {
86 message: message.into(),
87 }
88 }
89
90 pub fn internal(message: impl Into<String>) -> Self {
92 Self::Internal {
93 message: message.into(),
94 }
95 }
96
97 pub fn identity_service(message: impl Into<String>) -> Self {
99 Self::IdentityService {
100 message: message.into(),
101 }
102 }
103
104 pub fn signaling_service(message: impl Into<String>) -> Self {
106 Self::SignalingService {
107 message: message.into(),
108 }
109 }
110
111 pub fn control_service(message: impl Into<String>) -> Self {
113 Self::ControlService {
114 message: message.into(),
115 }
116 }
117
118 pub fn turn_service(message: impl Into<String>) -> Self {
120 Self::TurnService {
121 message: message.into(),
122 }
123 }
124
125 pub fn stun_service(message: impl Into<String>) -> Self {
127 Self::StunService {
128 message: message.into(),
129 }
130 }
131}
132
133pub type Result<T> = std::result::Result<T, BaseError>;