[swift6] Add conditional Hashable conformance to NullEncodable (#20149)

This commit is contained in:
Lennard Sprong 2024-11-21 12:22:05 +01:00 committed by GitHub
parent 18b01ca455
commit c06db15750
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 42 additions and 14 deletions

View File

@ -38,12 +38,14 @@ extension CaseIterableDefaultsLast {
/// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`)
/// or not encoded (`.encodeNothing`). Intended for request payloads. /// or not encoded (`.encodeNothing`). Intended for request payloads.
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum NullEncodable<Wrapped: Hashable>: Hashable { {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum NullEncodable<Wrapped> {
case encodeNothing case encodeNothing
case encodeNull case encodeNull
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Equatable where Wrapped: Equatable {}
extension NullEncodable: Hashable where Wrapped: Hashable {}
extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {

View File

@ -38,12 +38,14 @@ extension CaseIterableDefaultsLast {
/// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`)
/// or not encoded (`.encodeNothing`). Intended for request payloads. /// or not encoded (`.encodeNothing`). Intended for request payloads.
public enum NullEncodable<Wrapped: Hashable>: Hashable { public enum NullEncodable<Wrapped> {
case encodeNothing case encodeNothing
case encodeNull case encodeNull
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Equatable where Wrapped: Equatable {}
extension NullEncodable: Hashable where Wrapped: Hashable {}
extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {

View File

@ -38,12 +38,14 @@ extension CaseIterableDefaultsLast {
/// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`)
/// or not encoded (`.encodeNothing`). Intended for request payloads. /// or not encoded (`.encodeNothing`). Intended for request payloads.
public enum NullEncodable<Wrapped: Hashable>: Hashable { public enum NullEncodable<Wrapped> {
case encodeNothing case encodeNothing
case encodeNull case encodeNull
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Equatable where Wrapped: Equatable {}
extension NullEncodable: Hashable where Wrapped: Hashable {}
extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {

View File

@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast {
/// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`)
/// or not encoded (`.encodeNothing`). Intended for request payloads. /// or not encoded (`.encodeNothing`). Intended for request payloads.
public enum NullEncodable<Wrapped: Hashable>: Hashable { public enum NullEncodable<Wrapped> {
case encodeNothing case encodeNothing
case encodeNull case encodeNull
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Equatable where Wrapped: Equatable {}
extension NullEncodable: Hashable where Wrapped: Hashable {}
extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {

View File

@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast {
/// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`)
/// or not encoded (`.encodeNothing`). Intended for request payloads. /// or not encoded (`.encodeNothing`). Intended for request payloads.
public enum NullEncodable<Wrapped: Hashable>: Hashable { public enum NullEncodable<Wrapped> {
case encodeNothing case encodeNothing
case encodeNull case encodeNull
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Equatable where Wrapped: Equatable {}
extension NullEncodable: Hashable where Wrapped: Hashable {}
extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {

View File

@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast {
/// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`)
/// or not encoded (`.encodeNothing`). Intended for request payloads. /// or not encoded (`.encodeNothing`). Intended for request payloads.
public enum NullEncodable<Wrapped: Hashable>: Hashable { public enum NullEncodable<Wrapped> {
case encodeNothing case encodeNothing
case encodeNull case encodeNull
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Equatable where Wrapped: Equatable {}
extension NullEncodable: Hashable where Wrapped: Hashable {}
extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {

View File

@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast {
/// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`)
/// or not encoded (`.encodeNothing`). Intended for request payloads. /// or not encoded (`.encodeNothing`). Intended for request payloads.
public enum NullEncodable<Wrapped: Hashable>: Hashable { public enum NullEncodable<Wrapped> {
case encodeNothing case encodeNothing
case encodeNull case encodeNull
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Equatable where Wrapped: Equatable {}
extension NullEncodable: Hashable where Wrapped: Hashable {}
extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {

View File

@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast {
/// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`)
/// or not encoded (`.encodeNothing`). Intended for request payloads. /// or not encoded (`.encodeNothing`). Intended for request payloads.
public enum NullEncodable<Wrapped: Hashable>: Hashable { public enum NullEncodable<Wrapped> {
case encodeNothing case encodeNothing
case encodeNull case encodeNull
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Equatable where Wrapped: Equatable {}
extension NullEncodable: Hashable where Wrapped: Hashable {}
extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {

View File

@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast {
/// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`)
/// or not encoded (`.encodeNothing`). Intended for request payloads. /// or not encoded (`.encodeNothing`). Intended for request payloads.
public enum NullEncodable<Wrapped: Hashable>: Hashable { public enum NullEncodable<Wrapped> {
case encodeNothing case encodeNothing
case encodeNull case encodeNull
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Equatable where Wrapped: Equatable {}
extension NullEncodable: Hashable where Wrapped: Hashable {}
extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {

View File

@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast {
/// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`)
/// or not encoded (`.encodeNothing`). Intended for request payloads. /// or not encoded (`.encodeNothing`). Intended for request payloads.
public enum NullEncodable<Wrapped: Hashable>: Hashable { public enum NullEncodable<Wrapped> {
case encodeNothing case encodeNothing
case encodeNull case encodeNull
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Equatable where Wrapped: Equatable {}
extension NullEncodable: Hashable where Wrapped: Hashable {}
extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {

View File

@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast {
/// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`)
/// or not encoded (`.encodeNothing`). Intended for request payloads. /// or not encoded (`.encodeNothing`). Intended for request payloads.
internal enum NullEncodable<Wrapped: Hashable>: Hashable { internal enum NullEncodable<Wrapped> {
case encodeNothing case encodeNothing
case encodeNull case encodeNull
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Equatable where Wrapped: Equatable {}
extension NullEncodable: Hashable where Wrapped: Hashable {}
extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {

View File

@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast {
/// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`)
/// or not encoded (`.encodeNothing`). Intended for request payloads. /// or not encoded (`.encodeNothing`). Intended for request payloads.
public enum NullEncodable<Wrapped: Hashable>: Hashable { public enum NullEncodable<Wrapped> {
case encodeNothing case encodeNothing
case encodeNull case encodeNull
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Equatable where Wrapped: Equatable {}
extension NullEncodable: Hashable where Wrapped: Hashable {}
extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {

View File

@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast {
/// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`)
/// or not encoded (`.encodeNothing`). Intended for request payloads. /// or not encoded (`.encodeNothing`). Intended for request payloads.
public enum NullEncodable<Wrapped: Hashable>: Hashable { public enum NullEncodable<Wrapped> {
case encodeNothing case encodeNothing
case encodeNull case encodeNull
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Equatable where Wrapped: Equatable {}
extension NullEncodable: Hashable where Wrapped: Hashable {}
extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {

View File

@ -37,12 +37,14 @@ extension CaseIterableDefaultsLast {
/// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`) /// A flexible type that can be encoded (`.encodeNull` or `.encodeValue`)
/// or not encoded (`.encodeNothing`). Intended for request payloads. /// or not encoded (`.encodeNothing`). Intended for request payloads.
public enum NullEncodable<Wrapped: Hashable>: Hashable { public enum NullEncodable<Wrapped> {
case encodeNothing case encodeNothing
case encodeNull case encodeNull
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Equatable where Wrapped: Equatable {}
extension NullEncodable: Hashable where Wrapped: Hashable {}
extension NullEncodable: Sendable where Wrapped: Sendable {} extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {