Skip to main content

hypermail/
error.rs

1use std::path::PathBuf;
2use thiserror::Error;
3
4#[derive(Error, Debug)]
5pub enum HypermailError {
6    #[error("I/O error: {0}")]
7    Io(#[from] std::io::Error),
8
9    #[error("Config error: {0}")]
10    Config(String),
11
12    #[error("Parse error: {0}")]
13    Parse(String),
14
15    #[error("Date parse error: {0}")]
16    DateParse(String),
17
18    #[error("Mbox parse error at line {line}: {message}")]
19    MboxParse { line: usize, message: String },
20
21    #[error("File not found: {0}")]
22    FileNotFound(PathBuf),
23
24    #[error("Invalid config value for '{key}': {message}")]
25    InvalidConfigValue { key: String, message: String },
26
27    #[error("Lock error: {0}")]
28    Lock(String),
29
30    #[error("{0}")]
31    Other(String),
32}
33
34pub type Result<T> = std::result::Result<T, HypermailError>;