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}