Remove duplicate oneOf schemas during pre-processing (#21174)

* fix: Remove duplicate oneOf schemas during pre-processing

* chore: Updated samples

* fix: Fixed regression with oneOf+discriminator

* fix: Fixed possible null pointer during schema preprocessing

* refactor: Moved oneOf deduplication to OpenAPINormalizer
This commit is contained in:
Ross Sullivan 2025-05-05 00:30:42 +09:00 committed by GitHub
parent 104ceb9c16
commit 652d4ed95c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
93 changed files with 1503 additions and 0 deletions

View File

@ -922,6 +922,9 @@ public class OpenAPINormalizer {
}
protected Schema normalizeOneOf(Schema schema, Set<Schema> visitedSchemas) {
// Remove duplicate oneOf entries
ModelUtils.deduplicateOneOfSchema(schema);
// simplify first as the schema may no longer be a oneOf after processing the rule below
schema = processSimplifyOneOf(schema);

View File

@ -2243,6 +2243,23 @@ public class ModelUtils {
return schema;
}
/**
* Removes duplicate `oneOf` from a given schema if it does not also have a discriminator.
*
* @param schema Schema
*/
public static void deduplicateOneOfSchema(Schema<?> schema) {
if (schema.getOneOf() == null) {
return;
}
if (schema.getDiscriminator() != null) {
return; // Duplicate oneOf are allowed if there is a discriminator that can be used to separate them.
}
Set<Schema> deduplicated = new LinkedHashSet<>(schema.getOneOf());
schema.setOneOf(new ArrayList<>(deduplicated));
}
/**
* Check if the schema is of type 'null' or schema itself is pointing to null
* <p>

View File

@ -1107,3 +1107,16 @@ components:
allOf:
- $ref: '#/components/schemas/existing_tags_array'
- description: This is a test for allOf with metadata only fields
DuplicateOneOf:
type: object
oneOf:
- $ref: '#/components/schemas/Order'
- $ref: '#/components/schemas/Order'
WithInnerOneOf:
type: object
properties:
foo:
type: object
oneOf:
- $ref: '#/components/schemas/Order'
- $ref: '#/components/schemas/Order'

View File

@ -32,6 +32,7 @@ docs/UniqueItemArrayTesting.md
docs/User.md
docs/UserApi.md
docs/Vehicle.md
docs/WithInnerOneOf.md
git_push.sh
src/apis/client.rs
src/apis/configuration.rs
@ -69,3 +70,4 @@ src/models/type_testing.rs
src/models/unique_item_array_testing.rs
src/models/user.rs
src/models/vehicle.rs
src/models/with_inner_one_of.rs

View File

@ -80,6 +80,7 @@ Class | Method | HTTP request | Description
- [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md)
- [User](docs/User.md)
- [Vehicle](docs/Vehicle.md)
- [WithInnerOneOf](docs/WithInnerOneOf.md)
To get access to the crate's generated documentation, use:

View File

@ -0,0 +1,11 @@
# DuplicateOneOf
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOf
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**foo** | Option<[**models::Order**](Order.md)> | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOfFoo
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DuplicateOneOf {
Order(Box<models::Order>),
}
impl Default for DuplicateOneOf {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
Delivered,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -48,6 +48,8 @@ pub mod user;
pub use self::user::User;
pub mod vehicle;
pub use self::vehicle::Vehicle;
pub mod with_inner_one_of;
pub use self::with_inner_one_of::WithInnerOneOf;
use serde::{Deserialize, Deserializer, Serializer};
use serde_with::{de::DeserializeAsWrap, ser::SerializeAsWrap, DeserializeAs, SerializeAs};
use std::marker::PhantomData;

View File

@ -0,0 +1,27 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WithInnerOneOf {
#[serde(rename = "foo", skip_serializing_if = "Option::is_none")]
pub foo: Option<Box<models::Order>>,
}
impl WithInnerOneOf {
pub fn new() -> WithInnerOneOf {
WithInnerOneOf {
foo: None,
}
}
}

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum WithInnerOneOfFoo {
Order(Box<models::Order>),
}
impl Default for WithInnerOneOfFoo {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
Delivered,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -32,6 +32,7 @@ docs/UniqueItemArrayTesting.md
docs/User.md
docs/UserApi.md
docs/Vehicle.md
docs/WithInnerOneOf.md
git_push.sh
src/apis/configuration.rs
src/apis/fake_api.rs
@ -67,3 +68,4 @@ src/models/type_testing.rs
src/models/unique_item_array_testing.rs
src/models/user.rs
src/models/vehicle.rs
src/models/with_inner_one_of.rs

View File

@ -80,6 +80,7 @@ Class | Method | HTTP request | Description
- [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md)
- [User](docs/User.md)
- [Vehicle](docs/Vehicle.md)
- [WithInnerOneOf](docs/WithInnerOneOf.md)
To get access to the crate's generated documentation, use:

View File

@ -0,0 +1,11 @@
# DuplicateOneOf
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOf
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**foo** | Option<[**models::Order**](Order.md)> | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOfFoo
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DuplicateOneOf {
Order(Box<models::Order>),
}
impl Default for DuplicateOneOf {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
Delivered,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -48,6 +48,8 @@ pub mod user;
pub use self::user::User;
pub mod vehicle;
pub use self::vehicle::Vehicle;
pub mod with_inner_one_of;
pub use self::with_inner_one_of::WithInnerOneOf;
use serde::{Deserialize, Deserializer, Serializer};
use serde_with::{de::DeserializeAsWrap, ser::SerializeAsWrap, DeserializeAs, SerializeAs};
use std::marker::PhantomData;

View File

@ -0,0 +1,27 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WithInnerOneOf {
#[serde(rename = "foo", skip_serializing_if = "Option::is_none")]
pub foo: Option<Box<models::Order>>,
}
impl WithInnerOneOf {
pub fn new() -> WithInnerOneOf {
WithInnerOneOf {
foo: None,
}
}
}

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum WithInnerOneOfFoo {
Order(Box<models::Order>),
}
impl Default for WithInnerOneOfFoo {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
Delivered,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -32,6 +32,7 @@ docs/UniqueItemArrayTesting.md
docs/User.md
docs/UserApi.md
docs/Vehicle.md
docs/WithInnerOneOf.md
git_push.sh
src/apis/configuration.rs
src/apis/fake_api.rs
@ -67,3 +68,4 @@ src/models/type_testing.rs
src/models/unique_item_array_testing.rs
src/models/user.rs
src/models/vehicle.rs
src/models/with_inner_one_of.rs

View File

@ -80,6 +80,7 @@ Class | Method | HTTP request | Description
- [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md)
- [User](docs/User.md)
- [Vehicle](docs/Vehicle.md)
- [WithInnerOneOf](docs/WithInnerOneOf.md)
To get access to the crate's generated documentation, use:

View File

@ -0,0 +1,11 @@
# DuplicateOneOf
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOf
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**foo** | Option<[**models::Order**](Order.md)> | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOfFoo
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DuplicateOneOf {
Order(Box<models::Order>),
}
impl Default for DuplicateOneOf {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
shipped,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -48,6 +48,8 @@ pub mod user;
pub use self::user::User;
pub mod vehicle;
pub use self::vehicle::Vehicle;
pub mod with_inner_one_of;
pub use self::with_inner_one_of::WithInnerOneOf;
use serde::{Deserialize, Deserializer, Serializer};
use serde_with::{de::DeserializeAsWrap, ser::SerializeAsWrap, DeserializeAs, SerializeAs};
use std::marker::PhantomData;

View File

@ -0,0 +1,27 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WithInnerOneOf {
#[serde(rename = "foo", skip_serializing_if = "Option::is_none")]
pub foo: Option<Box<models::Order>>,
}
impl WithInnerOneOf {
pub fn new() -> WithInnerOneOf {
WithInnerOneOf {
foo: None,
}
}
}

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum WithInnerOneOfFoo {
Order(Box<models::Order>),
}
impl Default for WithInnerOneOfFoo {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
shipped,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -32,6 +32,7 @@ docs/UniqueItemArrayTesting.md
docs/User.md
docs/UserApi.md
docs/Vehicle.md
docs/WithInnerOneOf.md
git_push.sh
src/apis/configuration.rs
src/apis/fake_api.rs
@ -67,3 +68,4 @@ src/models/type_testing.rs
src/models/unique_item_array_testing.rs
src/models/user.rs
src/models/vehicle.rs
src/models/with_inner_one_of.rs

View File

@ -80,6 +80,7 @@ Class | Method | HTTP request | Description
- [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md)
- [User](docs/User.md)
- [Vehicle](docs/Vehicle.md)
- [WithInnerOneOf](docs/WithInnerOneOf.md)
To get access to the crate's generated documentation, use:

View File

@ -0,0 +1,11 @@
# DuplicateOneOf
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOf
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**foo** | Option<[**models::Order**](Order.md)> | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOfFoo
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DuplicateOneOf {
Order(Box<models::Order>),
}
impl Default for DuplicateOneOf {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
Delivered,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -48,6 +48,8 @@ pub mod user;
pub use self::user::User;
pub mod vehicle;
pub use self::vehicle::Vehicle;
pub mod with_inner_one_of;
pub use self::with_inner_one_of::WithInnerOneOf;
use serde::{Deserialize, Deserializer, Serializer};
use serde_with::{de::DeserializeAsWrap, ser::SerializeAsWrap, DeserializeAs, SerializeAs};
use std::marker::PhantomData;

View File

@ -0,0 +1,27 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WithInnerOneOf {
#[serde(rename = "foo", skip_serializing_if = "Option::is_none")]
pub foo: Option<Box<models::Order>>,
}
impl WithInnerOneOf {
pub fn new() -> WithInnerOneOf {
WithInnerOneOf {
foo: None,
}
}
}

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum WithInnerOneOfFoo {
Order(Box<models::Order>),
}
impl Default for WithInnerOneOfFoo {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
Delivered,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -32,6 +32,7 @@ docs/UniqueItemArrayTesting.md
docs/User.md
docs/UserApi.md
docs/Vehicle.md
docs/WithInnerOneOf.md
git_push.sh
src/apis/configuration.rs
src/apis/fake_api.rs
@ -67,3 +68,4 @@ src/models/type_testing.rs
src/models/unique_item_array_testing.rs
src/models/user.rs
src/models/vehicle.rs
src/models/with_inner_one_of.rs

View File

@ -80,6 +80,7 @@ Class | Method | HTTP request | Description
- [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md)
- [User](docs/User.md)
- [Vehicle](docs/Vehicle.md)
- [WithInnerOneOf](docs/WithInnerOneOf.md)
To get access to the crate's generated documentation, use:

View File

@ -0,0 +1,11 @@
# DuplicateOneOf
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOf
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**foo** | Option<[**models::Order**](Order.md)> | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOfFoo
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DuplicateOneOf {
Order(Box<models::Order>),
}
impl Default for DuplicateOneOf {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
Delivered,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -48,6 +48,8 @@ pub mod user;
pub use self::user::User;
pub mod vehicle;
pub use self::vehicle::Vehicle;
pub mod with_inner_one_of;
pub use self::with_inner_one_of::WithInnerOneOf;
use serde::{Deserialize, Deserializer, Serializer};
use serde_with::{de::DeserializeAsWrap, ser::SerializeAsWrap, DeserializeAs, SerializeAs};
use std::marker::PhantomData;

View File

@ -0,0 +1,27 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WithInnerOneOf {
#[serde(rename = "foo", skip_serializing_if = "Option::is_none")]
pub foo: Option<Box<models::Order>>,
}
impl WithInnerOneOf {
pub fn new() -> WithInnerOneOf {
WithInnerOneOf {
foo: None,
}
}
}

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum WithInnerOneOfFoo {
Order(Box<models::Order>),
}
impl Default for WithInnerOneOfFoo {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
Delivered,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -32,6 +32,7 @@ docs/UniqueItemArrayTesting.md
docs/User.md
docs/UserApi.md
docs/Vehicle.md
docs/WithInnerOneOf.md
git_push.sh
src/apis/configuration.rs
src/apis/fake_api.rs
@ -67,3 +68,4 @@ src/models/type_testing.rs
src/models/unique_item_array_testing.rs
src/models/user.rs
src/models/vehicle.rs
src/models/with_inner_one_of.rs

View File

@ -80,6 +80,7 @@ Class | Method | HTTP request | Description
- [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md)
- [User](docs/User.md)
- [Vehicle](docs/Vehicle.md)
- [WithInnerOneOf](docs/WithInnerOneOf.md)
To get access to the crate's generated documentation, use:

View File

@ -0,0 +1,11 @@
# DuplicateOneOf
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOf
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**foo** | Option<[**models::Order**](Order.md)> | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOfFoo
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DuplicateOneOf {
Order(Box<models::Order>),
}
impl Default for DuplicateOneOf {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
Delivered,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -48,6 +48,8 @@ pub mod user;
pub use self::user::User;
pub mod vehicle;
pub use self::vehicle::Vehicle;
pub mod with_inner_one_of;
pub use self::with_inner_one_of::WithInnerOneOf;
use serde::{Deserialize, Deserializer, Serializer};
use serde_with::{de::DeserializeAsWrap, ser::SerializeAsWrap, DeserializeAs, SerializeAs};
use std::marker::PhantomData;

View File

@ -0,0 +1,27 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WithInnerOneOf {
#[serde(rename = "foo", skip_serializing_if = "Option::is_none")]
pub foo: Option<Box<models::Order>>,
}
impl WithInnerOneOf {
pub fn new() -> WithInnerOneOf {
WithInnerOneOf {
foo: None,
}
}
}

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum WithInnerOneOfFoo {
Order(Box<models::Order>),
}
impl Default for WithInnerOneOfFoo {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
Delivered,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -32,6 +32,7 @@ docs/UniqueItemArrayTesting.md
docs/User.md
docs/UserApi.md
docs/Vehicle.md
docs/WithInnerOneOf.md
git_push.sh
src/apis/configuration.rs
src/apis/fake_api.rs
@ -67,3 +68,4 @@ src/models/type_testing.rs
src/models/unique_item_array_testing.rs
src/models/user.rs
src/models/vehicle.rs
src/models/with_inner_one_of.rs

View File

@ -80,6 +80,7 @@ Class | Method | HTTP request | Description
- [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md)
- [User](docs/User.md)
- [Vehicle](docs/Vehicle.md)
- [WithInnerOneOf](docs/WithInnerOneOf.md)
To get access to the crate's generated documentation, use:

View File

@ -0,0 +1,11 @@
# DuplicateOneOf
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOf
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**foo** | Option<[**models::Order**](Order.md)> | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOfFoo
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DuplicateOneOf {
Order(models::Order),
}
impl Default for DuplicateOneOf {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
Delivered,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -48,6 +48,8 @@ pub mod user;
pub use self::user::User;
pub mod vehicle;
pub use self::vehicle::Vehicle;
pub mod with_inner_one_of;
pub use self::with_inner_one_of::WithInnerOneOf;
use serde::{Deserialize, Deserializer, Serializer};
use serde_with::{de::DeserializeAsWrap, ser::SerializeAsWrap, DeserializeAs, SerializeAs};
use std::marker::PhantomData;

View File

@ -0,0 +1,27 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WithInnerOneOf {
#[serde(rename = "foo", skip_serializing_if = "Option::is_none")]
pub foo: Option<models::Order>,
}
impl WithInnerOneOf {
pub fn new() -> WithInnerOneOf {
WithInnerOneOf {
foo: None,
}
}
}

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum WithInnerOneOfFoo {
Order(models::Order),
}
impl Default for WithInnerOneOfFoo {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
Delivered,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -32,6 +32,7 @@ docs/UniqueItemArrayTesting.md
docs/User.md
docs/UserApi.md
docs/Vehicle.md
docs/WithInnerOneOf.md
git_push.sh
src/apis/configuration.rs
src/apis/fake_api.rs
@ -67,3 +68,4 @@ src/models/type_testing.rs
src/models/unique_item_array_testing.rs
src/models/user.rs
src/models/vehicle.rs
src/models/with_inner_one_of.rs

View File

@ -80,6 +80,7 @@ Class | Method | HTTP request | Description
- [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md)
- [User](docs/User.md)
- [Vehicle](docs/Vehicle.md)
- [WithInnerOneOf](docs/WithInnerOneOf.md)
To get access to the crate's generated documentation, use:

View File

@ -0,0 +1,11 @@
# DuplicateOneOf
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOf
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**foo** | Option<[**models::Order**](Order.md)> | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOfFoo
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DuplicateOneOf {
Order(Box<models::Order>),
}
impl Default for DuplicateOneOf {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
Delivered,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -48,6 +48,8 @@ pub mod user;
pub use self::user::User;
pub mod vehicle;
pub use self::vehicle::Vehicle;
pub mod with_inner_one_of;
pub use self::with_inner_one_of::WithInnerOneOf;
use serde::{Deserialize, Deserializer, Serializer};
use serde_with::{de::DeserializeAsWrap, ser::SerializeAsWrap, DeserializeAs, SerializeAs};
use std::marker::PhantomData;

View File

@ -0,0 +1,27 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WithInnerOneOf {
#[serde(rename = "foo", skip_serializing_if = "Option::is_none")]
pub foo: Option<Box<models::Order>>,
}
impl WithInnerOneOf {
pub fn new() -> WithInnerOneOf {
WithInnerOneOf {
foo: None,
}
}
}

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum WithInnerOneOfFoo {
Order(Box<models::Order>),
}
impl Default for WithInnerOneOfFoo {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
Delivered,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -28,6 +28,7 @@ docs/FooTypeTesting.md
docs/FooUniqueItemArrayTesting.md
docs/FooUser.md
docs/FooVehicle.md
docs/FooWithInnerOneOf.md
docs/PetApi.md
docs/StoreApi.md
docs/TestingApi.md
@ -66,4 +67,5 @@ src/models/foo_type_testing.rs
src/models/foo_unique_item_array_testing.rs
src/models/foo_user.rs
src/models/foo_vehicle.rs
src/models/foo_with_inner_one_of.rs
src/models/mod.rs

View File

@ -80,6 +80,7 @@ Class | Method | HTTP request | Description
- [FooUniqueItemArrayTesting](docs/FooUniqueItemArrayTesting.md)
- [FooUser](docs/FooUser.md)
- [FooVehicle](docs/FooVehicle.md)
- [FooWithInnerOneOf](docs/FooWithInnerOneOf.md)
To get access to the crate's generated documentation, use:

View File

@ -0,0 +1,11 @@
# FooDuplicateOneOf
## Enum Variants
| Name | Description |
|---- | -----|
| FooOrder | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# FooWithInnerOneOf
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**foo** | Option<[**models::FooOrder**](Order.md)> | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# FooWithInnerOneOfFoo
## Enum Variants
| Name | Description |
|---- | -----|
| FooOrder | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum FooDuplicateOneOf {
FooOrder(Box<models::FooOrder>),
}
impl Default for FooDuplicateOneOf {
fn default() -> Self {
Self::FooOrder(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
shipped,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -0,0 +1,27 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct FooWithInnerOneOf {
#[serde(rename = "foo", skip_serializing_if = "Option::is_none")]
pub foo: Option<Box<models::FooOrder>>,
}
impl FooWithInnerOneOf {
pub fn new() -> FooWithInnerOneOf {
FooWithInnerOneOf {
foo: None,
}
}
}

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum FooWithInnerOneOfFoo {
FooOrder(Box<models::FooOrder>),
}
impl Default for FooWithInnerOneOfFoo {
fn default() -> Self {
Self::FooOrder(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
shipped,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -48,6 +48,8 @@ pub mod foo_user;
pub use self::foo_user::FooUser;
pub mod foo_vehicle;
pub use self::foo_vehicle::FooVehicle;
pub mod foo_with_inner_one_of;
pub use self::foo_with_inner_one_of::FooWithInnerOneOf;
use serde::{Deserialize, Deserializer, Serializer};
use serde_with::{de::DeserializeAsWrap, ser::SerializeAsWrap, DeserializeAs, SerializeAs};
use std::marker::PhantomData;

View File

@ -32,6 +32,7 @@ docs/UniqueItemArrayTesting.md
docs/User.md
docs/UserApi.md
docs/Vehicle.md
docs/WithInnerOneOf.md
git_push.sh
src/apis/configuration.rs
src/apis/fake_api.rs
@ -67,3 +68,4 @@ src/models/type_testing.rs
src/models/unique_item_array_testing.rs
src/models/user.rs
src/models/vehicle.rs
src/models/with_inner_one_of.rs

View File

@ -80,6 +80,7 @@ Class | Method | HTTP request | Description
- [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md)
- [User](docs/User.md)
- [Vehicle](docs/Vehicle.md)
- [WithInnerOneOf](docs/WithInnerOneOf.md)
To get access to the crate's generated documentation, use:

View File

@ -0,0 +1,11 @@
# DuplicateOneOf
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOf
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**foo** | Option<[**models::Order**](Order.md)> | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# WithInnerOneOfFoo
## Enum Variants
| Name | Description |
|---- | -----|
| Order | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DuplicateOneOf {
Order(Box<models::Order>),
}
impl Default for DuplicateOneOf {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
shipped,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}

View File

@ -48,6 +48,8 @@ pub mod user;
pub use self::user::User;
pub mod vehicle;
pub use self::vehicle::Vehicle;
pub mod with_inner_one_of;
pub use self::with_inner_one_of::WithInnerOneOf;
use serde::{Deserialize, Deserializer, Serializer};
use serde_with::{de::DeserializeAsWrap, ser::SerializeAsWrap, DeserializeAs, SerializeAs};
use std::marker::PhantomData;

View File

@ -0,0 +1,27 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WithInnerOneOf {
#[serde(rename = "foo", skip_serializing_if = "Option::is_none")]
pub foo: Option<Box<models::Order>>,
}
impl WithInnerOneOf {
pub fn new() -> WithInnerOneOf {
WithInnerOneOf {
foo: None,
}
}
}

View File

@ -0,0 +1,41 @@
/*
* OpenAPI Petstore
*
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum WithInnerOneOfFoo {
Order(Box<models::Order>),
}
impl Default for WithInnerOneOfFoo {
fn default() -> Self {
Self::Order(Default::default())
}
}
/// Order Status
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "delivered")]
shipped,
}
impl Default for Status {
fn default() -> Status {
Self::Placed
}
}