use crate::git::GitCommandError;
#[derive(Debug, derive_more::Error, derive_more::Display, derive_more::From)]
#[non_exhaustive]
pub enum Error {
#[display("Cannot retrieve gitmojis: {_0:?}")]
CannotFetchGitmojis(reqwest::Error),
#[display("Cannot get project config because {cause}")]
CannotGetProjectConfigFile {
cause: String,
},
#[display("Fail to commit")]
FailToCommit,
#[display("Missing the configuration file, to create it use `gitmoji config`")]
MissingConfigFile,
IoError(std::io::Error),
GitCommandError(GitCommandError),
InvalidUrlError(url::ParseError),
TomlSerializeError(toml_edit::ser::Error),
TomlDeserializeError(toml_edit::de::Error),
DialoguerError(dialoguer::Error),
#[display("Hook error: {cause}")]
#[from(ignore)]
Hook {
cause: String,
},
}
pub type Result<T> = std::result::Result<T, Error>;