Skip to main content

oag_core/
error.rs

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}