Skip to main content

realtime/server/
error.rs

1#[derive(Debug, Clone)]
2pub enum RealtimeError {
3    BadRequest(String),
4    Unauthorized(String),
5    Forbidden(String),
6    NotFound(String),
7    Internal(String),
8}
9
10impl RealtimeError {
11    pub fn bad_request(message: impl Into<String>) -> Self {
12        Self::BadRequest(message.into())
13    }
14
15    pub fn forbidden(message: impl Into<String>) -> Self {
16        Self::Forbidden(message.into())
17    }
18
19    pub fn unauthorized(message: impl Into<String>) -> Self {
20        Self::Unauthorized(message.into())
21    }
22
23    pub fn not_found(message: impl Into<String>) -> Self {
24        Self::NotFound(message.into())
25    }
26
27    pub fn internal(message: impl Into<String>) -> Self {
28        Self::Internal(message.into())
29    }
30
31    pub fn message(&self) -> &str {
32        match self {
33            Self::BadRequest(message)
34            | Self::Unauthorized(message)
35            | Self::Forbidden(message)
36            | Self::NotFound(message)
37            | Self::Internal(message) => message,
38        }
39    }
40}
41
42impl std::fmt::Display for RealtimeError {
43    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
44        write!(f, "{}", self.message())
45    }
46}
47
48impl std::error::Error for RealtimeError {}