#[derive(thiserror::Error, Debug)]
pub enum UbuntuError {
#[error(transparent)]
Io(#[from] std::io::Error),
#[error(transparent)]
Http(#[from] reqwest::Error),
#[error(transparent)]
Url(#[from] url::ParseError),
#[error(transparent)]
DebPackage(#[from] debpkg::Error),
#[error("deb entry not found")]
DebEntryNotFound,
#[error("URL does not contain filename")]
UrlMissingFilename,
#[error("invalid UTF-8 in Packages index")]
PackagesIndexNonUtf8,
#[error("missing `Filename` field in package entry")]
PackageMissingFilename,
#[error("multiple matching packages")]
PackageMultipleCandidates,
#[error("package not found")]
PackageNotFound,
}