From c06db15750c27b67eb8b753a163431fa2c486ca9 Mon Sep 17 00:00:00 2001 From: Lennard Sprong Date: Thu, 21 Nov 2024 12:22:05 +0100 Subject: [PATCH] [swift6] Add conditional Hashable conformance to NullEncodable (#20149) --- .../src/main/resources/swift6/Models.mustache | 4 +++- .../Sources/PetstoreClient/Infrastructure/Models.swift | 4 +++- .../Sources/PetstoreClient/Infrastructure/Models.swift | 4 +++- .../Sources/PetstoreClient/Infrastructure/Models.swift | 4 +++- .../Classes/OpenAPIs/Infrastructure/Models.swift | 4 +++- .../Sources/CombineLibrary/Infrastructure/Models.swift | 4 +++- .../Sources/PetstoreClient/Infrastructure/Models.swift | 4 +++- .../Sources/PetstoreClient/Infrastructure/Models.swift | 4 +++- .../Classes/OpenAPIs/Infrastructure/Models.swift | 4 +++- .../Classes/OpenAPIs/Infrastructure/Models.swift | 4 +++- .../Classes/OpenAPIs/Infrastructure/Models.swift | 4 +++- .../Classes/OpenAPIs/Infrastructure/Models.swift | 4 +++- .../Sources/PetstoreClient/Infrastructure/Models.swift | 4 +++- .../Classes/OpenAPIs/Infrastructure/Models.swift | 4 +++- 14 files changed, 42 insertions(+), 14 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/swift6/Models.mustache b/modules/openapi-generator/src/main/resources/swift6/Models.mustache index fce2b886319..3998b58ae0b 100644 --- a/modules/openapi-generator/src/main/resources/swift6/Models.mustache +++ b/modules/openapi-generator/src/main/resources/swift6/Models.mustache @@ -38,12 +38,14 @@ extension CaseIterableDefaultsLast { /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// or not encoded (`.encodeNothing`). Intended for request payloads. -{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum NullEncodable: Hashable { +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum NullEncodable { case encodeNothing case encodeNull case encodeValue(Wrapped) } +extension NullEncodable: Equatable where Wrapped: Equatable {} +extension NullEncodable: Hashable where Wrapped: Hashable {} extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Codable where Wrapped: Codable { diff --git a/samples/client/petstore/swift6/alamofireLibrary/Sources/PetstoreClient/Infrastructure/Models.swift b/samples/client/petstore/swift6/alamofireLibrary/Sources/PetstoreClient/Infrastructure/Models.swift index 578e4cbd74f..7381cd80bf9 100644 --- a/samples/client/petstore/swift6/alamofireLibrary/Sources/PetstoreClient/Infrastructure/Models.swift +++ b/samples/client/petstore/swift6/alamofireLibrary/Sources/PetstoreClient/Infrastructure/Models.swift @@ -38,12 +38,14 @@ extension CaseIterableDefaultsLast { /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// or not encoded (`.encodeNothing`). Intended for request payloads. -public enum NullEncodable: Hashable { +public enum NullEncodable { case encodeNothing case encodeNull case encodeValue(Wrapped) } +extension NullEncodable: Equatable where Wrapped: Equatable {} +extension NullEncodable: Hashable where Wrapped: Hashable {} extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Codable where Wrapped: Codable { diff --git a/samples/client/petstore/swift6/apiNonStaticMethod/Sources/PetstoreClient/Infrastructure/Models.swift b/samples/client/petstore/swift6/apiNonStaticMethod/Sources/PetstoreClient/Infrastructure/Models.swift index 578e4cbd74f..7381cd80bf9 100644 --- a/samples/client/petstore/swift6/apiNonStaticMethod/Sources/PetstoreClient/Infrastructure/Models.swift +++ b/samples/client/petstore/swift6/apiNonStaticMethod/Sources/PetstoreClient/Infrastructure/Models.swift @@ -38,12 +38,14 @@ extension CaseIterableDefaultsLast { /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// or not encoded (`.encodeNothing`). Intended for request payloads. -public enum NullEncodable: Hashable { +public enum NullEncodable { case encodeNothing case encodeNull case encodeValue(Wrapped) } +extension NullEncodable: Equatable where Wrapped: Equatable {} +extension NullEncodable: Hashable where Wrapped: Hashable {} extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Codable where Wrapped: Codable { diff --git a/samples/client/petstore/swift6/asyncAwaitLibrary/Sources/PetstoreClient/Infrastructure/Models.swift b/samples/client/petstore/swift6/asyncAwaitLibrary/Sources/PetstoreClient/Infrastructure/Models.swift index be8199e60a5..15a76f8541f 100644 --- a/samples/client/petstore/swift6/asyncAwaitLibrary/Sources/PetstoreClient/Infrastructure/Models.swift +++ b/samples/client/petstore/swift6/asyncAwaitLibrary/Sources/PetstoreClient/Infrastructure/Models.swift @@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast { /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// or not encoded (`.encodeNothing`). Intended for request payloads. -public enum NullEncodable: Hashable { +public enum NullEncodable { case encodeNothing case encodeNull case encodeValue(Wrapped) } +extension NullEncodable: Equatable where Wrapped: Equatable {} +extension NullEncodable: Hashable where Wrapped: Hashable {} extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Codable where Wrapped: Codable { diff --git a/samples/client/petstore/swift6/combineDeferredLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift b/samples/client/petstore/swift6/combineDeferredLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift index be8199e60a5..15a76f8541f 100644 --- a/samples/client/petstore/swift6/combineDeferredLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift +++ b/samples/client/petstore/swift6/combineDeferredLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift @@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast { /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// or not encoded (`.encodeNothing`). Intended for request payloads. -public enum NullEncodable: Hashable { +public enum NullEncodable { case encodeNothing case encodeNull case encodeValue(Wrapped) } +extension NullEncodable: Equatable where Wrapped: Equatable {} +extension NullEncodable: Hashable where Wrapped: Hashable {} extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Codable where Wrapped: Codable { diff --git a/samples/client/petstore/swift6/combineLibrary/Sources/CombineLibrary/Infrastructure/Models.swift b/samples/client/petstore/swift6/combineLibrary/Sources/CombineLibrary/Infrastructure/Models.swift index be8199e60a5..15a76f8541f 100644 --- a/samples/client/petstore/swift6/combineLibrary/Sources/CombineLibrary/Infrastructure/Models.swift +++ b/samples/client/petstore/swift6/combineLibrary/Sources/CombineLibrary/Infrastructure/Models.swift @@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast { /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// or not encoded (`.encodeNothing`). Intended for request payloads. -public enum NullEncodable: Hashable { +public enum NullEncodable { case encodeNothing case encodeNull case encodeValue(Wrapped) } +extension NullEncodable: Equatable where Wrapped: Equatable {} +extension NullEncodable: Hashable where Wrapped: Hashable {} extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Codable where Wrapped: Codable { diff --git a/samples/client/petstore/swift6/default/Sources/PetstoreClient/Infrastructure/Models.swift b/samples/client/petstore/swift6/default/Sources/PetstoreClient/Infrastructure/Models.swift index be8199e60a5..15a76f8541f 100644 --- a/samples/client/petstore/swift6/default/Sources/PetstoreClient/Infrastructure/Models.swift +++ b/samples/client/petstore/swift6/default/Sources/PetstoreClient/Infrastructure/Models.swift @@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast { /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// or not encoded (`.encodeNothing`). Intended for request payloads. -public enum NullEncodable: Hashable { +public enum NullEncodable { case encodeNothing case encodeNull case encodeValue(Wrapped) } +extension NullEncodable: Equatable where Wrapped: Equatable {} +extension NullEncodable: Hashable where Wrapped: Hashable {} extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Codable where Wrapped: Codable { diff --git a/samples/client/petstore/swift6/objcCompatible/Sources/PetstoreClient/Infrastructure/Models.swift b/samples/client/petstore/swift6/objcCompatible/Sources/PetstoreClient/Infrastructure/Models.swift index be8199e60a5..15a76f8541f 100644 --- a/samples/client/petstore/swift6/objcCompatible/Sources/PetstoreClient/Infrastructure/Models.swift +++ b/samples/client/petstore/swift6/objcCompatible/Sources/PetstoreClient/Infrastructure/Models.swift @@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast { /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// or not encoded (`.encodeNothing`). Intended for request payloads. -public enum NullEncodable: Hashable { +public enum NullEncodable { case encodeNothing case encodeNull case encodeValue(Wrapped) } +extension NullEncodable: Equatable where Wrapped: Equatable {} +extension NullEncodable: Hashable where Wrapped: Hashable {} extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Codable where Wrapped: Codable { diff --git a/samples/client/petstore/swift6/oneOf/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift b/samples/client/petstore/swift6/oneOf/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift index be8199e60a5..15a76f8541f 100644 --- a/samples/client/petstore/swift6/oneOf/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift +++ b/samples/client/petstore/swift6/oneOf/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift @@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast { /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// or not encoded (`.encodeNothing`). Intended for request payloads. -public enum NullEncodable: Hashable { +public enum NullEncodable { case encodeNothing case encodeNull case encodeValue(Wrapped) } +extension NullEncodable: Equatable where Wrapped: Equatable {} +extension NullEncodable: Hashable where Wrapped: Hashable {} extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Codable where Wrapped: Codable { diff --git a/samples/client/petstore/swift6/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift b/samples/client/petstore/swift6/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift index be8199e60a5..15a76f8541f 100644 --- a/samples/client/petstore/swift6/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift +++ b/samples/client/petstore/swift6/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift @@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast { /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// or not encoded (`.encodeNothing`). Intended for request payloads. -public enum NullEncodable: Hashable { +public enum NullEncodable { case encodeNothing case encodeNull case encodeValue(Wrapped) } +extension NullEncodable: Equatable where Wrapped: Equatable {} +extension NullEncodable: Hashable where Wrapped: Hashable {} extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Codable where Wrapped: Codable { diff --git a/samples/client/petstore/swift6/resultLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift b/samples/client/petstore/swift6/resultLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift index 67d4dc0d47d..6c41b1653e4 100644 --- a/samples/client/petstore/swift6/resultLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift +++ b/samples/client/petstore/swift6/resultLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift @@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast { /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// or not encoded (`.encodeNothing`). Intended for request payloads. -internal enum NullEncodable: Hashable { +internal enum NullEncodable { case encodeNothing case encodeNull case encodeValue(Wrapped) } +extension NullEncodable: Equatable where Wrapped: Equatable {} +extension NullEncodable: Hashable where Wrapped: Hashable {} extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Codable where Wrapped: Codable { diff --git a/samples/client/petstore/swift6/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift b/samples/client/petstore/swift6/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift index be8199e60a5..15a76f8541f 100644 --- a/samples/client/petstore/swift6/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift +++ b/samples/client/petstore/swift6/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift @@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast { /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// or not encoded (`.encodeNothing`). Intended for request payloads. -public enum NullEncodable: Hashable { +public enum NullEncodable { case encodeNothing case encodeNull case encodeValue(Wrapped) } +extension NullEncodable: Equatable where Wrapped: Equatable {} +extension NullEncodable: Hashable where Wrapped: Hashable {} extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Codable where Wrapped: Codable { diff --git a/samples/client/petstore/swift6/urlsessionLibrary/Sources/PetstoreClient/Infrastructure/Models.swift b/samples/client/petstore/swift6/urlsessionLibrary/Sources/PetstoreClient/Infrastructure/Models.swift index be8199e60a5..15a76f8541f 100644 --- a/samples/client/petstore/swift6/urlsessionLibrary/Sources/PetstoreClient/Infrastructure/Models.swift +++ b/samples/client/petstore/swift6/urlsessionLibrary/Sources/PetstoreClient/Infrastructure/Models.swift @@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast { /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// or not encoded (`.encodeNothing`). Intended for request payloads. -public enum NullEncodable: Hashable { +public enum NullEncodable { case encodeNothing case encodeNull case encodeValue(Wrapped) } +extension NullEncodable: Equatable where Wrapped: Equatable {} +extension NullEncodable: Hashable where Wrapped: Hashable {} extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Codable where Wrapped: Codable { diff --git a/samples/client/petstore/swift6/validation/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift b/samples/client/petstore/swift6/validation/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift index be8199e60a5..15a76f8541f 100644 --- a/samples/client/petstore/swift6/validation/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift +++ b/samples/client/petstore/swift6/validation/PetstoreClient/Classes/OpenAPIs/Infrastructure/Models.swift @@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast { /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// or not encoded (`.encodeNothing`). Intended for request payloads. -public enum NullEncodable: Hashable { +public enum NullEncodable { case encodeNothing case encodeNull case encodeValue(Wrapped) } +extension NullEncodable: Equatable where Wrapped: Equatable {} +extension NullEncodable: Hashable where Wrapped: Hashable {} extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Codable where Wrapped: Codable {