Skip to content

Commit 28dbfaf

Browse files
committed
Merge remote-tracking branch 'origin/fix-apple-generic-serialization' into feat-swift-codable-models
2 parents eda95f9 + b4bb9da commit 28dbfaf

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

templates/apple/Sources/Client.swift.twig

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -429,18 +429,23 @@ open class Client {
429429
if param is String
430430
|| param is Int
431431
|| param is Float
432+
|| param is Double
432433
|| param is Bool
433434
|| param is [String]
434435
|| param is [Int]
435436
|| param is [Float]
437+
|| param is [Double]
436438
|| param is [Bool]
437439
|| param is [String: Any]
438440
|| param is [Int: Any]
439441
|| param is [Float: Any]
442+
|| param is [Double: Any]
440443
|| param is [Bool: Any] {
441444
encodedParams[key] = param
445+
} else if let encodable = param as? Encodable {
446+
encodedParams[key] = try encodable.toJson()
442447
} else {
443-
encodedParams[key] = try (param as! Encodable).toJson()
448+
encodedParams[key] = String(describing: param)
444449
}
445450
}
446451

templates/swift/Sources/Client.swift.twig

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -465,18 +465,23 @@ open class Client {
465465
if param is String
466466
|| param is Int
467467
|| param is Float
468+
|| param is Double
468469
|| param is Bool
469470
|| param is [String]
470471
|| param is [Int]
471472
|| param is [Float]
473+
|| param is [Double]
472474
|| param is [Bool]
473475
|| param is [String: Any]
474476
|| param is [Int: Any]
475477
|| param is [Float: Any]
478+
|| param is [Double: Any]
476479
|| param is [Bool: Any] {
477480
encodedParams[key] = param
481+
} else if let encodable = param as? Encodable {
482+
encodedParams[key] = try encodable.toJson()
478483
} else {
479-
encodedParams[key] = try (param as! Encodable).toJson()
484+
encodedParams[key] = String(describing: param)
480485
}
481486
}
482487

templates/swift/Sources/Enums/Enum.swift.twig

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
import Foundation
22

3-
public enum {{ enum.name | caseUcfirst | overrideIdentifier }}: String, Codable {
3+
public enum {{ enum.name | caseUcfirst | overrideIdentifier }}: String, CustomStringConvertible, Codable {
44
{%~ for value in enum.enum %}
55
{%~ set key = enum.keys is empty ? value : enum.keys[loop.index0] %}
66
case {{ key | caseEnumKey | escapeSwiftKeyword }} = "{{ value }}"
77
{%~ endfor %}
88

9+
public var description: String {
10+
return rawValue
11+
}
12+
913
public func encode(to encoder: Encoder) throws {
1014
var container = encoder.singleValueContainer()
1115
try container.encode(rawValue)

0 commit comments

Comments
 (0)