wasm_pkg_common/
lib.rs

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