1use http::uri::InvalidUri;
2use label::Label;
3
4#[cfg(feature = "registry-config")]
5pub mod config;
6pub mod digest;
7pub mod label;
8pub mod metadata;
9pub mod package;
10pub mod registry;
11
12#[derive(Debug, thiserror::Error)]
13pub enum Error {
14 #[error("error interacting with cache: {0}")]
15 CacheError(#[source] anyhow::Error),
16 #[error("error reading config file: {0}")]
17 ConfigFileIoError(#[source] std::io::Error),
18 #[error("failed to get registry credentials: {0:#}")]
19 CredentialError(#[source] anyhow::Error),
20 #[error("malformed component: {0:#}")]
21 InvalidComponent(#[source] anyhow::Error),
22 #[error("invalid config: {0}")]
23 InvalidConfig(#[source] anyhow::Error),
24 #[error("invalid content: {0}")]
25 InvalidContent(String),
26 #[error("invalid content digest: {0}")]
27 InvalidContentDigest(String),
28 #[error("invalid package manifest: {0}")]
29 InvalidPackageManifest(String),
30 #[error("invalid package pattern: {0}")]
31 InvalidPackagePattern(String),
32 #[error("invalid label: {0}")]
33 InvalidLabel(#[from] label::InvalidLabel),
34 #[error("invalid package ref: {0}")]
35 InvalidPackageRef(String),
36 #[error("invalid registry: {0}")]
37 InvalidRegistry(#[from] InvalidUri),
38 #[error("invalid registry metadata: {0}")]
39 InvalidRegistryMetadata(#[source] anyhow::Error),
40 #[error("invalid version: {0}")]
41 InvalidVersion(#[from] semver::Error),
42 #[error("IO error: {0}")]
43 IoError(#[from] std::io::Error),
44 #[error("no registry configured for namespace {0:?}")]
45 NoRegistryForNamespace(Label),
46 #[error("Package not found")]
47 PackageNotFound,
48 #[error("registry error: {0}")]
49 RegistryError(#[source] anyhow::Error),
50 #[error("registry metadata error: {0:#}")]
51 RegistryMetadataError(#[source] anyhow::Error),
52 #[error("version not found: {0}")]
53 VersionNotFound(semver::Version),
54}