gitmoji_rs/
error.rs

1use crate::git::GitCommandError;
2
3#[derive(Debug, derive_more::Error, derive_more::Display, derive_more::From)]
4/// Gitmojis errors
5#[non_exhaustive]
6pub enum Error {
7    /// Cannot retrieve gitmojis
8    #[display("Cannot retrieve gitmojis: {_0:?}")]
9    CannotFetchGitmojis(reqwest::Error),
10
11    /// Cannot get the project config file
12    #[display("Cannot get project config because {cause}")]
13    CannotGetProjectConfigFile {
14        /// The cause
15        cause: String,
16    },
17
18    /// Cannot commit
19    #[display("Fail to commit")]
20    FailToCommit,
21
22    /// Configuration file not found
23    #[display("Missing the configuration file, to create it use `gitmoji config`")]
24    MissingConfigFile,
25
26    /// I/O error
27    IoError(std::io::Error),
28
29    /// Issue while running a git command
30    GitCommandError(GitCommandError),
31
32    /// Invalid URL
33    InvalidUrlError(url::ParseError),
34
35    /// TOML serialization error
36    TomlSerializeError(toml_edit::ser::Error),
37
38    /// TOML deserialization error
39    TomlDeserializeError(toml_edit::de::Error),
40
41    /// A Dialoguer error
42    DialoguerError(dialoguer::Error),
43}
44
45/// Gitmojis result
46pub type Result<T> = std::result::Result<T, Error>;