puccini_csar/errors/
csar.rs1use super::{invalid_key::*, malformed_key::*, tosca_meta::*};
2
3use {depiction::*, std::io, thiserror::*};
4
5#[derive(Debug, Depict, Error)]
11pub enum CsarError {
12 #[error("I/O: {0}")]
14 IO(#[from] io::Error),
15
16 #[cfg(feature = "creator")]
18 #[error("unsupported format: {0}")]
19 UnsupportedFormat(super::super::creator::Format),
20
21 #[error("missing: {0}")]
23 Missing(String),
24
25 #[error("invalid: {0}")]
27 Invalid(String),
28
29 #[error("TOSCA meta: {0}")]
31 #[depict(as(depict))]
32 ToscaMeta(#[from] ToscaMetaError),
33
34 #[error("walk directory: {0}")]
36 WalkDirectory(#[from] walkdir::Error),
37
38 #[cfg(feature = "url")]
40 #[error("URL: {0}")]
41 URL(#[from] read_url::UrlError),
42}
43
44impl From<InvalidKeyError> for CsarError {
45 fn from(error: InvalidKeyError) -> Self {
46 Self::ToscaMeta(error.into())
47 }
48}
49
50impl From<MalformedKeyError> for CsarError {
51 fn from(error: MalformedKeyError) -> Self {
52 Self::ToscaMeta(error.into())
53 }
54}