Skip to main content

openapi_nexus_spec/oas31/spec/
error.rs

1use semver::{Error as SemverError, Version};
2use snafu::Snafu;
3
4use super::{reference::ErrorRef, schema::ErrorSchema};
5
6/// Spec errors.
7#[derive(Debug, Snafu)]
8#[snafu(visibility(pub))]
9pub enum ErrorSpec {
10    /// Reference error.
11    #[snafu(display("Reference error"))]
12    Ref { source: ErrorRef },
13
14    /// Schema error.
15    #[snafu(display("Schema error"))]
16    Schema { source: ErrorSchema },
17
18    /// Semver error.
19    #[snafu(display("Semver error"))]
20    Semver { source: SemverError },
21
22    /// Unsupported spec file version.
23    #[snafu(display("Unsupported spec file version ({})", version))]
24    UnsupportedSpecFileVersion { version: Version },
25}
26
27impl From<SemverError> for ErrorSpec {
28    fn from(source: SemverError) -> Self {
29        ErrorSpec::Semver { source }
30    }
31}