1use crate::git::GitCommandError;
2
3#[derive(Debug, derive_more::Error, derive_more::Display, derive_more::From)]
4#[non_exhaustive]
6pub enum Error {
7 #[display("Cannot retrieve gitmojis: {_0:?}")]
9 CannotFetchGitmojis(reqwest::Error),
10
11 #[display("Cannot get project config because {cause}")]
13 CannotGetProjectConfigFile {
14 cause: String,
16 },
17
18 #[display("Fail to commit")]
20 FailToCommit,
21
22 #[display("Missing the configuration file, to create it use `gitmoji config`")]
24 MissingConfigFile,
25
26 IoError(std::io::Error),
28
29 GitCommandError(GitCommandError),
31
32 InvalidUrlError(url::ParseError),
34
35 TomlSerializeError(toml_edit::ser::Error),
37
38 TomlDeserializeError(toml_edit::de::Error),
40
41 DialoguerError(dialoguer::Error),
43}
44
45pub type Result<T> = std::result::Result<T, Error>;