templateless/
errors.rs

1use serde::Deserialize;
2use std::result;
3use thiserror::Error;
4
5#[derive(Debug, Error, Deserialize, Eq, PartialEq)]
6pub enum BadRequestCode {
7	#[error("account quota exceeded")]
8	AccountQuotaExceeded = 200,
9	#[error("provider key missing")]
10	ProviderKeyMissing = 300,
11	#[error("provider key invalid")]
12	ProviderKeyInvalid = 301,
13	#[error("email has no content to send")]
14	EmailNoContent = 400,
15}
16
17#[derive(Debug, Error, Deserialize, Eq, PartialEq)]
18pub enum Error {
19	#[error("unauthorized")]
20	Unauthorized,
21	#[error("forbidden")]
22	Forbidden,
23	#[error("invalid parameter")]
24	InvalidParameter { field: String },
25	#[error("bad request")]
26	BadRequest { code: BadRequestCode, error: String },
27	#[error("unavailable")]
28	Unavailable,
29	#[error("unknown error")]
30	Unknown,
31}
32
33pub type Result<T> = result::Result<T, Error>;