Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Making Enum conform to Equatable and CaseIterable #124

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,11 @@

### Changed
- Updated Swift template #117 #118 #120 #121
- Making `Enum` conform to Equatable and CaseIterable

### Removed
- Removed support for Swagger 2 #118
- Removed cases property in `Enum`

[Commits](https://github.com/yonaskolb/SwagGen/compare/3.0.2...4.0.0)

Expand Down
14 changes: 12 additions & 2 deletions Specs/PetstoreTest/generated/Swift/Sources/Models/EnumArrays.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,34 @@ import Foundation

public class EnumArrays: APIModel {

#if swift(>=4.2)
public enum ArrayEnum: String, Codable, Equatable, CaseIterable {
#else
public enum ArrayEnum: String, Codable {
#endif
case fish = "fish"
case crab = "crab"

#if swift(<4.2)
public static let cases: [ArrayEnum] = [
.fish,
.crab,
]
#endif
}

#if swift(>=4.2)
public enum JustSymbol: String, Codable, Equatable, CaseIterable {
#else
public enum JustSymbol: String, Codable {
#endif
case greaterThanOrEqualTo = ">="
case dollar = "$"

#if swift(<4.2)
public static let cases: [JustSymbol] = [
.greaterThanOrEqualTo,
.dollar,
]
#endif
}

public var arrayEnum: [ArrayEnum]?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,19 @@

import Foundation

#if swift(>=4.2)
public enum EnumClass: String, Codable, Equatable, CaseIterable {
#else
public enum EnumClass: String, Codable {
#endif
case abc = "_abc"
case efg = "-efg"
case xyz = "(xyz)"

#if swift(<4.2)
public static let cases: [EnumClass] = [
.abc,
.efg,
.xyz,
]
#endif
}
21 changes: 18 additions & 3 deletions Specs/PetstoreTest/generated/Swift/Sources/Models/EnumTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,36 +7,51 @@ import Foundation

public class EnumTest: APIModel {

#if swift(>=4.2)
public enum EnumInteger: Int, Codable, Equatable, CaseIterable {
#else
public enum EnumInteger: Int, Codable {
#endif
case _1 = 1
case negative1 = -1

#if swift(<4.2)
public static let cases: [EnumInteger] = [
._1,
.negative1,
]
#endif
}

#if swift(>=4.2)
public enum EnumNumber: Double, Codable, Equatable, CaseIterable {
#else
public enum EnumNumber: Double, Codable {
#endif
case _11 = 1.1
case negative12 = -1.2

#if swift(<4.2)
public static let cases: [EnumNumber] = [
._11,
.negative12,
]
#endif
}

#if swift(>=4.2)
public enum EnumString: String, Codable, Equatable, CaseIterable {
#else
public enum EnumString: String, Codable {
#endif
case upper = "UPPER"
case lower = "lower"
case empty = ""

#if swift(<4.2)
public static let cases: [EnumString] = [
.upper,
.lower,
.empty,
]
#endif
}

public var enumInteger: EnumInteger?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,19 @@ import Foundation

public class MapTest: APIModel {

#if swift(>=4.2)
public enum MapOfEnumString: String, Codable, Equatable, CaseIterable {
#else
public enum MapOfEnumString: String, Codable {
#endif
case upper = "UPPER"
case lower = "lower"

#if swift(<4.2)
public static let cases: [MapOfEnumString] = [
.upper,
.lower,
]
#endif
}

public var mapMapOfString: [String: [String: String]]?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,21 @@ import Foundation
public class Order: APIModel {

/** Order Status */
#if swift(>=4.2)
public enum Status: String, Codable, Equatable, CaseIterable {
#else
public enum Status: String, Codable {
#endif
case placed = "placed"
case approved = "approved"
case delivered = "delivered"

#if swift(<4.2)
public static let cases: [Status] = [
.placed,
.approved,
.delivered,
]
#endif
}

public var complete: Bool?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,19 @@

import Foundation

#if swift(>=4.2)
public enum OuterEnum: String, Codable, Equatable, CaseIterable {
#else
public enum OuterEnum: String, Codable {
#endif
case placed = "placed"
case approved = "approved"
case delivered = "delivered"

#if swift(<4.2)
public static let cases: [OuterEnum] = [
.placed,
.approved,
.delivered,
]
#endif
}
7 changes: 6 additions & 1 deletion Specs/PetstoreTest/generated/Swift/Sources/Models/Pet.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,21 @@ import Foundation
public class Pet: APIModel {

/** pet status in the store */
#if swift(>=4.2)
public enum Status: String, Codable, Equatable, CaseIterable {
#else
public enum Status: String, Codable {
#endif
case available = "available"
case pending = "pending"
case sold = "sold"

#if swift(<4.2)
public static let cases: [Status] = [
.available,
.pending,
.sold,
]
#endif
}

public var name: String
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,97 +13,137 @@ extension PetstoreTest.Fake {
public static let service = APIService<Response>(id: "testEnumParameters", tag: "fake", method: "GET", path: "/fake", hasBody: true)

/** Header parameter enum test (string array) */
#if swift(>=4.2)
public enum EnumHeaderStringArray: String, Codable, Equatable, CaseIterable {
#else
public enum EnumHeaderStringArray: String, Codable {
#endif
case greaterThan = ">"
case dollar = "$"

#if swift(<4.2)
public static let cases: [EnumHeaderStringArray] = [
.greaterThan,
.dollar,
]
#endif
}

/** Header parameter enum test (string) */
#if swift(>=4.2)
public enum EnumHeaderString: String, Codable, Equatable, CaseIterable {
#else
public enum EnumHeaderString: String, Codable {
#endif
case abc = "_abc"
case efg = "-efg"
case xyz = "(xyz)"

#if swift(<4.2)
public static let cases: [EnumHeaderString] = [
.abc,
.efg,
.xyz,
]
#endif
}

/** Query parameter enum test (string array) */
#if swift(>=4.2)
public enum EnumQueryStringArray: String, Codable, Equatable, CaseIterable {
#else
public enum EnumQueryStringArray: String, Codable {
#endif
case greaterThan = ">"
case dollar = "$"

#if swift(<4.2)
public static let cases: [EnumQueryStringArray] = [
.greaterThan,
.dollar,
]
#endif
}

/** Query parameter enum test (string) */
#if swift(>=4.2)
public enum EnumQueryString: String, Codable, Equatable, CaseIterable {
#else
public enum EnumQueryString: String, Codable {
#endif
case abc = "_abc"
case efg = "-efg"
case xyz = "(xyz)"

#if swift(<4.2)
public static let cases: [EnumQueryString] = [
.abc,
.efg,
.xyz,
]
#endif
}

/** Query parameter enum test (double) */
#if swift(>=4.2)
public enum EnumQueryInteger: Int, Codable, Equatable, CaseIterable {
#else
public enum EnumQueryInteger: Int, Codable {
#endif
case _1 = 1
case negative2 = -2

#if swift(<4.2)
public static let cases: [EnumQueryInteger] = [
._1,
.negative2,
]
#endif
}

/** Form parameter enum test (string) */
#if swift(>=4.2)
public enum EnumFormString: String, Codable, Equatable, CaseIterable {
#else
public enum EnumFormString: String, Codable {
#endif
case abc = "_abc"
case efg = "-efg"
case xyz = "(xyz)"

#if swift(<4.2)
public static let cases: [EnumFormString] = [
.abc,
.efg,
.xyz,
]
#endif
}

/** Form parameter enum test (string array) */
#if swift(>=4.2)
public enum EnumFormStringArray: String, Codable, Equatable, CaseIterable {
#else
public enum EnumFormStringArray: String, Codable {
#endif
case greaterThan = ">"
case dollar = "$"

#if swift(<4.2)
public static let cases: [EnumFormStringArray] = [
.greaterThan,
.dollar,
]
#endif
}

/** Query parameter enum test (double) */
#if swift(>=4.2)
public enum EnumQueryDouble: Double, Codable, Equatable, CaseIterable {
#else
public enum EnumQueryDouble: Double, Codable {
#endif
case _11 = 1.1
case negative12 = -1.2

#if swift(<4.2)
public static let cases: [EnumQueryDouble] = [
._11,
.negative12,
]
#endif
}

public final class Request: APIRequest<Response> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,21 @@ extension PetstoreTest.Pet {
public static let service = APIService<Response>(id: "findPetsByStatus", tag: "pet", method: "GET", path: "/pet/findByStatus", hasBody: false, securityRequirement: SecurityRequirement(type: "petstore_auth", scopes: ["write:pets", "read:pets"]))

/** Status values that need to be considered for filter */
#if swift(>=4.2)
public enum Status: String, Codable, Equatable, CaseIterable {
#else
public enum Status: String, Codable {
#endif
case available = "available"
case pending = "pending"
case sold = "sold"

#if swift(<4.2)
public static let cases: [Status] = [
.available,
.pending,
.sold,
]
#endif
}

public final class Request: APIRequest<Response> {
Expand Down
Loading