aboutsummaryrefslogtreecommitdiffstats
path: root/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/error.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/error.rs b/src/error.rs
new file mode 100644
index 0000000..38802d3
--- /dev/null
+++ b/src/error.rs
@@ -0,0 +1,29 @@
+use rocket::Responder;
+
+#[derive(Responder, Debug)]
+pub enum BlossomError {
+ #[response(status = 500)]
+ Reqwest(&'static str, #[response(ignore)] reqwest::Error),
+ #[response(status = 500)]
+ ListenBrainz(&'static str, #[response(ignore)] listenbrainz::Error),
+ #[response(status = 500)]
+ Skinnyverse(&'static str, #[response(ignore)] mastodon_async::Error),
+}
+
+impl From<reqwest::Error> for BlossomError {
+ fn from(e: reqwest::Error) -> Self {
+ BlossomError::Reqwest("reqwest error", e)
+ }
+}
+
+impl From<listenbrainz::Error> for BlossomError {
+ fn from(e: listenbrainz::Error) -> Self {
+ BlossomError::ListenBrainz("listenbrainz error", e)
+ }
+}
+
+impl From<mastodon_async::Error> for BlossomError {
+ fn from(e: mastodon_async::Error) -> Self {
+ BlossomError::Skinnyverse("skinnyverse error", e)
+ }
+}