Skip to content

Commit 5db1e75

Browse files
authored
[Swift5][Swift6] support "x-enum-descriptions" (#21706)
* [swift5] Support x-enum-descriptions * [swift5] Add x-enum-descriptions to test YAML * [swift5] Regenerate samples * [swift6] Support x-enum-descriptions * [swift6] Regenerate samples
1 parent 5b8a115 commit 5db1e75

File tree

41 files changed

+109
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+109
-0
lines changed

modules/openapi-generator/src/main/resources/swift5/modelEnum.mustache

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum {{classname}}: {{dataType}}, {{#useVapor}}Content, Hashable{{/useVapor}}{{^useVapor}}Codable{{^isString}}{{^isInteger}}{{^isFloat}}{{^isDouble}}, JSONEncodable{{/isDouble}}{{/isFloat}}{{/isInteger}}{{/isString}}{{/useVapor}}, CaseIterable{{#enumUnknownDefaultCase}}{{#isInteger}}, CaseIterableDefaultsLast{{/isInteger}}{{#isFloat}}, CaseIterableDefaultsLast{{/isFloat}}{{#isDouble}}, CaseIterableDefaultsLast{{/isDouble}}{{#isString}}, CaseIterableDefaultsLast{{/isString}}{{/enumUnknownDefaultCase}} {
22
{{#allowableValues}}
33
{{#enumVars}}
4+
{{#enumDescription}}
5+
/// {{enumDescription}}
6+
{{/enumDescription}}
47
case {{{name}}} = {{{value}}}
58
{{/enumVars}}
69
{{/allowableValues}}

modules/openapi-generator/src/main/resources/swift5/modelInlineEnumDeclaration.mustache

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum {{enumName}}: {{^isContainer}}{{dataType}}{{/isContainer}}{{#isContainer}}String{{/isContainer}}, {{#useVapor}}Content, Hashable{{/useVapor}}{{^useVapor}}Codable{{^isContainer}}{{^isString}}{{^isInteger}}{{^isFloat}}{{^isDouble}}, JSONEncodable{{/isDouble}}{{/isFloat}}{{/isInteger}}{{/isString}}{{/isContainer}}{{/useVapor}}, CaseIterable{{#enumUnknownDefaultCase}}{{#isInteger}}, CaseIterableDefaultsLast{{/isInteger}}{{#isFloat}}, CaseIterableDefaultsLast{{/isFloat}}{{#isDouble}}, CaseIterableDefaultsLast{{/isDouble}}{{#isString}}, CaseIterableDefaultsLast{{/isString}}{{#isContainer}}, CaseIterableDefaultsLast{{/isContainer}}{{/enumUnknownDefaultCase}} {
22
{{#allowableValues}}
33
{{#enumVars}}
4+
{{#enumDescription}}
5+
/// {{enumDescription}}
6+
{{/enumDescription}}
47
case {{{name}}} = {{{value}}}
58
{{/enumVars}}
69
{{/allowableValues}}

modules/openapi-generator/src/main/resources/swift6/modelEnum.mustache

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum {{classname}}: {{dataType}}, Sendable, {{#useVapor}}Content, Hashable{{/useVapor}}{{^useVapor}}Codable{{^isString}}{{^isInteger}}{{^isFloat}}{{^isDouble}}{{#useParameterConvertible}}, ParameterConvertible{{/useParameterConvertible}}{{/isDouble}}{{/isFloat}}{{/isInteger}}{{/isString}}{{/useVapor}}, CaseIterable{{#enumUnknownDefaultCase}}{{#isInteger}}, CaseIterableDefaultsLast{{/isInteger}}{{#isFloat}}, CaseIterableDefaultsLast{{/isFloat}}{{#isDouble}}, CaseIterableDefaultsLast{{/isDouble}}{{#isString}}, CaseIterableDefaultsLast{{/isString}}{{/enumUnknownDefaultCase}} {
22
{{#allowableValues}}
33
{{#enumVars}}
4+
{{#enumDescription}}
5+
/// {{enumDescription}}
6+
{{/enumDescription}}
47
case {{{name}}} = {{{value}}}
58
{{/enumVars}}
69
{{/allowableValues}}

modules/openapi-generator/src/main/resources/swift6/modelInlineEnumDeclaration.mustache

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum {{enumName}}: {{^isContainer}}{{dataType}}{{/isContainer}}{{#isContainer}}String{{/isContainer}}, Sendable, {{#useVapor}}Content, Hashable{{/useVapor}}{{^useVapor}}Codable{{^isContainer}}{{^isString}}{{^isInteger}}{{^isFloat}}{{^isDouble}}{{#useParameterConvertible}}, ParameterConvertible{{/useParameterConvertible}}{{/isDouble}}{{/isFloat}}{{/isInteger}}{{/isString}}{{/isContainer}}{{/useVapor}}, CaseIterable{{#enumUnknownDefaultCase}}{{#isInteger}}, CaseIterableDefaultsLast{{/isInteger}}{{#isFloat}}, CaseIterableDefaultsLast{{/isFloat}}{{#isDouble}}, CaseIterableDefaultsLast{{/isDouble}}{{#isString}}, CaseIterableDefaultsLast{{/isString}}{{#isContainer}}, CaseIterableDefaultsLast{{/isContainer}}{{/enumUnknownDefaultCase}} {
22
{{#allowableValues}}
33
{{#enumVars}}
4+
{{#enumDescription}}
5+
/// {{enumDescription}}
6+
{{/enumDescription}}
47
case {{{name}}} = {{{value}}}
58
{{/enumVars}}
69
{{/allowableValues}}

modules/openapi-generator/src/test/resources/2_0/swift/petstore-with-fake-endpoints-models-for-testing.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1362,6 +1362,9 @@ definitions:
13621362
enum:
13631363
- 1.1
13641364
- -1.2
1365+
x-enum-descriptions:
1366+
- Description for 1.1
1367+
- Description for -1.2
13651368
outerEnum:
13661369
$ref: '#/definitions/OuterEnum'
13671370
AdditionalPropertiesClass:
@@ -1547,6 +1550,10 @@ definitions:
15471550
- "placed"
15481551
- "approved"
15491552
- "delivered"
1553+
x-enum-descriptions:
1554+
- Description for placed
1555+
- Description for approved
1556+
- Description for delivered
15501557
OuterComposite:
15511558
type: object
15521559
properties:

samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/Models/EnumTest.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ public struct EnumTest: Codable, JSONEncodable, Hashable {
2727
case number1 = -1
2828
}
2929
public enum EnumNumber: Double, Codable, CaseIterable {
30+
/// Description for 1.1
3031
case _11 = 1.1
32+
/// Description for -1.2
3133
case number12 = -1.2
3234
}
3335
public var enumString: EnumString?

samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/Models/OuterEnum.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ import AnyCodable
1111
#endif
1212

1313
public enum OuterEnum: String, Codable, CaseIterable {
14+
/// Description for placed
1415
case placed = "placed"
16+
/// Description for approved
1517
case approved = "approved"
18+
/// Description for delivered
1619
case delivered = "delivered"
1720
}

samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/Models/EnumTest.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ public struct EnumTest: Codable, JSONEncodable, Hashable {
2727
case number1 = -1
2828
}
2929
public enum EnumNumber: Double, Codable, CaseIterable {
30+
/// Description for 1.1
3031
case _11 = 1.1
32+
/// Description for -1.2
3133
case number12 = -1.2
3234
}
3335
public var enumString: EnumString?

samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/Models/OuterEnum.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ import AnyCodable
1111
#endif
1212

1313
public enum OuterEnum: String, Codable, CaseIterable {
14+
/// Description for placed
1415
case placed = "placed"
16+
/// Description for approved
1517
case approved = "approved"
18+
/// Description for delivered
1619
case delivered = "delivered"
1720
}

samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/Models/EnumTest.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ public struct EnumTest: Codable, JSONEncodable, Hashable {
2727
case number1 = -1
2828
}
2929
public enum EnumNumber: Double, Codable, CaseIterable {
30+
/// Description for 1.1
3031
case _11 = 1.1
32+
/// Description for -1.2
3133
case number12 = -1.2
3234
}
3335
public var enumString: EnumString?

0 commit comments

Comments
 (0)