mailparsing/
error.rs

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