openapiv3/
versioned.rs

1use crate as v3;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Deserialize, Serialize, PartialEq)]
5#[serde(untagged)]
6pub enum VersionedOpenAPI {
7    #[cfg(feature = "v2")]
8    #[cfg_attr(docsrs, doc(cfg(feature = "v2")))]
9    V2(crate::v2::OpenAPI),
10    V3(v3::OpenAPI),
11}
12
13impl VersionedOpenAPI {
14    pub fn upgrade(self) -> v3::OpenAPI {
15        pub use VersionedOpenAPI::*;
16        match self {
17            #[cfg(feature = "v2")]
18            V2(v2) => v2.into(),
19            V3(v3) => v3,
20        }
21    }
22}