amqp_api_shared/
request_result_error.rs1use std::fmt;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Copy, Clone, Deserialize, Serialize, PartialEq, Debug)]
7pub enum RequestResultErrorKind {
8 BadRequest,
9 Unauthorized,
10 PaymentRequired,
11 Forbidden,
12 NotFound,
13 MethodNotAllowed,
14 NotAcceptable,
15 ProxyAuthenticationRequired,
16 RequestTimeout,
17 Conflict,
18 Gone,
19 LengthRequired,
20 PreconditionFailed,
21 PayloadTooLarge,
22 URITooLong,
23 UnsupportedMediaType,
24 RangeNotSatisfiable,
25 ImATeapot,
26 MisdirectedRequest,
27 UnprocessableContent,
28 Locked,
29 FailedDependency,
30 TooEarly,
31 UpgradeRequired,
32 PreconditionRequired,
33 TooManyRequests,
34 RequestHeaderFieldsTooLarge,
35 UnavailableForLegalReasons,
36 InternalServerError,
37 NotImplemented,
38 BadGateway,
39 ServiceUnavailable,
40 GatewayTimeout,
41 VariantAlsoNegotiates,
42 InsufficientStorage,
43 LoopDetected,
44 NotExtended,
45 NetworkAuthenticationRequired,
46}
47
48#[derive(Deserialize, Serialize, Debug)]
49pub struct RequestResultError {
50 kind: RequestResultErrorKind,
51 message: String,
52}
53
54impl RequestResultError {
55 pub fn new(kind: RequestResultErrorKind, message: impl Into<String>) -> RequestResultError {
56 RequestResultError {
57 kind,
58 message: message.into(),
59 }
60 }
61
62 pub fn kind(&self) -> RequestResultErrorKind {
63 self.kind
64 }
65
66 pub fn message(&self) -> &str {
67 &self.message
68 }
69}
70
71impl fmt::Display for RequestResultError {
72 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
73 write!(f, "{}", self.message)
74 }
75}