mailparsing/
error.rs

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}