//! Unified error type, used by the impls.rs of every module. /// The unified error type. #[derive(Debug, thiserror::Error)] pub enum Error { #[error("git object does not exist: {0}")] NotExist(String), #[error("branch does not exist: {0}")] BranchNotExist(String), #[error("tag does not exist: {0}")] TagNotExist(String), #[error("reference not found: {name}")] NotFound { name: String }, #[error("invalid reference name: {0}")] InvalidRefName(String), #[error("invalid revision spec: {0}")] InvalidRevSpec(String), #[error("gix failed to open repository: {0}")] Open(String), #[error("gix object store error: {0}")] Odb(String), #[error("gix object lookup error: {0}")] Find(String), #[error("gix reference error: {0}")] Ref(String), #[error("gix revision parse error: {0}")] RevParse(String), #[error("serialization error: {0}")] Serde(String), #[error("I/O error: {0}")] Io(String), #[error("other error: {0}")] Other(String), #[error("lfs error: {0}")] Lfs(#[from] gitlfs::LfsError), }