[swift6] Add Sendable conformance to structs and enums (#20013)

This commit is contained in:
Lennard Sprong 2024-11-04 12:38:46 +01:00 committed by GitHub
parent 67af02ccc8
commit 00dbe59994
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
447 changed files with 668 additions and 639 deletions

View File

@ -13,4 +13,5 @@ additionalProperties:
useSPMFileStructure: true useSPMFileStructure: true
mapFileBinaryToData: true mapFileBinaryToData: true
useClasses: true useClasses: true
readonlyProperties: true
swiftUseApiNamespace: true swiftUseApiNamespace: true

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum JSONValue: Codable, Hashable { {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum JSONValue: Sendable, Codable, Hashable {
case string(String) case string(String)
case int(Int) case int(Int)
case double(Double) case double(Double)

View File

@ -44,6 +44,8 @@ extension CaseIterableDefaultsLast {
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} init(from decoder: Decoder) throws { {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} init(from decoder: Decoder) throws {
let container = try decoder.singleValueContainer() let container = try decoder.singleValueContainer()

View File

@ -15,7 +15,7 @@ import Foundation
/// an appropriate padding in order to transform to GMT+0 which is the assumed timezone in ISO 8601. /// an appropriate padding in order to transform to GMT+0 which is the assumed timezone in ISO 8601.
/// When decoding, GMT+0 can be assumed (again: ISO8601) so there is no padding necessary and wrappedDate /// When decoding, GMT+0 can be assumed (again: ISO8601) so there is no padding necessary and wrappedDate
/// can be used safely. /// can be used safely.
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} struct OpenAPIDateWithoutTime: Codable, Hashable, Equatable { {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} struct OpenAPIDateWithoutTime: Sendable, Codable, Hashable, Equatable {
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} let wrappedDate: Date {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} let wrappedDate: Date
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} let timezone: TimeZone {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} let timezone: TimeZone

View File

@ -6,7 +6,7 @@
import Foundation import Foundation
internal struct SynchronizedDictionary<K: Hashable, V> { internal struct SynchronizedDictionary<K: Hashable, V> : @unchecked Sendable {
private var dictionary = [K: V]() private var dictionary = [K: V]()
private let lock = NSRecursiveLock() private let lock = NSRecursiveLock()

View File

@ -1,4 +1,4 @@
{{#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}} { {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum {{classname}}: {{dataType}}, Sendable, {{#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}} {
{{#allowableValues}} {{#allowableValues}}
{{#enumVars}} {{#enumVars}}
case {{{name}}} = {{{value}}} case {{{name}}} = {{{value}}}

View File

@ -1,4 +1,4 @@
{{#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}} { {{#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}}, 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}} {
{{#allowableValues}} {{#allowableValues}}
{{#enumVars}} {{#enumVars}}
case {{{name}}} = {{{value}}} case {{{name}}} = {{{value}}}

View File

@ -1,4 +1,4 @@
{{^objcCompatible}}{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} {{#useClasses}}final class{{/useClasses}}{{^useClasses}}struct{{/useClasses}} {{{classname}}}: {{#useVapor}}Content{{/useVapor}}{{^useVapor}}Codable{{#useJsonEncodable}}, JSONEncodable{{/useJsonEncodable}}{{/useVapor}}{{#vendorExtensions.x-swift-hashable}}, Hashable{{/vendorExtensions.x-swift-hashable}} { {{^objcCompatible}}{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} {{#useClasses}}final class{{/useClasses}}{{^useClasses}}struct{{/useClasses}} {{{classname}}}: {{^useClasses}}Sendable, {{/useClasses}}{{#useClasses}}{{#readonlyProperties}}@unchecked Sendable, {{/readonlyProperties}}{{/useClasses}}{{#useVapor}}Content{{/useVapor}}{{^useVapor}}Codable{{#useJsonEncodable}}, JSONEncodable{{/useJsonEncodable}}{{/useVapor}}{{#vendorExtensions.x-swift-hashable}}, Hashable{{/vendorExtensions.x-swift-hashable}} {
{{/objcCompatible}}{{#objcCompatible}}@objcMembers {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} class {{classname}}: NSObject, Codable{{#useJsonEncodable}}, JSONEncodable{{/useJsonEncodable}} { {{/objcCompatible}}{{#objcCompatible}}@objcMembers {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} class {{classname}}: NSObject, Codable{{#useJsonEncodable}}, JSONEncodable{{/useJsonEncodable}} {
{{/objcCompatible}} {{/objcCompatible}}

View File

@ -1,4 +1,4 @@
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum {{classname}}: {{#useVapor}}Content{{/useVapor}}{{^useVapor}}Codable, JSONEncodable{{#vendorExtensions.x-swift-hashable}}, Hashable{{/vendorExtensions.x-swift-hashable}}{{/useVapor}} { {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} enum {{classname}}: {{^useClasses}}Sendable, {{/useClasses}}{{#useClasses}}{{#readonlyProperties}}Sendable, {{/readonlyProperties}}{{/useClasses}}{{#useVapor}}Content{{/useVapor}}{{^useVapor}}Codable, JSONEncodable{{#vendorExtensions.x-swift-hashable}}, Hashable{{/vendorExtensions.x-swift-hashable}}{{/useVapor}} {
{{#oneOf}} {{#oneOf}}
case type{{.}}({{.}}) case type{{.}}({{.}})
{{/oneOf}} {{/oneOf}}

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public enum JSONValue: Codable, Hashable { public enum JSONValue: Sendable, Codable, Hashable {
case string(String) case string(String)
case int(Int) case int(Int)
case double(Double) case double(Double)

View File

@ -44,6 +44,8 @@ public enum NullEncodable<Wrapped: Hashable>: Hashable {
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {
public init(from decoder: Decoder) throws { public init(from decoder: Decoder) throws {
let container = try decoder.singleValueContainer() let container = try decoder.singleValueContainer()

View File

@ -15,7 +15,7 @@ import Foundation
/// an appropriate padding in order to transform to GMT+0 which is the assumed timezone in ISO 8601. /// an appropriate padding in order to transform to GMT+0 which is the assumed timezone in ISO 8601.
/// When decoding, GMT+0 can be assumed (again: ISO8601) so there is no padding necessary and wrappedDate /// When decoding, GMT+0 can be assumed (again: ISO8601) so there is no padding necessary and wrappedDate
/// can be used safely. /// can be used safely.
public struct OpenAPIDateWithoutTime: Codable, Hashable, Equatable { public struct OpenAPIDateWithoutTime: Sendable, Codable, Hashable, Equatable {
public let wrappedDate: Date public let wrappedDate: Date
public let timezone: TimeZone public let timezone: TimeZone

View File

@ -6,7 +6,7 @@
import Foundation import Foundation
internal struct SynchronizedDictionary<K: Hashable, V> { internal struct SynchronizedDictionary<K: Hashable, V> : @unchecked Sendable {
private var dictionary = [K: V]() private var dictionary = [K: V]()
private let lock = NSRecursiveLock() private let lock = NSRecursiveLock()

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct AdditionalPropertiesClass: Codable, JSONEncodable, Hashable { public struct AdditionalPropertiesClass: Sendable, Codable, JSONEncodable, Hashable {
public var mapString: [String: String]? public var mapString: [String: String]?
public var mapMapString: [String: [String: String]]? public var mapMapString: [String: [String: String]]?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Animal: Codable, JSONEncodable, Hashable { public struct Animal: Sendable, Codable, JSONEncodable, Hashable {
public var className: String public var className: String
public var color: String? = "red" public var color: String? = "red"

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct ApiResponse: Codable, JSONEncodable, Hashable { public struct ApiResponse: Sendable, Codable, JSONEncodable, Hashable {
public var code: Int? public var code: Int?
public var type: String? public var type: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct ArrayOfArrayOfNumberOnly: Codable, JSONEncodable, Hashable { public struct ArrayOfArrayOfNumberOnly: Sendable, Codable, JSONEncodable, Hashable {
public var arrayArrayNumber: [[Double]]? public var arrayArrayNumber: [[Double]]?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct ArrayOfNumberOnly: Codable, JSONEncodable, Hashable { public struct ArrayOfNumberOnly: Sendable, Codable, JSONEncodable, Hashable {
public var arrayNumber: [Double]? public var arrayNumber: [Double]?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct ArrayTest: Codable, JSONEncodable, Hashable { public struct ArrayTest: Sendable, Codable, JSONEncodable, Hashable {
public var arrayOfString: [String]? public var arrayOfString: [String]?
public var arrayArrayOfInteger: [[Int64]]? public var arrayArrayOfInteger: [[Int64]]?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Capitalization: Codable, JSONEncodable, Hashable { public struct Capitalization: Sendable, Codable, JSONEncodable, Hashable {
public var smallCamel: String? public var smallCamel: String?
public var capitalCamel: String? public var capitalCamel: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Cat: Codable, JSONEncodable, Hashable { public struct Cat: Sendable, Codable, JSONEncodable, Hashable {
public var className: String public var className: String
public var color: String? = "red" public var color: String? = "red"

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Category: Codable, JSONEncodable, Hashable { public struct Category: Sendable, Codable, JSONEncodable, Hashable {
public var id: Int64? public var id: Int64?
public var name: String? = "default-name" public var name: String? = "default-name"

View File

@ -8,7 +8,7 @@
import Foundation import Foundation
/** Model for testing model with \&quot;_class\&quot; property */ /** Model for testing model with \&quot;_class\&quot; property */
public struct ClassModel: Codable, JSONEncodable, Hashable { public struct ClassModel: Sendable, Codable, JSONEncodable, Hashable {
public var _class: String? public var _class: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Client: Codable, JSONEncodable, Hashable { public struct Client: Sendable, Codable, JSONEncodable, Hashable {
public var client: String? public var client: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Dog: Codable, JSONEncodable, Hashable { public struct Dog: Sendable, Codable, JSONEncodable, Hashable {
public var className: String public var className: String
public var color: String? = "red" public var color: String? = "red"

View File

@ -7,13 +7,13 @@
import Foundation import Foundation
public struct EnumArrays: Codable, JSONEncodable, Hashable { public struct EnumArrays: Sendable, Codable, JSONEncodable, Hashable {
public enum JustSymbol: String, Codable, CaseIterable { public enum JustSymbol: String, Sendable, Codable, CaseIterable {
case greaterThanOrEqualTo = ">=" case greaterThanOrEqualTo = ">="
case dollar = "$" case dollar = "$"
} }
public enum ArrayEnum: String, Codable, CaseIterable { public enum ArrayEnum: String, Sendable, Codable, CaseIterable {
case fish = "fish" case fish = "fish"
case crab = "crab" case crab = "crab"
} }

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public enum EnumClass: String, Codable, CaseIterable { public enum EnumClass: String, Sendable, Codable, CaseIterable {
case abc = "_abc" case abc = "_abc"
case efg = "-efg" case efg = "-efg"
case xyz = "(xyz)" case xyz = "(xyz)"

View File

@ -7,23 +7,23 @@
import Foundation import Foundation
public struct EnumTest: Codable, JSONEncodable, Hashable { public struct EnumTest: Sendable, Codable, JSONEncodable, Hashable {
public enum EnumString: String, Codable, CaseIterable { public enum EnumString: String, Sendable, Codable, CaseIterable {
case upper = "UPPER" case upper = "UPPER"
case lower = "lower" case lower = "lower"
case empty = "" case empty = ""
} }
public enum EnumStringRequired: String, Codable, CaseIterable { public enum EnumStringRequired: String, Sendable, Codable, CaseIterable {
case upper = "UPPER" case upper = "UPPER"
case lower = "lower" case lower = "lower"
case empty = "" case empty = ""
} }
public enum EnumInteger: Int, Codable, CaseIterable { public enum EnumInteger: Int, Sendable, Codable, CaseIterable {
case _1 = 1 case _1 = 1
case number1 = -1 case number1 = -1
} }
public enum EnumNumber: Double, Codable, CaseIterable { public enum EnumNumber: Double, Sendable, Codable, CaseIterable {
case _11 = 1.1 case _11 = 1.1
case number12 = -1.2 case number12 = -1.2
} }

View File

@ -8,7 +8,7 @@
import Foundation import Foundation
/** Must be named &#x60;File&#x60; for test. */ /** Must be named &#x60;File&#x60; for test. */
public struct File: Codable, JSONEncodable, Hashable { public struct File: Sendable, Codable, JSONEncodable, Hashable {
/** Test capitalization */ /** Test capitalization */
public var sourceURI: String? public var sourceURI: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct FileSchemaTestClass: Codable, JSONEncodable, Hashable { public struct FileSchemaTestClass: Sendable, Codable, JSONEncodable, Hashable {
public var file: File? public var file: File?
public var files: [File]? public var files: [File]?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct FormatTest: Codable, JSONEncodable, Hashable { public struct FormatTest: Sendable, Codable, JSONEncodable, Hashable {
static let integerRule = NumericRule<Int>(minimum: 10, exclusiveMinimum: false, maximum: 100, exclusiveMaximum: false, multipleOf: nil) static let integerRule = NumericRule<Int>(minimum: 10, exclusiveMinimum: false, maximum: 100, exclusiveMaximum: false, multipleOf: nil)
static let int32Rule = NumericRule<Int>(minimum: 20, exclusiveMinimum: false, maximum: 200, exclusiveMaximum: false, multipleOf: nil) static let int32Rule = NumericRule<Int>(minimum: 20, exclusiveMinimum: false, maximum: 200, exclusiveMaximum: false, multipleOf: nil)

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct HasOnlyReadOnly: Codable, JSONEncodable, Hashable { public struct HasOnlyReadOnly: Sendable, Codable, JSONEncodable, Hashable {
public var bar: String? public var bar: String?
public var foo: String? public var foo: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct List: Codable, JSONEncodable, Hashable { public struct List: Sendable, Codable, JSONEncodable, Hashable {
public var _123list: String? public var _123list: String?

View File

@ -7,9 +7,9 @@
import Foundation import Foundation
public struct MapTest: Codable, JSONEncodable, Hashable { public struct MapTest: Sendable, Codable, JSONEncodable, Hashable {
public enum MapOfEnumString: String, Codable, CaseIterable { public enum MapOfEnumString: String, Sendable, Codable, CaseIterable {
case upper = "UPPER" case upper = "UPPER"
case lower = "lower" case lower = "lower"
} }

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct MixedPropertiesAndAdditionalPropertiesClass: Codable, JSONEncodable, Hashable { public struct MixedPropertiesAndAdditionalPropertiesClass: Sendable, Codable, JSONEncodable, Hashable {
public var uuid: UUID? public var uuid: UUID?
public var dateTime: Date? public var dateTime: Date?

View File

@ -8,7 +8,7 @@
import Foundation import Foundation
/** Model for testing model name starting with number */ /** Model for testing model name starting with number */
public struct Model200Response: Codable, JSONEncodable, Hashable { public struct Model200Response: Sendable, Codable, JSONEncodable, Hashable {
public var name: Int? public var name: Int?
public var _class: String? public var _class: String?

View File

@ -8,7 +8,7 @@
import Foundation import Foundation
/** Model for testing model name same as property name */ /** Model for testing model name same as property name */
public struct Name: Codable, JSONEncodable, Hashable { public struct Name: Sendable, Codable, JSONEncodable, Hashable {
public var name: Int public var name: Int
public var snakeCase: NullEncodable<Int> = .encodeValue(11033) public var snakeCase: NullEncodable<Int> = .encodeValue(11033)

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct NumberOnly: Codable, JSONEncodable, Hashable { public struct NumberOnly: Sendable, Codable, JSONEncodable, Hashable {
public var justNumber: Double? public var justNumber: Double?

View File

@ -7,9 +7,9 @@
import Foundation import Foundation
public struct Order: Codable, JSONEncodable, Hashable { public struct Order: Sendable, Codable, JSONEncodable, Hashable {
public enum Status: String, Codable, CaseIterable { public enum Status: String, Sendable, Codable, CaseIterable {
case placed = "placed" case placed = "placed"
case approved = "approved" case approved = "approved"
case delivered = "delivered" case delivered = "delivered"

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct OuterComposite: Codable, JSONEncodable, Hashable { public struct OuterComposite: Sendable, Codable, JSONEncodable, Hashable {
public var myNumber: Double? public var myNumber: Double?
public var myString: String? public var myString: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public enum OuterEnum: String, Codable, CaseIterable { public enum OuterEnum: String, Sendable, Codable, CaseIterable {
case placed = "placed" case placed = "placed"
case approved = "approved" case approved = "approved"
case delivered = "delivered" case delivered = "delivered"

View File

@ -7,9 +7,9 @@
import Foundation import Foundation
public struct Pet: Codable, JSONEncodable, Hashable { public struct Pet: Sendable, Codable, JSONEncodable, Hashable {
public enum Status: String, Codable, CaseIterable { public enum Status: String, Sendable, Codable, CaseIterable {
case available = "available" case available = "available"
case pending = "pending" case pending = "pending"
case sold = "sold" case sold = "sold"

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct ReadOnlyFirst: Codable, JSONEncodable, Hashable { public struct ReadOnlyFirst: Sendable, Codable, JSONEncodable, Hashable {
public var bar: String? public var bar: String?
public var baz: String? public var baz: String?

View File

@ -8,7 +8,7 @@
import Foundation import Foundation
/** Model for testing reserved words */ /** Model for testing reserved words */
public struct Return: Codable, JSONEncodable, Hashable { public struct Return: Sendable, Codable, JSONEncodable, Hashable {
public var _return: Int? public var _return: Int?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct SpecialModelName: Codable, JSONEncodable, Hashable { public struct SpecialModelName: Sendable, Codable, JSONEncodable, Hashable {
public var specialPropertyName: Int64? public var specialPropertyName: Int64?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct StringBooleanMap: Codable, JSONEncodable, Hashable { public struct StringBooleanMap: Sendable, Codable, JSONEncodable, Hashable {
public enum CodingKeys: CodingKey, CaseIterable { public enum CodingKeys: CodingKey, CaseIterable {

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Tag: Codable, JSONEncodable, Hashable { public struct Tag: Sendable, Codable, JSONEncodable, Hashable {
public var id: Int64? public var id: Int64?
public var name: String? public var name: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct TypeHolderDefault: Codable, JSONEncodable, Hashable { public struct TypeHolderDefault: Sendable, Codable, JSONEncodable, Hashable {
public var stringItem: String = "what" public var stringItem: String = "what"
public var numberItem: Double public var numberItem: Double

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct TypeHolderExample: Codable, JSONEncodable, Hashable { public struct TypeHolderExample: Sendable, Codable, JSONEncodable, Hashable {
public var stringItem: String public var stringItem: String
public var numberItem: Double public var numberItem: Double

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct User: Codable, JSONEncodable, Hashable { public struct User: Sendable, Codable, JSONEncodable, Hashable {
public var id: Int64? public var id: Int64?
public var username: String? public var username: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public enum JSONValue: Codable, Hashable { public enum JSONValue: Sendable, Codable, Hashable {
case string(String) case string(String)
case int(Int) case int(Int)
case double(Double) case double(Double)

View File

@ -44,6 +44,8 @@ public enum NullEncodable<Wrapped: Hashable>: Hashable {
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {
public init(from decoder: Decoder) throws { public init(from decoder: Decoder) throws {
let container = try decoder.singleValueContainer() let container = try decoder.singleValueContainer()

View File

@ -6,7 +6,7 @@
import Foundation import Foundation
internal struct SynchronizedDictionary<K: Hashable, V> { internal struct SynchronizedDictionary<K: Hashable, V> : @unchecked Sendable {
private var dictionary = [K: V]() private var dictionary = [K: V]()
private let lock = NSRecursiveLock() private let lock = NSRecursiveLock()

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct AdditionalPropertiesClass: Codable, JSONEncodable, Hashable { public struct AdditionalPropertiesClass: Sendable, Codable, JSONEncodable, Hashable {
public var mapString: [String: String]? public var mapString: [String: String]?
public var mapMapString: [String: [String: String]]? public var mapMapString: [String: [String: String]]?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Animal: Codable, JSONEncodable, Hashable { public struct Animal: Sendable, Codable, JSONEncodable, Hashable {
public var className: String public var className: String
public var color: String? = "red" public var color: String? = "red"

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct ApiResponse: Codable, JSONEncodable, Hashable { public struct ApiResponse: Sendable, Codable, JSONEncodable, Hashable {
public var code: Int? public var code: Int?
public var type: String? public var type: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct ArrayOfArrayOfNumberOnly: Codable, JSONEncodable, Hashable { public struct ArrayOfArrayOfNumberOnly: Sendable, Codable, JSONEncodable, Hashable {
public var arrayArrayNumber: [[Double]]? public var arrayArrayNumber: [[Double]]?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct ArrayOfNumberOnly: Codable, JSONEncodable, Hashable { public struct ArrayOfNumberOnly: Sendable, Codable, JSONEncodable, Hashable {
public var arrayNumber: [Double]? public var arrayNumber: [Double]?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct ArrayTest: Codable, JSONEncodable, Hashable { public struct ArrayTest: Sendable, Codable, JSONEncodable, Hashable {
public var arrayOfString: [String]? public var arrayOfString: [String]?
public var arrayArrayOfInteger: [[Int64]]? public var arrayArrayOfInteger: [[Int64]]?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Capitalization: Codable, JSONEncodable, Hashable { public struct Capitalization: Sendable, Codable, JSONEncodable, Hashable {
public var smallCamel: String? public var smallCamel: String?
public var capitalCamel: String? public var capitalCamel: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Cat: Codable, JSONEncodable, Hashable { public struct Cat: Sendable, Codable, JSONEncodable, Hashable {
public var className: String public var className: String
public var color: String? = "red" public var color: String? = "red"

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Category: Codable, JSONEncodable, Hashable { public struct Category: Sendable, Codable, JSONEncodable, Hashable {
public var id: Int64? public var id: Int64?
public var name: String? = "default-name" public var name: String? = "default-name"

View File

@ -8,7 +8,7 @@
import Foundation import Foundation
/** Model for testing model with \&quot;_class\&quot; property */ /** Model for testing model with \&quot;_class\&quot; property */
public struct ClassModel: Codable, JSONEncodable, Hashable { public struct ClassModel: Sendable, Codable, JSONEncodable, Hashable {
public var _class: String? public var _class: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Client: Codable, JSONEncodable, Hashable { public struct Client: Sendable, Codable, JSONEncodable, Hashable {
public var client: String? public var client: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Dog: Codable, JSONEncodable, Hashable { public struct Dog: Sendable, Codable, JSONEncodable, Hashable {
public var className: String public var className: String
public var color: String? = "red" public var color: String? = "red"

View File

@ -7,13 +7,13 @@
import Foundation import Foundation
public struct EnumArrays: Codable, JSONEncodable, Hashable { public struct EnumArrays: Sendable, Codable, JSONEncodable, Hashable {
public enum JustSymbol: String, Codable, CaseIterable { public enum JustSymbol: String, Sendable, Codable, CaseIterable {
case greaterThanOrEqualTo = ">=" case greaterThanOrEqualTo = ">="
case dollar = "$" case dollar = "$"
} }
public enum ArrayEnum: String, Codable, CaseIterable { public enum ArrayEnum: String, Sendable, Codable, CaseIterable {
case fish = "fish" case fish = "fish"
case crab = "crab" case crab = "crab"
} }

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public enum EnumClass: String, Codable, CaseIterable { public enum EnumClass: String, Sendable, Codable, CaseIterable {
case abc = "_abc" case abc = "_abc"
case efg = "-efg" case efg = "-efg"
case xyz = "(xyz)" case xyz = "(xyz)"

View File

@ -7,23 +7,23 @@
import Foundation import Foundation
public struct EnumTest: Codable, JSONEncodable, Hashable { public struct EnumTest: Sendable, Codable, JSONEncodable, Hashable {
public enum EnumString: String, Codable, CaseIterable { public enum EnumString: String, Sendable, Codable, CaseIterable {
case upper = "UPPER" case upper = "UPPER"
case lower = "lower" case lower = "lower"
case empty = "" case empty = ""
} }
public enum EnumStringRequired: String, Codable, CaseIterable { public enum EnumStringRequired: String, Sendable, Codable, CaseIterable {
case upper = "UPPER" case upper = "UPPER"
case lower = "lower" case lower = "lower"
case empty = "" case empty = ""
} }
public enum EnumInteger: Int, Codable, CaseIterable { public enum EnumInteger: Int, Sendable, Codable, CaseIterable {
case _1 = 1 case _1 = 1
case number1 = -1 case number1 = -1
} }
public enum EnumNumber: Double, Codable, CaseIterable { public enum EnumNumber: Double, Sendable, Codable, CaseIterable {
case _11 = 1.1 case _11 = 1.1
case number12 = -1.2 case number12 = -1.2
} }

View File

@ -8,7 +8,7 @@
import Foundation import Foundation
/** Must be named &#x60;File&#x60; for test. */ /** Must be named &#x60;File&#x60; for test. */
public struct File: Codable, JSONEncodable, Hashable { public struct File: Sendable, Codable, JSONEncodable, Hashable {
/** Test capitalization */ /** Test capitalization */
public var sourceURI: String? public var sourceURI: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct FileSchemaTestClass: Codable, JSONEncodable, Hashable { public struct FileSchemaTestClass: Sendable, Codable, JSONEncodable, Hashable {
public var file: File? public var file: File?
public var files: [File]? public var files: [File]?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct FormatTest: Codable, JSONEncodable, Hashable { public struct FormatTest: Sendable, Codable, JSONEncodable, Hashable {
static let integerRule = NumericRule<Int>(minimum: 10, exclusiveMinimum: false, maximum: 100, exclusiveMaximum: false, multipleOf: nil) static let integerRule = NumericRule<Int>(minimum: 10, exclusiveMinimum: false, maximum: 100, exclusiveMaximum: false, multipleOf: nil)
static let int32Rule = NumericRule<Int>(minimum: 20, exclusiveMinimum: false, maximum: 200, exclusiveMaximum: false, multipleOf: nil) static let int32Rule = NumericRule<Int>(minimum: 20, exclusiveMinimum: false, maximum: 200, exclusiveMaximum: false, multipleOf: nil)

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct HasOnlyReadOnly: Codable, JSONEncodable, Hashable { public struct HasOnlyReadOnly: Sendable, Codable, JSONEncodable, Hashable {
public var bar: String? public var bar: String?
public var foo: String? public var foo: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct List: Codable, JSONEncodable, Hashable { public struct List: Sendable, Codable, JSONEncodable, Hashable {
public var _123list: String? public var _123list: String?

View File

@ -7,9 +7,9 @@
import Foundation import Foundation
public struct MapTest: Codable, JSONEncodable, Hashable { public struct MapTest: Sendable, Codable, JSONEncodable, Hashable {
public enum MapOfEnumString: String, Codable, CaseIterable { public enum MapOfEnumString: String, Sendable, Codable, CaseIterable {
case upper = "UPPER" case upper = "UPPER"
case lower = "lower" case lower = "lower"
} }

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct MixedPropertiesAndAdditionalPropertiesClass: Codable, JSONEncodable, Hashable { public struct MixedPropertiesAndAdditionalPropertiesClass: Sendable, Codable, JSONEncodable, Hashable {
public var uuid: UUID? public var uuid: UUID?
public var dateTime: Date? public var dateTime: Date?

View File

@ -8,7 +8,7 @@
import Foundation import Foundation
/** Model for testing model name starting with number */ /** Model for testing model name starting with number */
public struct Model200Response: Codable, JSONEncodable, Hashable { public struct Model200Response: Sendable, Codable, JSONEncodable, Hashable {
public var name: Int? public var name: Int?
public var _class: String? public var _class: String?

View File

@ -8,7 +8,7 @@
import Foundation import Foundation
/** Model for testing model name same as property name */ /** Model for testing model name same as property name */
public struct Name: Codable, JSONEncodable, Hashable { public struct Name: Sendable, Codable, JSONEncodable, Hashable {
public var name: Int public var name: Int
public var snakeCase: NullEncodable<Int> = .encodeValue(11033) public var snakeCase: NullEncodable<Int> = .encodeValue(11033)

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct NumberOnly: Codable, JSONEncodable, Hashable { public struct NumberOnly: Sendable, Codable, JSONEncodable, Hashable {
public var justNumber: Double? public var justNumber: Double?

View File

@ -7,9 +7,9 @@
import Foundation import Foundation
public struct Order: Codable, JSONEncodable, Hashable { public struct Order: Sendable, Codable, JSONEncodable, Hashable {
public enum Status: String, Codable, CaseIterable { public enum Status: String, Sendable, Codable, CaseIterable {
case placed = "placed" case placed = "placed"
case approved = "approved" case approved = "approved"
case delivered = "delivered" case delivered = "delivered"

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct OuterComposite: Codable, JSONEncodable, Hashable { public struct OuterComposite: Sendable, Codable, JSONEncodable, Hashable {
public var myNumber: Double? public var myNumber: Double?
public var myString: String? public var myString: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public enum OuterEnum: String, Codable, CaseIterable { public enum OuterEnum: String, Sendable, Codable, CaseIterable {
case placed = "placed" case placed = "placed"
case approved = "approved" case approved = "approved"
case delivered = "delivered" case delivered = "delivered"

View File

@ -7,9 +7,9 @@
import Foundation import Foundation
public struct Pet: Codable, JSONEncodable, Hashable { public struct Pet: Sendable, Codable, JSONEncodable, Hashable {
public enum Status: String, Codable, CaseIterable { public enum Status: String, Sendable, Codable, CaseIterable {
case available = "available" case available = "available"
case pending = "pending" case pending = "pending"
case sold = "sold" case sold = "sold"

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct ReadOnlyFirst: Codable, JSONEncodable, Hashable { public struct ReadOnlyFirst: Sendable, Codable, JSONEncodable, Hashable {
public var bar: String? public var bar: String?
public var baz: String? public var baz: String?

View File

@ -8,7 +8,7 @@
import Foundation import Foundation
/** Model for testing reserved words */ /** Model for testing reserved words */
public struct Return: Codable, JSONEncodable, Hashable { public struct Return: Sendable, Codable, JSONEncodable, Hashable {
public var _return: Int? public var _return: Int?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct SpecialModelName: Codable, JSONEncodable, Hashable { public struct SpecialModelName: Sendable, Codable, JSONEncodable, Hashable {
public var specialPropertyName: Int64? public var specialPropertyName: Int64?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Tag: Codable, JSONEncodable, Hashable { public struct Tag: Sendable, Codable, JSONEncodable, Hashable {
public var id: Int64? public var id: Int64?
public var name: String? public var name: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct TypeHolderDefault: Codable, JSONEncodable, Hashable { public struct TypeHolderDefault: Sendable, Codable, JSONEncodable, Hashable {
public var stringItem: String = "what" public var stringItem: String = "what"
public var numberItem: Double public var numberItem: Double

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct TypeHolderExample: Codable, JSONEncodable, Hashable { public struct TypeHolderExample: Sendable, Codable, JSONEncodable, Hashable {
public var stringItem: String public var stringItem: String
public var numberItem: Double public var numberItem: Double

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct User: Codable, JSONEncodable, Hashable { public struct User: Sendable, Codable, JSONEncodable, Hashable {
public var id: Int64? public var id: Int64?
public var username: String? public var username: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public enum JSONValue: Codable, Hashable { public enum JSONValue: Sendable, Codable, Hashable {
case string(String) case string(String)
case int(Int) case int(Int)
case double(Double) case double(Double)

View File

@ -43,6 +43,8 @@ public enum NullEncodable<Wrapped: Hashable>: Hashable {
case encodeValue(Wrapped) case encodeValue(Wrapped)
} }
extension NullEncodable: Sendable where Wrapped: Sendable {}
extension NullEncodable: Codable where Wrapped: Codable { extension NullEncodable: Codable where Wrapped: Codable {
public init(from decoder: Decoder) throws { public init(from decoder: Decoder) throws {
let container = try decoder.singleValueContainer() let container = try decoder.singleValueContainer()

View File

@ -6,7 +6,7 @@
import Foundation import Foundation
internal struct SynchronizedDictionary<K: Hashable, V> { internal struct SynchronizedDictionary<K: Hashable, V> : @unchecked Sendable {
private var dictionary = [K: V]() private var dictionary = [K: V]()
private let lock = NSRecursiveLock() private let lock = NSRecursiveLock()

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct AdditionalPropertiesClass: Codable, JSONEncodable, Hashable { public struct AdditionalPropertiesClass: Sendable, Codable, JSONEncodable, Hashable {
public var mapString: [String: String]? public var mapString: [String: String]?
public var mapMapString: [String: [String: String]]? public var mapMapString: [String: [String: String]]?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Animal: Codable, JSONEncodable, Hashable { public struct Animal: Sendable, Codable, JSONEncodable, Hashable {
public var className: String public var className: String
public var color: String? = "red" public var color: String? = "red"

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct ApiResponse: Codable, JSONEncodable, Hashable { public struct ApiResponse: Sendable, Codable, JSONEncodable, Hashable {
public var code: Int? public var code: Int?
public var type: String? public var type: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct ArrayOfArrayOfNumberOnly: Codable, JSONEncodable, Hashable { public struct ArrayOfArrayOfNumberOnly: Sendable, Codable, JSONEncodable, Hashable {
public var arrayArrayNumber: [[Double]]? public var arrayArrayNumber: [[Double]]?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct ArrayOfNumberOnly: Codable, JSONEncodable, Hashable { public struct ArrayOfNumberOnly: Sendable, Codable, JSONEncodable, Hashable {
public var arrayNumber: [Double]? public var arrayNumber: [Double]?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct ArrayTest: Codable, JSONEncodable, Hashable { public struct ArrayTest: Sendable, Codable, JSONEncodable, Hashable {
public var arrayOfString: [String]? public var arrayOfString: [String]?
public var arrayArrayOfInteger: [[Int64]]? public var arrayArrayOfInteger: [[Int64]]?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Capitalization: Codable, JSONEncodable, Hashable { public struct Capitalization: Sendable, Codable, JSONEncodable, Hashable {
public var smallCamel: String? public var smallCamel: String?
public var capitalCamel: String? public var capitalCamel: String?

View File

@ -7,7 +7,7 @@
import Foundation import Foundation
public struct Cat: Codable, JSONEncodable, Hashable { public struct Cat: Sendable, Codable, JSONEncodable, Hashable {
public var className: String public var className: String
public var color: String? = "red" public var color: String? = "red"

Some files were not shown because too many files have changed in this diff Show More