1use crate::data::DataError;
4use std::{borrow::Cow, io};
5use thiserror::Error;
6use tracing::error;
7
8#[derive(Debug, Error)]
10pub enum MyError {
11 #[error("Failed matching '{input:?}' to {name:?} format pattern")]
13 Format {
14 #[doc(hidden)]
15 input: Cow<'static, str>,
16 #[doc(hidden)]
17 name: Cow<'static, str>,
18 },
19
20 #[error("General data error: {0}")]
22 Data(
23 #[doc(hidden)]
24 #[from]
25 DataError,
26 ),
27
28 #[error("Base64 decode error: {0}")]
30 Base64(
31 #[doc(hidden)]
32 #[from]
33 base64::DecodeError,
34 ),
35
36 #[error("UTF8 conversion error: {0}")]
38 UTF8(
39 #[doc(hidden)]
40 #[from]
41 std::str::Utf8Error,
42 ),
43
44 #[error("Multipart/mixed parse error: {0}")]
46 MULTIPART(
47 #[doc(hidden)]
48 #[from]
49 rocket_multipart::Error,
50 ),
51
52 #[error("DB error: {0}")]
54 DB(
55 #[doc(hidden)]
56 #[from]
57 sqlx::Error,
58 ),
59
60 #[error("DB migration error: {0}")]
62 DBMigrate(
63 #[doc(hidden)]
64 #[from]
65 sqlx::migrate::MigrateError,
66 ),
67
68 #[error("{0}")]
70 Runtime(#[doc(hidden)] Cow<'static, str>),
71
72 #[error("I/O error: {0}")]
74 IO(
75 #[doc(hidden)]
76 #[from]
77 io::Error,
78 ),
79
80 #[error("OpenSSL error: {0}")]
82 OSSL(
83 #[doc(hidden)]
84 #[from]
85 openssl::error::ErrorStack,
86 ),
87
88 #[error("JOSE error: {0}")]
90 JOSE(
91 #[doc(hidden)]
92 #[from]
93 josekit::JoseError,
94 ),
95}