use std::{convert::Infallible, str::Utf8Error, string::FromUtf8Error}; use mailparse::MailParseError; use thiserror::Error; use crate::TransformError; #[derive(Error, Debug)] pub enum ServerError { #[error("notmuch: {0}")] NotmuchError(#[from] notmuch::NotmuchError), #[error("flatten")] FlattenError, #[error("mail parse error: {0}")] MailParseError(#[from] MailParseError), #[error("IO error: {0}")] IoError(#[from] std::io::Error), #[error("attachement not found")] PartNotFound, #[error("sqlx error: {0}")] SQLXError(#[from] sqlx::Error), #[error("html transform error: {0}")] TransformError(#[from] TransformError), #[error("UTF8 error: {0}")] Utf8Error(#[from] Utf8Error), #[error("FromUTF8 error: {0}")] FromUtf8Error(#[from] FromUtf8Error), #[error("error: {0}")] StringError(String), #[error("invalid url: {0}")] UrlParseError(#[from] url::ParseError), #[error("impossible: {0}")] InfaillibleError(#[from] Infallible), }