1use thiserror::Error;
2
3#[derive(Error, Debug, Clone, PartialEq)]
4pub enum MailParsingError {
5 #[error("invalid header: {0}")]
6 HeaderParse(String),
7 #[error("while assigning header '{header_name}': {error}")]
8 InvalidHeaderValueDuringAssignment {
9 header_name: String,
10 error: Box<MailParsingError>,
11 },
12 #[error("while parsing header '{header_name}': {error}")]
13 InvalidHeaderValueDuringGet {
14 header_name: String,
15 error: Box<MailParsingError>,
16 },
17 #[error("Header {0} not found in mime part")]
18 MissingHeader(String),
19 #[error("Unknown Mime-Version: {0}")]
20 UnknownMimeVersion(String),
21 #[error("Invalid Content-Transfer-Encoding: {0}")]
22 InvalidContentTransferEncoding(String),
23 #[error("parsing body: {0}")]
24 BodyParse(String),
25 #[error("Unexpected MimePart structure during write_message: {0}")]
26 WriteMessageWtf(&'static str),
27 #[error("IO error during write_message")]
28 WriteMessageIOError,
29 #[error("Error building message: {0}")]
30 BuildError(&'static str),
31 #[error("Error parsing Date header: {0}")]
32 ChronoError(chrono::format::ParseError),
33 #[error("Mime Tree has too many child parts")]
34 TooManyParts,
35 #[error("8-bit found when 7-bit is required")]
36 EightBit,
37}