1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum ParseError {
5 #[error("failed to parse YAML: {0}")]
6 Yaml(#[from] serde_yaml_ng::Error),
7
8 #[error("failed to parse JSON: {0}")]
9 Json(#[from] serde_json::Error),
10
11 #[error("unsupported OpenAPI version: {0}")]
12 UnsupportedVersion(String),
13
14 #[error("missing required field: {0}")]
15 MissingField(String),
16}
17
18#[derive(Debug, Error)]
19pub enum ResolveError {
20 #[error("unresolved reference: {0}")]
21 UnresolvedRef(String),
22
23 #[error("circular reference detected: {0}")]
24 CircularRef(String),
25
26 #[error("invalid reference format: {0}")]
27 InvalidRefFormat(String),
28
29 #[error("reference target not found: {0}")]
30 RefTargetNotFound(String),
31}
32
33#[derive(Debug, Error)]
34pub enum TransformError {
35 #[error("parse error: {0}")]
36 Parse(#[from] ParseError),
37
38 #[error("resolve error: {0}")]
39 Resolve(#[from] ResolveError),
40
41 #[error("transform failed: {0}")]
42 Other(String),
43}