use thiserror::Error;
#[derive(Debug, Error)]
pub enum RpmRepositoryError {
#[error("URL parse error: {0:?}")]
UrlParse(#[from] url::ParseError),
#[error("HTTP error: {0:?}")]
Http(#[from] reqwest::Error),
#[error("XML error: {0:?}")]
Xml(#[from] serde_xml_rs::Error),
#[error("repository I/O error on path {0}: {1:?}")]
IoPath(String, std::io::Error),
#[error("invalid hex in content digest: {0}; {1:?}")]
ContentDigestBadHex(String, hex::FromHexError),
#[error("unknown content digest format: {0}")]
UnknownDigestFormat(String),
#[error("repository metadata entry not found: {0}")]
MetadataFileNotFound(&'static str),
#[error("unexpected data path: {0}")]
UnexpectedDataPath(String),
#[error("content size missing from metadata entry")]
MetadataMissingSize,
}
pub type Result<T> = std::result::Result<T, RpmRepositoryError>;