#[derive(thiserror::Error, Debug)]
pub enum Error {
#[error("SerdeJsonError: {0}")]
SerdeJsonError(#[from] serde_json::Error),
#[error("InfallibleError: {0}")]
InfallibleError(#[from] std::convert::Infallible),
#[error("StdIoError: {0}")]
StdIoError(#[from] std::io::Error),
#[error(transparent)]
ParseIntError(#[from] std::num::ParseIntError),
#[error(transparent)]
InquireError(#[from] inquire::InquireError),
#[error(transparent)]
FromUtf8Error(#[from] std::string::FromUtf8Error),
#[error(transparent)]
RegexError(#[from] regex::Error),
#[error(transparent)]
CargoTomlError(#[from] cargo_toml::Error),
#[error(transparent)]
PatternError(#[from] glob::PatternError),
#[error(transparent)]
GlobError(#[from] glob::GlobError),
#[error(transparent)]
StripPrefixError(#[from] std::path::StripPrefixError),
#[error(transparent)]
ReqwestError(#[from] reqwest::Error),
#[error(transparent)]
SemverError(#[from] semver::Error),
#[error("{0}")]
ErrorFromString(String),
#[error("{0}")]
ErrorFromStr(&'static str),
}
pub type Result<T, E = Error> = core::result::Result<T, E>;