Skip to main content

xbp_deploy/
error.rs

1use thiserror::Error;
2
3pub type Result<T> = std::result::Result<T, DeployError>;
4
5#[derive(Debug, Error)]
6pub enum DeployError {
7    #[error("config validation failed: {0}")]
8    Validation(String),
9    #[error("unknown deploy target `{target}`{suggestions}")]
10    UnknownTarget {
11        target: String,
12        suggestions: String,
13    },
14    #[error("dependency graph error: {0}")]
15    Graph(String),
16    #[error("OCI error: {0}")]
17    Oci(String),
18    #[error("Kubernetes error: {0}")]
19    K8s(String),
20    #[error("health check failed: {0}")]
21    Health(String),
22    #[error("verify failed: {0}")]
23    Verify(String),
24    #[error("io error: {0}")]
25    Io(String),
26    #[error("deploy cancelled")]
27    Cancelled,
28    #[error("{0}")]
29    Other(String),
30}
31
32impl From<xbp_oci::OciError> for DeployError {
33    fn from(value: xbp_oci::OciError) -> Self {
34        Self::Oci(value.to_string())
35    }
36}
37
38impl From<xbp_k8s::K8sError> for DeployError {
39    fn from(value: xbp_k8s::K8sError) -> Self {
40        Self::K8s(value.to_string())
41    }
42}