amqp_api_server/
error.rs

1use std::fmt;
2
3#[derive(Debug, Copy, Clone, PartialEq)]
4pub enum ErrorKind {
5    TokenDecodingFailure,
6    MalformedToken,
7    InvalidToken,
8    PermissionNotFound,
9    ApiRunnerAutoConfigFailure,
10    ApiConnectionFailure,
11    ApiExecutionFailure,
12    AutoConfigFailure,
13    InternalFailure,
14    SanitizationFailure,
15    AuthorizationFailure,
16    MalformedRequest,
17    ApiNotFound,
18    ApiRouterFailure,
19    AmqpFailure,
20}
21
22#[derive(Debug, Clone)]
23pub struct Error {
24    pub kind: ErrorKind,
25    pub message: String,
26}
27
28impl Error {
29    pub fn new(kind: ErrorKind, message: impl Into<String>) -> Error {
30        Error {
31            kind,
32            message: message.into(),
33        }
34    }
35
36    pub fn kind(&self) -> ErrorKind {
37        self.kind
38    }
39}
40
41impl fmt::Display for Error {
42    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
43        write!(f, "{}", self.message)
44    }
45}