1use thiserror::Error;
2
3#[derive(Debug, Error)]
5pub enum Error {
6 #[error("Invalid paging mode option")]
8 InvalidPagingMode,
9 #[error("Configuration directory not set")]
11 DirectoryUnset,
12 #[error("Expansion of home directory in `{0}` failed")]
14 HomeExpansionFailed(String),
15 #[error("No labels found in mailbox")]
17 NoLabelsFound,
18 #[error("No rule selector specified (i.e. --id or --label)")]
20 NoRuleSelector,
21 #[error("No rule for label {0}")]
23 NoRuleFoundForLabel(String),
24 #[error("No query string calculated for rule #{0}")]
26 NoQueryStringCalculated(usize),
27 #[error("Label {0} not found in the mailbox")]
29 LabelNotFoundInMailbox(String),
30 #[error("No rule for id {0}")]
32 RuleNotFound(usize),
33 #[error("Label `{0}` not found in the rule set")]
35 LabelNotFoundInRules(String),
36 #[error("Directory creation failed for `{0:?}`")]
38 DirectoryCreationFailed((String, Box<std::io::Error>)),
39 #[error(transparent)]
41 GoogleGmail1(#[from] Box<google_gmail1::Error>),
42 #[error(transparent)]
44 StdIO(#[from] std::io::Error),
45 #[error(transparent)]
47 TomlDe(#[from] toml::de::Error),
48 #[error(transparent)]
50 Config(#[from] config::ConfigError),
51 #[error("Invalid message age: {0}")]
53 InvalidMessageAge(String),
54 #[error("Token error: {0}")]
56 TokenNotFound(String),
57 #[error("File I/O error: {0}")]
59 FileIo(String),
60 #[error("Serialization error: {0}")]
62 SerializationError(String),
63}