use thiserror::Error;
#[derive(Debug, Error)]
pub enum CollectError {
#[error("git error: {0}")]
Git(#[from] git2::Error),
#[error("HTTP error: {0}")]
Http(#[from] reqwest::Error),
#[error("core error: {0}")]
Core(#[from] crate::core::TgaError),
#[error("database error: {0}")]
Db(#[from] rusqlite::Error),
#[error("identity resolution failed: {0}")]
Identity(String),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("JSON error: {0}")]
Json(#[from] serde_json::Error),
#[error("configuration error: {0}")]
Config(String),
}
pub type Result<T> = std::result::Result<T, CollectError>;