cull_gmail/
error.rs

1use thiserror::Error;
2
3/// Error messages for cull-gmail
4#[derive(Debug, Error)]
5pub enum Error {
6    /// Invalid paging mode option
7    #[error("Invalid paging mode option")]
8    InvalidPagingMode,
9    /// Configuration directory not set
10    #[error("Configuration directory not set")]
11    DirectoryUnset,
12    /// Expansion of home directory in `{0}` failed
13    #[error("Expansion of home directory in `{0}` failed")]
14    HomeExpansionFailed(String),
15    /// No rule selector specified (i.e. --id or --label)
16    #[error("No rule selector specified (i.e. --id or --label)")]
17    NoRuleSelector,
18    /// No rule for label
19    #[error("No rule for label {0}")]
20    NoRuleFoundForLabel(String),
21    /// Rule not found for ID
22    #[error("No rule for id {0}")]
23    RuleNotFound(usize),
24    /// Label not found in the rule set
25    #[error("Label `{0}` not found in the rule set")]
26    LabelNotFoundInRules(String),
27    /// Directory creation failed for `{0}`
28    #[error("Directory creation failed for `{0:?}`")]
29    DirectoryCreationFailed((String, Box<std::io::Error>)),
30    /// Error from the google_gmail1 crate
31    #[error(transparent)]
32    GoogleGmail1(#[from] Box<google_gmail1::Error>),
33    /// Error from std::io
34    #[error(transparent)]
35    StdIO(#[from] std::io::Error),
36    /// Error from toml_de
37    #[error(transparent)]
38    TomlDe(#[from] toml::de::Error),
39}