use rocket::{http::Status, Responder}; #[derive(Responder, Debug)] pub enum BlossomError { Reqwest(Status, #[response(ignore)] reqwest::Error), ListenBrainz(Status, #[response(ignore)] listenbrainz::Error), Skinnyverse(Status, #[response(ignore)] mastodon_async::Error), Chrono(Status, #[response(ignore)] chrono::ParseError), Io(Status, #[response(ignore)] std::io::Error), Deserialization(Status, #[response(ignore)] toml::de::Error), NoMetadata(Status), Unimplemented(Status), } impl From for BlossomError { fn from(e: reqwest::Error) -> Self { BlossomError::Reqwest(Status::new(500), e) } } impl From for BlossomError { fn from(e: listenbrainz::Error) -> Self { BlossomError::ListenBrainz(Status::new(500), e) } } impl From for BlossomError { fn from(e: mastodon_async::Error) -> Self { BlossomError::Skinnyverse(Status::new(500), e) } } impl From for BlossomError { fn from(e: chrono::ParseError) -> Self { BlossomError::Chrono(Status::new(500), e) } } impl From for BlossomError { fn from(e: std::io::Error) -> Self { BlossomError::Io(Status::new(500), e) } } impl From for BlossomError { fn from(e: toml::de::Error) -> Self { BlossomError::Deserialization(Status::new(500), e) } }