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}