diff --git a/.gitignore b/.gitignore index 0568fec..2ef578e 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ Carthage/Build # General OS X .DS_Store +.swiftpm diff --git a/.swift-version b/.swift-version deleted file mode 100644 index 5186d07..0000000 --- a/.swift-version +++ /dev/null @@ -1 +0,0 @@ -4.0 diff --git a/Decodable.podspec b/Decodable.podspec index fc81359..da0a19b 100644 --- a/Decodable.podspec +++ b/Decodable.podspec @@ -1,12 +1,20 @@ Pod::Spec.new do |s| - s.name = "Decodable" - s.version = "0.6.0" - s.summary = "Swift JSON parsing done (more) right" - s.description = "Simple yet powerful object mapping made possible by Swift 2's error handling. Greatly inspired by Argo, but without any functional programming and bizillion operators." - s.homepage = "https://github.com/Anviking/Decodable" + s.name = 'Decodable' + s.version = '0.7.0' + s.summary = 'Swift JSON parsing done (more) right' + s.description = 'Simple yet powerful object mapping made possible by Swift 2\'s error handling. Greatly inspired by Argo, but without any functional programming and bizillion operators.' + s.homepage = 'https://github.com/Anviking/Decodable' s.license = 'MIT' - s.author = { "Anviking" => "anviking@me.com" } - s.source = { :git => "https://github.com/Anviking/Decodable.git", :tag => "#{s.version}" } + s.author = { + 'Anviking' => 'anviking@me.com', + 'Joe Mattiello' => 'jmattiello@newscorp.com' + } + s.source = { + :git => 'https://github.com/newscorp-ghfb/Decodable.git', + :tag => s.version.to_s + } + + s.swift_versions = ['4.2', '5.0'] s.ios.deployment_target = '8.0' s.osx.deployment_target = '10.9' s.tvos.deployment_target = '9.0' diff --git a/Decodable.xcodeproj/project.pbxproj b/Decodable.xcodeproj/project.pbxproj index aa0439b..9e300dd 100644 --- a/Decodable.xcodeproj/project.pbxproj +++ b/Decodable.xcodeproj/project.pbxproj @@ -469,7 +469,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0900; + LastUpgradeCheck = 1120; ORGANIZATIONNAME = anviking; TargetAttributes = { 17FB80F61B530FED0012F106 = { @@ -480,11 +480,11 @@ }; 8FE7B5611B4C9FB900837609 = { CreatedOnToolsVersion = 7.0; - LastSwiftMigration = 0900; + LastSwiftMigration = 1120; }; 8FE7B56B1B4C9FB900837609 = { CreatedOnToolsVersion = 7.0; - LastSwiftMigration = 0900; + LastSwiftMigration = 1120; }; D0DC546E1B7814D200F79CB0 = { CreatedOnToolsVersion = 7.0; @@ -494,10 +494,11 @@ }; buildConfigurationList = 8FE7B55C1B4C9FB900837609 /* Build configuration list for PBXProject "Decodable" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); mainGroup = 8FE7B5581B4C9FB900837609; productRefGroup = 8FE7B5631B4C9FB900837609 /* Products */; @@ -833,7 +834,8 @@ PRODUCT_BUNDLE_IDENTIFIER = anviking.DecodableTests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Release; }; @@ -882,6 +884,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; BITCODE_GENERATION_MODE = bitcode; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -890,12 +893,14 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -929,8 +934,9 @@ MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TVOS_DEPLOYMENT_TARGET = 9.0; VERSIONING_SYSTEM = "apple-generic"; @@ -945,6 +951,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; BITCODE_GENERATION_MODE = bitcode; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -953,12 +960,14 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -986,8 +995,8 @@ MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TVOS_DEPLOYMENT_TARGET = 9.0; VALIDATE_PRODUCT = YES; @@ -1015,8 +1024,7 @@ PRODUCT_NAME = Decodable; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -1038,8 +1046,7 @@ PRODUCT_NAME = Decodable; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -1052,8 +1059,9 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = anviking.DecodableTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.0; + SWIFT_COMPILATION_MODE = singlefile; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -1066,9 +1074,9 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = anviking.DecodableTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.0; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; }; name = Release; }; diff --git a/Decodable.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Decodable.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Decodable.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Decodable.xcodeproj/xcshareddata/xcschemes/Decodable-Mac.xcscheme b/Decodable.xcodeproj/xcshareddata/xcschemes/Decodable-Mac.xcscheme index b50f67f..16780dc 100644 --- a/Decodable.xcodeproj/xcshareddata/xcschemes/Decodable-Mac.xcscheme +++ b/Decodable.xcodeproj/xcshareddata/xcschemes/Decodable-Mac.xcscheme @@ -1,6 +1,6 @@ + + + + @@ -40,17 +49,6 @@ - - - - - - - - + + + + @@ -40,17 +49,6 @@ - - - - - - - - - - - - - - - - Repository { return try Repository( - name: j => "nested" => "name", - description: j => "description", - stargazersCount: j => "stargazers_count", - language: j => "language", + name: j => "nested" => "name", + description: j => "description", + stargazersCount: j => "stargazers_count", + language: j => "language", sometimesMissingKey: j =>? "sometimesMissingKey", - owner: j => "owner", + owner: j => "owner", defaultBranch: Branch(name: j => "default_branch") ) } @@ -47,25 +47,31 @@ do { ## How does it work? ### A protocol + ```swift public protocol Decodable { static func decode(json: Any) throws -> Self } ``` + ### A parse-function + ```swift public func parse(json: Any, path: [String], decode: (Any throws -> T)) throws -> T ``` ### And shameless operator-overloading -The too-many generated overloads, all calling the `parse`-function, can be found in [Overloads.swift](https://github.com/Anviking/Decodable/blob/master/Sources/Overloads.swift). Return types include `T?`, `[T?]`, `[T?]?`, `Any` and `[String: T]?`. When conditional protocol conformance is supported in Swift this won't be necessary, and automagic decoding of infinitly nested generic types (like `[[[[[[[[[A???]]: B]]]?]]?]]`) would work. + +The too-many generated overloads, all calling the `parse`-function, can be found in [Overloads.swift](https://github.com/Anviking/Decodable/blob/master/Sources/Overloads.swift). Return types include `T?`, `[T?]`, `[T?]?`, `Any` and `[String: T]?`. When conditional protocol conformance is supported in Swift this won't be necessary, and automatic decoding of infinitely nested generic types (like `[[[[[[[[[A???]]: B]]]?]]?]]`) would work. An overload may look like this: + ```swift public func => (json: Any, keyPath: KeyPath) throws -> T ``` ## KeyPaths + Keypaths can be created from string and array literals as well as with explicit initializers. They can also be joined using the operators `=>` and `=>?`. `=>?` is another operator that indicates that `nil` should be returned if the key to the right is missing. - When composing `=>` and `=>?` operators in the same keypath, the strictness of `=>` is still honoured. @@ -78,10 +84,13 @@ let c: KeyPath = "a" => "b" => "c" let string: String? = json =>? "key1" => "key2" => "key3"` ^^^^ allowed to be missing ``` + ## Errors + Errors will be caught and rethrown in the decoding process to backpropagate metadata, like the JSON object that failed decoding, the key path to it, and the root JSON object. From [DecodingError.swift](https://github.com/anviking/decodable/tree/master/Sources/DecodingError.swift): + ```swift public enum DecodingError: ErrorProtocol, Equatable { /// Thrown when optional casting from `Any` fails. @@ -90,15 +99,15 @@ public enum DecodingError: ErrorProtocol, Equatable { /// that isn't a `NSDictionary`, and failing to cast a `Castable` /// primitive. case typeMismatch(expected: Any.Type, actual: Any.Type, Metadata) - + /// Thrown when a given, required, key was not found in a dictionary. case missingKey(String, Metadata) - + /// Thrown from the `RawRepresentable` extension when /// `init(rawValue:)` returned `nil`. case rawRepresentableInitializationError(rawValue: Any, Metadata) - - /// When an error is thrown that isn't `DecodingError`, it + + /// When an error is thrown that isn't `DecodingError`, it /// will be wrapped in `DecodingError.other` in order to also provide /// metadata about where the error was thrown. case other(ErrorProtocol, Metadata) @@ -121,26 +130,31 @@ do { ``` ## Handling Errors -Expressions like `j => "key"` will throw directly, and `catch`-statements can be used to create the most complex error handling behaviours. This also means that `try?` can be used to return nil if *anything* goes wrong instead of throwing. + +Expressions like `j => "key"` will throw directly, and `catch`-statements can be used to create the most complex error handling behaviours. This also means that `try?` can be used to return nil if _anything_ goes wrong instead of throwing. For convenience there is an operator, `=>?`, that only returns nil on missing keys, for APIs that indicate `null` in that manner, and to aid working with different response formats. -| Overload | Null Behaviour | Missing Key Behavior |Type Mismatch Behaviour | Errors in subobjects | -| ------------- |:-------------:|:-----:|:-----:|:-----:| -| `=> -> T`| throws | throws | throws | uncaught (throws) | -| `=> -> T?`| nil | throws | throws | uncaught (throws) | -| `=>? -> T?`| nil | nil | throws | uncaught (throws) | -| `try? => -> T `| nil | nil | nil | caught (nil) | +| Overload | Null Behaviour | Missing Key Behavior | Type Mismatch Behaviour | Errors in subjects | +| -------------- | :------------: | :------------------: | :---------------------: | :------------------: | +| `=> -> T` | throws | throws | throws | uncaught (throws) | +| `=> -> T?` | nil | throws | throws | uncaught (throws) | +| `=>? -> T?` | nil | nil | throws | uncaught (throws) | +| `try? => -> T` | nil | nil | nil | caught (nil) | ## Customization + `Int`, `Double`,`String`, `Bool`, `Date` (ISO8601), `NSArray`, and `NSDictionary` types that conform to `DynamicDecodable` with the following declaration: + ```swift public protocol DynamicDecodable { associatedtype DecodedType static var decoder: (Any) throws -> DecodedType {get set} } ``` + This allows Decodable to implement default decoding closures while allowing you to override them as needed. + ```swift // Lets extend Bool.decoder so that it accepts certain strings: Bool.decoder = { json in @@ -155,15 +169,18 @@ Bool.decoder = { json in } ``` -Note that when extending new types to conform to `Decodable` there is really no point in conforming to `DynamicDecodable` since you already control the implementation. Also note that the `decoder` properties are intended as "set once". If you need different behaviour on different occations, please create custom decode functions. +Note that when extending new types to conform to `Decodable` there is really no point in conforming to `DynamicDecodable` since you already control the implementation. Also note that the `decoder` properties are intended as "set once". If you need different behaviour on different occasions, please create custom decode functions. The default `Date.decoder` uses a ISO8601 date formatter. If you don't want to create your own decode closure there's a helper: + ```swift Date.decoder = Date.decoder(using: formatter) ``` ## When `Decodable` isn't enough + Don't be afraid of not conforming to `Decodable`. + ```swift let array = try NSArray.decode(json => "list").map { try Contribution(json: $0, repository: repo) @@ -171,24 +188,29 @@ let array = try NSArray.decode(json => "list").map { ``` ## Tips + - You can use `Decodable` with classes. Just make sure to either call a `required` initializer on self (e.g `self.init`) and return `Self`, or make your class `final`. ( [This](http://stackoverflow.com/questions/26495586/best-practice-to-implement-a-failable-initializer-in-swift) might be a problem though) - The `Decodable`-protocol and the `=>`-operator should in no way make you committed to use them everywhere. ## Compatibility | Swift version | Compatible tag or branch | -| --- | --- | -| Swift 4.0 | `0.6.0` | -| Swift 3.0 | `v0.5` | -| Swift 2.3 | `v0.4.4`| -| Swift 2.2 | `v0.4.3`| +| ------------- | ------------------------ | +| Swift 5.0 | `0.7.0` | +| Swift 4.0 | `0.6.0` | +| Swift 3.0 | `v0.5` | +| Swift 2.3 | `v0.4.4` | +| Swift 2.2 | `v0.4.3` | ## Note on Swift 4.0 usage + Due to collisions with the standard library you will have to import ambiguous symbols specifically, in addition to `Decodable` as a whole. This means you likely want the following + ```swift import Decodable import protocol Decodable.Decodable ``` -and you can import other symbols, e.g `KeyPath`, `DecodingError`, in a simlilar fashion (using `import struct` and `import enum`) + +and you can import other symbols, e.g `KeyPath`, `DecodingError`, in a similar fashion (using `import struct` and `import enum`) diff --git a/Sources/Decodable.swift b/Sources/Decodable.swift index da638d1..d56563a 100644 --- a/Sources/Decodable.swift +++ b/Sources/Decodable.swift @@ -34,7 +34,7 @@ extension Dictionary where Key: Decodable, Value: Any { extension Array where Element: Decodable { public static func decode(_ j: Any, ignoreInvalidObjects: Bool = false) throws -> [Element] { if ignoreInvalidObjects { - return try [Element?].decoder { try? Element.decode($0) }(j).flatMap {$0} + return try [Element?].decoder { try? Element.decode($0) }(j).compactMap {$0} } else { return try Array.decoder(Element.decode)(j) } diff --git a/Sources/Info.plist b/Sources/Info.plist index d3de8ee..1623db8 100644 --- a/Sources/Info.plist +++ b/Sources/Info.plist @@ -9,7 +9,7 @@ CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion - 6.0 + 7.0 CFBundleName $(PRODUCT_NAME) CFBundlePackageType diff --git a/Sources/NSValueCastable.swift b/Sources/NSValueCastable.swift index 695c72d..9bde1a2 100644 --- a/Sources/NSValueCastable.swift +++ b/Sources/NSValueCastable.swift @@ -46,7 +46,7 @@ extension NSValueCastable { public static func decode(_ j: Any) throws -> Self { let value: NSValue = try cast(j) let pointer = PointerOfSelf.allocate(capacity: 1) - defer { pointer.deallocate(capacity: 1) } + defer { pointer.deallocate() } value.getValue(pointer) return pointer.move() } diff --git a/Tests/DecodableTests.swift b/Tests/DecodableTests.swift index f58e6a1..a2c292f 100644 --- a/Tests/DecodableTests.swift +++ b/Tests/DecodableTests.swift @@ -14,8 +14,8 @@ import struct Decodable.KeyPath class DecodableTests: XCTestCase { - private func readJsonFile(_ file: String) -> NSDictionary { - let filePath = (Bundle(for: object_getClass(self)!).resourcePath! as NSString).appendingPathComponent(file) + private func readJsonFile(_ file: String, ofType: String) -> NSDictionary { + let filePath = Bundle(for: type(of: self)).path(forResource: file, ofType: ofType)! let jsonString = try! String(contentsOfFile: filePath) let jsonData = jsonString.data(using: String.Encoding.utf8)! return try! JSONSerialization.jsonObject(with: jsonData, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSDictionary @@ -23,7 +23,7 @@ class DecodableTests: XCTestCase { func testDecodeRepositoryExampleShouldSuccess() { // given - let json = readJsonFile("Repository.json") + let json = readJsonFile("Repository", ofType: "json") // when do { @@ -57,7 +57,7 @@ class DecodableTests: XCTestCase { private let Count = 500 func testDecodeArrayOfRepositoriesAndMeasureTime() { - let json = readJsonFile("Repository.json") + let json = readJsonFile("Repository", ofType: "json") let array = NSArray(array: Array(repeating: json, count: Count)) var result: [Repository] = [] @@ -72,7 +72,7 @@ class DecodableTests: XCTestCase { } func testCustomParseAndMeasureTime() { - let json = readJsonFile("Repository.json") + let json = readJsonFile("Repository", ofType: "json") let array = NSArray(array: Array(repeating: json, count: Count)) var result: [Repository] = [] @@ -129,7 +129,7 @@ class DecodableTests: XCTestCase { func testDecodeRepositoryExampleShouldThrowMissingKeyException() { // given - let json = readJsonFile("missingKey.json") + let json = readJsonFile("MissingKey", ofType: "json") // when do { @@ -146,7 +146,7 @@ class DecodableTests: XCTestCase { func testDecodeRepositoryExampleShouldThrowTypeMismatchException() { // given - let json = readJsonFile("typeMismatch.json") + let json = readJsonFile("TypeMismatch", ofType: "json") // when do { @@ -163,7 +163,7 @@ class DecodableTests: XCTestCase { func testDecodeRepositoryExampleNestedShouldThrowTypeMismatchException() { // given - let json: NSDictionary = ["key": readJsonFile("typeMismatch.json")] + let json: NSDictionary = ["key": readJsonFile("TypeMismatch", ofType: "json")] // when do { @@ -180,9 +180,8 @@ class DecodableTests: XCTestCase { func testDecodeRepositoryExampleShouldThrowNoJsonObjectException() { // given - let filePath = (Bundle(for: object_getClass(self)!).resourcePath! as NSString).appendingPathComponent("NoJsonObject.json") - let jsonString = try! String(contentsOfFile: filePath) - + let jsonString = readJsonFile("Repository", ofType: "json") + // when do { _ = try Repository.decode(jsonString) diff --git a/Tests/DecodeAsOneOfTests.swift b/Tests/DecodeAsOneOfTests.swift index fead9d6..b6d897d 100644 --- a/Tests/DecodeAsOneOfTests.swift +++ b/Tests/DecodeAsOneOfTests.swift @@ -42,11 +42,11 @@ class DecodeAsOneOfTests: XCTestCase { XCTAssertEqual(vehicles1.count, vehicles2.count) XCTAssertEqual(vehicles1.count, vehiclesArray.count) - for truck in vehicles1.flatMap({ $0 as? Truck }) { + for truck in vehicles1.compactMap({ $0 as? Truck }) { XCTAssertEqual(truck.wheels, 18) } - let train = vehicles1.flatMap { $0 as? Train }.first! + let train = vehicles1.compactMap { $0 as? Train }.first! XCTAssertEqual(train.electric, true) } catch { diff --git a/Tests/Info.plist b/Tests/Info.plist index ba72822..7c292c7 100644 --- a/Tests/Info.plist +++ b/Tests/Info.plist @@ -9,7 +9,7 @@ CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion - 6.0 + 7.0 CFBundleName $(PRODUCT_NAME) CFBundlePackageType diff --git a/docs/Enums.html b/docs/Enums.html new file mode 100644 index 0000000..e974d81 --- /dev/null +++ b/docs/Enums.html @@ -0,0 +1,731 @@ + + + + Enumerations Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Enumerations

+

The following enumerations are available globally.

+ +
+
+
+
    +
  • +
    + + + + DecodingError + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum DecodingError : Error, Equatable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/DecodingError.html b/docs/Enums/DecodingError.html new file mode 100644 index 0000000..066dc10 --- /dev/null +++ b/docs/Enums/DecodingError.html @@ -0,0 +1,908 @@ + + + + DecodingError Enumeration Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

DecodingError

+
+
+
public enum DecodingError : Error, Equatable
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + Metadata + +
    +
    +
    +
    +
    +
    +

    DecodingError.Metadata provides information about +where an DecodingError was thrown in the JSON +object graph.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct Metadata : Equatable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Thrown when optional casting from Any fails.

    + +

    This can happen both when trying to access a key on a object +that isn’t a NSDictionary, and failing to cast a Castable +primitive.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case typeMismatch(expected: Any.Type, actual: Any.Type, Metadata)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + missingKey(_:_:) + +
    +
    +
    +
    +
    +
    +

    Thrown when a given, required, key was not found in a dictionary.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case missingKey(String, Metadata)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Thrown from the RawRepresentable extension when +init(rawValue:) returned nil.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case rawRepresentableInitializationError(rawValue: Any, Metadata)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + other(_:_:) + +
    +
    +
    +
    +
    +
    +

    When an error is thrown that isn’t DecodingError, it +will be wrapped in DecodingError.other in order to also provide +metadata about where the error was thrown.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case other(Error, Metadata)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + metadata + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var metadata: Metadata { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + debugDescription + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var debugDescription: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/DecodingError/Metadata.html b/docs/Enums/DecodingError/Metadata.html new file mode 100644 index 0000000..7eee7b0 --- /dev/null +++ b/docs/Enums/DecodingError/Metadata.html @@ -0,0 +1,846 @@ + + + + Metadata Structure Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Metadata

+
+
+
public struct Metadata : Equatable
+ +
+
+

DecodingError.Metadata provides information about +where an DecodingError was thrown in the JSON +object graph.

+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(path: [String] = [], object: Any, rootObject: Any? = nil)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + path + +
    +
    +
    +
    +
    +
    +

    The JSON key path to the object that failed to be decoded

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var path: [String]
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + object + +
    +
    +
    +
    +
    +
    +

    The JSON object that failed to be decoded

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let object: Any
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + rootObject + +
    +
    +
    +
    +
    +
    +

    The root JSON object for which the path can be used to find object

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var rootObject: Any?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + formattedPath + +
    +
    +
    +
    +
    +
    +

    Represents the path to the object that failed decoding with . as a separator.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var formattedPath: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions.html b/docs/Extensions.html new file mode 100644 index 0000000..19545c3 --- /dev/null +++ b/docs/Extensions.html @@ -0,0 +1,1246 @@ + + + + Extensions Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Extensions

+

The following extensions are available globally.

+ +
+
+
+ +
+
+
    +
  • +
    + + + + Dictionary + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @frozen
    +extension Dictionary where Key: Decodable, Value: Decodable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Array + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @frozen
    +extension Array where Element: Decodable
    + +
    +
    +
    +
    +
  • +
+
+
+ +
+
+
    +
  • +
    + + + + RawRepresentable + +
    +
    +
    +
    +
    +
    +

    Extends all RawRepresentables (enums) which are also Decodable with decode implementation.

    + +

    I could not find a way to implicitly declare RawRepresentable conforming to Decodable, what would make all enums Decodable automatically. + Because of that for an enum to be compatible with Decodable operators it must be declared as implementing Decodable protocol.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension RawRepresentable where RawValue: Decodable, Self: Decodable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/Array.html b/docs/Extensions/Array.html new file mode 100644 index 0000000..fe3dc5b --- /dev/null +++ b/docs/Extensions/Array.html @@ -0,0 +1,797 @@ + + + + Array Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Array

+
+
+
@frozen
+extension Array where Element: Decodable
+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decode(_ j: Any, ignoreInvalidObjects: Bool = false) throws -> [Element]
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + decoder(_:) + +
    +
    +
    +
    +
    +
    +

    Creates an array decoder from an element decoder

    + +

    This function is used by => and =>? overloads when decoding [T]

    +
    +

    Throws

    + if NSArray.decode throws or any element decode closure throws + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decoder(_ elementDecoder: @escaping (Any) throws -> Element) -> (Any) throws -> Array<Element>
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + elementDecoder + + +
    +

    A decoder (decode closure) for the Element type

    +
    +
    +
    +
    +

    Return Value

    +

    A closure that takes an NSArray and maps it using the element decode closure

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/Bool.html b/docs/Extensions/Bool.html new file mode 100644 index 0000000..9d92e0d --- /dev/null +++ b/docs/Extensions/Bool.html @@ -0,0 +1,735 @@ + + + + Bool Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Extensions/Date.html b/docs/Extensions/Date.html new file mode 100644 index 0000000..32c4c90 --- /dev/null +++ b/docs/Extensions/Date.html @@ -0,0 +1,767 @@ + + + + Date Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Date

+
+
+
extension Date: Decodable, DynamicDecodable
+ +
+
+ +
+
+
+
    +
  • +
    + + + + decoder + +
    +
    +
    +
    +
    +
    +

    Default decoder is Date.decoder(using: iso8601DateFormatter)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var decoder: (Any) throws -> Date
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + decoder(using:) + +
    +
    +
    +
    +
    +
    +

    Create a decode closure using a given formatter

    + +

    Example usage:

    +
    let formatter = DateFormatter(...)
    +Date.decoder = Date.decoder(using: formatter)
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decoder(using formatter: DateFormatter) -> (Any) throws -> Date
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/Dictionary.html b/docs/Extensions/Dictionary.html new file mode 100644 index 0000000..ecd04d4 --- /dev/null +++ b/docs/Extensions/Dictionary.html @@ -0,0 +1,804 @@ + + + + Dictionary Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Dictionary

+
+
+
@frozen
+extension Dictionary where Key: Decodable, Value: Decodable
+ +
+
+ +
+
+
+
    +
  • +
    + + + + decode(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decode(_ j: Any) throws -> Dictionary
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + decoder(key:value:) + +
    +
    +
    +
    +
    +
    +

    Create a dictionary decoder from key- and value- decoders

    + +

    This function is used by => and =>? overloads when decoding [K: V]

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decoder(key keyDecoder: @escaping (Any) throws -> Key, value valueDecoder: @escaping (Any) throws -> Value) -> (Any) throws -> Dictionary
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + key + + +
    +

    A decoder (decode closure) for the Key type

    +
    +
    + + value + + +
    +

    A decoder (decode closure) for the Value type

    +
    +
    +
    +
    +

    Return Value

    +

    A closure that takes a NSDictionary and maps it using key and value decode closures

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/Double.html b/docs/Extensions/Double.html new file mode 100644 index 0000000..4bdad88 --- /dev/null +++ b/docs/Extensions/Double.html @@ -0,0 +1,735 @@ + + + + Double Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Extensions/Int.html b/docs/Extensions/Int.html new file mode 100644 index 0000000..138ff29 --- /dev/null +++ b/docs/Extensions/Int.html @@ -0,0 +1,735 @@ + + + + Int Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Extensions/Int16.html b/docs/Extensions/Int16.html new file mode 100644 index 0000000..ef30e0d --- /dev/null +++ b/docs/Extensions/Int16.html @@ -0,0 +1,736 @@ + + + + Int16 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Extensions/Int32.html b/docs/Extensions/Int32.html new file mode 100644 index 0000000..e3f5bd1 --- /dev/null +++ b/docs/Extensions/Int32.html @@ -0,0 +1,736 @@ + + + + Int32 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Extensions/Int64.html b/docs/Extensions/Int64.html new file mode 100644 index 0000000..4749a26 --- /dev/null +++ b/docs/Extensions/Int64.html @@ -0,0 +1,736 @@ + + + + Int64 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Extensions/Int8.html b/docs/Extensions/Int8.html new file mode 100644 index 0000000..7edeff1 --- /dev/null +++ b/docs/Extensions/Int8.html @@ -0,0 +1,736 @@ + + + + Int8 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Extensions/NSArray.html b/docs/Extensions/NSArray.html new file mode 100644 index 0000000..ac8aae4 --- /dev/null +++ b/docs/Extensions/NSArray.html @@ -0,0 +1,761 @@ + + + + NSArray Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

NSArray

+
+
+
extension NSArray: DynamicDecodable
+ +
+
+ +
+
+
+
    +
  • +
    + + + + decoder + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var decoder: (Any) throws -> NSArray
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + decode(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decode(_ json: Any) throws -> NSArray
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/NSDictionary.html b/docs/Extensions/NSDictionary.html new file mode 100644 index 0000000..3a234f8 --- /dev/null +++ b/docs/Extensions/NSDictionary.html @@ -0,0 +1,735 @@ + + + + NSDictionary Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

NSDictionary

+
+
+
extension NSDictionary: Decodable
+ +
+
+ +
+
+
+
    +
  • +
    + + + + decode(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decode(_ json: Any) throws -> Self
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/RawRepresentable.html b/docs/Extensions/RawRepresentable.html new file mode 100644 index 0000000..8991b5f --- /dev/null +++ b/docs/Extensions/RawRepresentable.html @@ -0,0 +1,739 @@ + + + + RawRepresentable Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

RawRepresentable

+
+
+
public extension RawRepresentable where RawValue: Decodable, Self: Decodable
+ +
+
+

Extends all RawRepresentables (enums) which are also Decodable with decode implementation.

+ +

I could not find a way to implicitly declare RawRepresentable conforming to Decodable, what would make all enums Decodable automatically. + Because of that for an enum to be compatible with Decodable operators it must be declared as implementing Decodable protocol.

+ +
+
+
+
    +
  • +
    + + + + decode(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func decode(_ json: Any) throws -> Self
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/String.html b/docs/Extensions/String.html new file mode 100644 index 0000000..e6cd510 --- /dev/null +++ b/docs/Extensions/String.html @@ -0,0 +1,735 @@ + + + + String Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Extensions/UInt16.html b/docs/Extensions/UInt16.html new file mode 100644 index 0000000..b2d73be --- /dev/null +++ b/docs/Extensions/UInt16.html @@ -0,0 +1,736 @@ + + + + UInt16 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Extensions/UInt32.html b/docs/Extensions/UInt32.html new file mode 100644 index 0000000..99dd52d --- /dev/null +++ b/docs/Extensions/UInt32.html @@ -0,0 +1,736 @@ + + + + UInt32 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Extensions/UInt64.html b/docs/Extensions/UInt64.html new file mode 100644 index 0000000..e90e707 --- /dev/null +++ b/docs/Extensions/UInt64.html @@ -0,0 +1,736 @@ + + + + UInt64 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Extensions/UInt8.html b/docs/Extensions/UInt8.html new file mode 100644 index 0000000..d6ba005 --- /dev/null +++ b/docs/Extensions/UInt8.html @@ -0,0 +1,736 @@ + + + + UInt8 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Extensions/URL.html b/docs/Extensions/URL.html new file mode 100644 index 0000000..9c620de --- /dev/null +++ b/docs/Extensions/URL.html @@ -0,0 +1,734 @@ + + + + URL Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Functions.html b/docs/Functions.html new file mode 100644 index 0000000..e477fe7 --- /dev/null +++ b/docs/Functions.html @@ -0,0 +1,12148 @@ + + + + Functions Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Functions

+

The following functions are available globally.

+ +
+
+
+
    +
  • +
    + + + + cast(_:) + +
    +
    +
    +
    +
    +
    +

    Attempt to cast an Any to T or throw

    +
    +

    Throws

    + DecodingError.typeMismatch(expected, actual, metadata) + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cast<T>(_ object: Any) throws -> T
    + +
    +
    +
    +
    +
  • +
+
+
+ +
    +
  • + +
    +
    +
    +
    +
    +

    Attempt to decode one of multiple objects in order until: A: we get a positive match, B: we throw an exception if the last object does not decode

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func decodeAsOneOf(_ json: Any, objectTypes: Decodable.Type...) throws -> Decodable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Attempt to decode one of multiple objects in order until: A: we get a positive match, B: we throw an exception if the last object does not decode

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func decodeArrayAsOneOf(_ json: Any, objectTypes: Decodable.Type...) throws -> [Decodable]
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + ~=(_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func ~= <T>(lhs: T.Type, rhs: Any.Type) -> Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ==(_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func == (lhs: DecodingError.Metadata, rhs: DecodingError.Metadata) -> Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ==(_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func == (lhs: DecodingError, rhs: DecodingError) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + ==(_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func == (lhs: KeyPath, rhs: KeyPath) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => (lhs: Any, rhs: KeyPath) throws -> Any
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? (lhs: Any, rhs: OptionalKeyPath) throws -> Any?
    + +
    +
    +
    +
    +
  • +
+
+
+ + +
+
+ +
    +
  • +
    + + + + ==(_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func == (lhs: OptionalKey, rhs: OptionalKey) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[A]?]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : B]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [A?]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[A?]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[[A]]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[[A : B]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[A]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : B?]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : [B]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[A : [B : C]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : B]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [A]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [B]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : C]?]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : B?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [B?]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [[B]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [[B : C]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [B]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : C?]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C : D]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : C]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : B]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> A? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[A?]?] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[[A]]?] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[[A : B]]?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[A]?] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : B?]?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : [B]]?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[A : [B : C]]?] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : B]?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [A?] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[[A]?]] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[[A : B]?]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[A?]] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[[A?]]] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[[[A]]]] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[[[A : B]]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[[A]]] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[[A : B?]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[[A : [B]]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[[A : [B : C]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[[A : B]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[A]] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : [B]?]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[A : [B : C]?]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : B?]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : [B?]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : [[B]]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[A : [[B : C]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : [B]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[A : [B : C?]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[A : [B : [C]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [[A : [B : [C : D]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[A : [B : C]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : B]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [A] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [B?]?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [[B]]?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [[B : C]]?] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [B]?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : C?]?] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C]]?] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C : D]]?] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : C]?] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : B?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [[B]?]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [[B : C]?]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [B?]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [[B?]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [[[B]]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [[[B : C]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [[B]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [[B : C?]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [[B : [C]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [[B : [C : D]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [[B : C]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [B]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C]?]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C : D]?]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : C?]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C?]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : [[C]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [B : [[C : D]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C : D?]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C : [D]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D, E>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C : [D : E]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable, D : Hashable, E : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C : D]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : C]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : B] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> A where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[A?]?]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A]]?]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A : B]]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[A]?]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : B?]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B]]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B : C]]?]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : B]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [A?]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A]?]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A : B]?]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[A?]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A?]]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[[[A]]]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[[[A : B]]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A]]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A : B?]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A : [B]]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A : [B : C]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A : B]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[A]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B]?]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B : C]?]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : B?]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B?]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [[B]]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [[B : C]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B : C?]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B : [C]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B : [C : D]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B : C]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : B]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [A]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B?]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B]]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B : C]]?]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : C?]?]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C]]?]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C : D]]?]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : C]?]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : B?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B]?]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B : C]?]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B?]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B?]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[[B]]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[[B : C]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B : C?]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B : [C]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B : [C : D]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B : C]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C]?]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C : D]?]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : C?]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C?]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [[C]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [[C : D]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C : D?]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C : [D]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D, E>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C : [D : E]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable, D : Hashable, E : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C : D]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : C]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : B]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> A? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func parse<T>(_ json: Any, keyPath: KeyPath, decoder: ((Any) throws -> T)) throws -> T
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func parse<T>(_ json: Any, keyPath: OptionalKeyPath, decoder: ((Any) throws -> T?)) throws -> T?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Protocols.html b/docs/Protocols.html new file mode 100644 index 0000000..ef87086 --- /dev/null +++ b/docs/Protocols.html @@ -0,0 +1,825 @@ + + + + Protocols Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Protocols

+

The following protocols are available globally.

+ +
+
+
+
    +
  • +
    + + + + DynamicDecodable + +
    +
    +
    +
    +
    +
    +

    Allows overriding default decode function from your app.

    + +

    You likely don’t want to conform to this yourself.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol DynamicDecodable
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + Decodable + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol Decodable
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + NSValueCastable + +
    +
    +
    +
    +
    +
    +

    Provides a default implementation of decode() which casts the object to a NSValue and unsafely casts its value as Self.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol NSValueCastable : Decodable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + NSNumberCastable + +
    +
    +
    +
    +
    +
    +

    Used to enable decoding to different IntegerTypes from NSNumber.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol NSNumberCastable : NSValueCastable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Protocols/Decodable.html b/docs/Protocols/Decodable.html new file mode 100644 index 0000000..a365334 --- /dev/null +++ b/docs/Protocols/Decodable.html @@ -0,0 +1,744 @@ + + + + Decodable Protocol Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Decodable

+
+
+
public protocol Decodable
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + decode(_:) + + + Default implementation + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +

    Default Implementation

    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func decode(_ json: Any) throws -> Self
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Protocols/DynamicDecodable.html b/docs/Protocols/DynamicDecodable.html new file mode 100644 index 0000000..cc163a7 --- /dev/null +++ b/docs/Protocols/DynamicDecodable.html @@ -0,0 +1,773 @@ + + + + DynamicDecodable Protocol Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

DynamicDecodable

+
+
+
public protocol DynamicDecodable
+ +
+
+

Allows overriding default decode function from your app.

+ +

You likely don’t want to conform to this yourself.

+ +
+
+
+
    +
  • +
    + + + + DecodedType + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    associatedtype DecodedType
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + decoder + +
    +
    +
    +
    +
    +
    +

    A closure describing how this type should be decoded

    + +

    Types also conforming to Decodable call this closure +from their decode function.

    +
    +

    Note

    + This is intended as a set-once thing. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static var decoder: (Any) throws -> DecodedType { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Protocols/NSNumberCastable.html b/docs/Protocols/NSNumberCastable.html new file mode 100644 index 0000000..5bf5df6 --- /dev/null +++ b/docs/Protocols/NSNumberCastable.html @@ -0,0 +1,770 @@ + + + + NSNumberCastable Protocol Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

NSNumberCastable

+
+
+
public protocol NSNumberCastable : NSValueCastable
+ +
+
+

Used to enable decoding to different IntegerTypes from NSNumber.

+ +
+
+
+
    +
  • +
    + + + + convertFrom(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func convertFrom(_ n: NSNumber) -> Self
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + decode(_:) + + + Extension method + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decode(_ json: Any) throws -> Self
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Protocols/NSValueCastable.html b/docs/Protocols/NSValueCastable.html new file mode 100644 index 0000000..4990375 --- /dev/null +++ b/docs/Protocols/NSValueCastable.html @@ -0,0 +1,739 @@ + + + + NSValueCastable Protocol Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

NSValueCastable

+
+
+
public protocol NSValueCastable : Decodable
+ +
+
+

Provides a default implementation of decode() which casts the object to a NSValue and unsafely casts its value as Self.

+ +
+
+
+
    +
  • +
    + + + + decode(_:) + + + Extension method + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decode(_ j: Any) throws -> Self
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Structs.html b/docs/Structs.html new file mode 100644 index 0000000..3f02664 --- /dev/null +++ b/docs/Structs.html @@ -0,0 +1,819 @@ + + + + Structures Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Structures

+

The following structures are available globally.

+ +
+
+
+
    +
  • +
    + + + + KeyPath + +
    +
    +
    +
    +
    +
    +

    KeyPath represents the path to a specific node in a tree of nested dictionaries.

    + +

    Can be created from string and array literals and can be joined by the => operator.

    +
    let a: KeyPath = "a"
    +let b: KeyPath = ["a", "b"]
    +let c: KeyPath = "a" => "b" => "c"
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct KeyPath
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + OptionalKey + +
    +
    +
    +
    +
    +
    +

    A key in a keyPath that may or may not be required.

    + +

    Trying to access a invalid key in a dictionary with an OptionalKey will usually result +in a nil return value instead of a thrown error. Unless isRequired is true, in which +it behaves as a normal String inside a normal KeyPath.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct OptionalKey
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + OptionalKeyPath + +
    +
    +
    +
    +
    +
    +

    OptionalKeyPath represents the path to a specific node in a tree of nested dictionaries.

    + +

    Can be created from string and array literals and can be joined by the =>? operator.

    +
     let a: OptionalKeyPath = "a"
    + let b: OptionalKeyPath = ["a", "b"]
    + let c: OptionalKeyPath = "a" =>? "b" =>? "c"
    +
    + +

    Unlike KeyPath, OptionalKeyPath allows each key to be either required or optional. +isRequired is false by default.

    + +

    When a KeyPath is converted to a OptionalKeyPath, isRequired is set to true.

    +
     let c: OptionalKeyPath = "a" =>? "b" => "c"
    +                                         ^^
    +                             isRequired=true
    +
    + +

    In the above example "c" is inferred as KeyPath, then converted to OptionalKeyPath + with isRequired = true

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct OptionalKeyPath
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Structs/KeyPath.html b/docs/Structs/KeyPath.html new file mode 100644 index 0000000..65aade7 --- /dev/null +++ b/docs/Structs/KeyPath.html @@ -0,0 +1,908 @@ + + + + KeyPath Structure Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

KeyPath

+
+
+
public struct KeyPath
+ +
+
+

KeyPath represents the path to a specific node in a tree of nested dictionaries.

+ +

Can be created from string and array literals and can be joined by the => operator.

+
let a: KeyPath = "a"
+let b: KeyPath = ["a", "b"]
+let c: KeyPath = "a" => "b" => "c"
+
+ +
+
+
+
    +
  • +
    + + + + keys + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var keys: [String]
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(_ keys: [String])
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(_ key: String)
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + init(stringLiteral:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(stringLiteral value: String)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(extendedGraphemeClusterLiteral value: String)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(unicodeScalarLiteral value: String)
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + init(arrayLiteral:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(arrayLiteral elements: String...)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Structs/OptionalKey.html b/docs/Structs/OptionalKey.html new file mode 100644 index 0000000..5e8a4b7 --- /dev/null +++ b/docs/Structs/OptionalKey.html @@ -0,0 +1,797 @@ + + + + OptionalKey Structure Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

OptionalKey

+
+
+
public struct OptionalKey
+ +
+
+

A key in a keyPath that may or may not be required.

+ +

Trying to access a invalid key in a dictionary with an OptionalKey will usually result +in a nil return value instead of a thrown error. Unless isRequired is true, in which +it behaves as a normal String inside a normal KeyPath.

+ +
+
+
+
    +
  • +
    + + + + key + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var key: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + isRequired + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var isRequired: Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + description + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var description: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Structs/OptionalKeyPath.html b/docs/Structs/OptionalKeyPath.html new file mode 100644 index 0000000..4d363b8 --- /dev/null +++ b/docs/Structs/OptionalKeyPath.html @@ -0,0 +1,866 @@ + + + + OptionalKeyPath Structure Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

OptionalKeyPath

+
+
+
public struct OptionalKeyPath
+ +
+
+

OptionalKeyPath represents the path to a specific node in a tree of nested dictionaries.

+ +

Can be created from string and array literals and can be joined by the =>? operator.

+
 let a: OptionalKeyPath = "a"
+ let b: OptionalKeyPath = ["a", "b"]
+ let c: OptionalKeyPath = "a" =>? "b" =>? "c"
+
+ +

Unlike KeyPath, OptionalKeyPath allows each key to be either required or optional. +isRequired is false by default.

+ +

When a KeyPath is converted to a OptionalKeyPath, isRequired is set to true.

+
 let c: OptionalKeyPath = "a" =>? "b" => "c"
+                                         ^^
+                             isRequired=true
+
+ +

In the above example "c" is inferred as KeyPath, then converted to OptionalKeyPath + with isRequired = true

+ +
+
+
+
    +
  • +
    + + + + keys + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var keys: [OptionalKey]
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + init(stringLiteral:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(stringLiteral value: String)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(extendedGraphemeClusterLiteral value: String)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(unicodeScalarLiteral value: String)
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + init(arrayLiteral:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(arrayLiteral elements: String...)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/badge.svg b/docs/badge.svg new file mode 100644 index 0000000..d799a27 --- /dev/null +++ b/docs/badge.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + documentation + + + documentation + + + 83% + + + 83% + + + diff --git a/docs/css/highlight.css b/docs/css/highlight.css new file mode 100644 index 0000000..d0db0e1 --- /dev/null +++ b/docs/css/highlight.css @@ -0,0 +1,200 @@ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight { + /* Comment */ + /* Error */ + /* Keyword */ + /* Operator */ + /* Comment.Multiline */ + /* Comment.Preproc */ + /* Comment.Single */ + /* Comment.Special */ + /* Generic.Deleted */ + /* Generic.Deleted.Specific */ + /* Generic.Emph */ + /* Generic.Error */ + /* Generic.Heading */ + /* Generic.Inserted */ + /* Generic.Inserted.Specific */ + /* Generic.Output */ + /* Generic.Prompt */ + /* Generic.Strong */ + /* Generic.Subheading */ + /* Generic.Traceback */ + /* Keyword.Constant */ + /* Keyword.Declaration */ + /* Keyword.Pseudo */ + /* Keyword.Reserved */ + /* Keyword.Type */ + /* Literal.Number */ + /* Literal.String */ + /* Name.Attribute */ + /* Name.Builtin */ + /* Name.Class */ + /* Name.Constant */ + /* Name.Entity */ + /* Name.Exception */ + /* Name.Function */ + /* Name.Namespace */ + /* Name.Tag */ + /* Name.Variable */ + /* Operator.Word */ + /* Text.Whitespace */ + /* Literal.Number.Float */ + /* Literal.Number.Hex */ + /* Literal.Number.Integer */ + /* Literal.Number.Oct */ + /* Literal.String.Backtick */ + /* Literal.String.Char */ + /* Literal.String.Doc */ + /* Literal.String.Double */ + /* Literal.String.Escape */ + /* Literal.String.Heredoc */ + /* Literal.String.Interpol */ + /* Literal.String.Other */ + /* Literal.String.Regex */ + /* Literal.String.Single */ + /* Literal.String.Symbol */ + /* Name.Builtin.Pseudo */ + /* Name.Variable.Class */ + /* Name.Variable.Global */ + /* Name.Variable.Instance */ + /* Literal.Number.Integer.Long */ } + .highlight .c { + color: #999988; + font-style: italic; } + .highlight .err { + color: #a61717; + background-color: #e3d2d2; } + .highlight .k { + color: #000000; + font-weight: bold; } + .highlight .o { + color: #000000; + font-weight: bold; } + .highlight .cm { + color: #999988; + font-style: italic; } + .highlight .cp { + color: #999999; + font-weight: bold; } + .highlight .c1 { + color: #999988; + font-style: italic; } + .highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + .highlight .gd { + color: #000000; + background-color: #ffdddd; } + .highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + .highlight .ge { + color: #000000; + font-style: italic; } + .highlight .gr { + color: #aa0000; } + .highlight .gh { + color: #999999; } + .highlight .gi { + color: #000000; + background-color: #ddffdd; } + .highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + .highlight .go { + color: #888888; } + .highlight .gp { + color: #555555; } + .highlight .gs { + font-weight: bold; } + .highlight .gu { + color: #aaaaaa; } + .highlight .gt { + color: #aa0000; } + .highlight .kc { + color: #000000; + font-weight: bold; } + .highlight .kd { + color: #000000; + font-weight: bold; } + .highlight .kp { + color: #000000; + font-weight: bold; } + .highlight .kr { + color: #000000; + font-weight: bold; } + .highlight .kt { + color: #445588; } + .highlight .m { + color: #009999; } + .highlight .s { + color: #d14; } + .highlight .na { + color: #008080; } + .highlight .nb { + color: #0086B3; } + .highlight .nc { + color: #445588; + font-weight: bold; } + .highlight .no { + color: #008080; } + .highlight .ni { + color: #800080; } + .highlight .ne { + color: #990000; + font-weight: bold; } + .highlight .nf { + color: #990000; } + .highlight .nn { + color: #555555; } + .highlight .nt { + color: #000080; } + .highlight .nv { + color: #008080; } + .highlight .ow { + color: #000000; + font-weight: bold; } + .highlight .w { + color: #bbbbbb; } + .highlight .mf { + color: #009999; } + .highlight .mh { + color: #009999; } + .highlight .mi { + color: #009999; } + .highlight .mo { + color: #009999; } + .highlight .sb { + color: #d14; } + .highlight .sc { + color: #d14; } + .highlight .sd { + color: #d14; } + .highlight .s2 { + color: #d14; } + .highlight .se { + color: #d14; } + .highlight .sh { + color: #d14; } + .highlight .si { + color: #d14; } + .highlight .sx { + color: #d14; } + .highlight .sr { + color: #009926; } + .highlight .s1 { + color: #d14; } + .highlight .ss { + color: #990073; } + .highlight .bp { + color: #999999; } + .highlight .vc { + color: #008080; } + .highlight .vg { + color: #008080; } + .highlight .vi { + color: #008080; } + .highlight .il { + color: #009999; } diff --git a/docs/css/jazzy.css b/docs/css/jazzy.css new file mode 100644 index 0000000..103ee29 --- /dev/null +++ b/docs/css/jazzy.css @@ -0,0 +1,348 @@ +html, body, div, span, h1, h3, h4, p, a, code, em, img, ul, li, table, tbody, tr, td { + background: transparent; + border: 0; + margin: 0; + outline: 0; + padding: 0; + vertical-align: baseline; } + +body { + background-color: #f2f2f2; + font-family: Helvetica, freesans, Arial, sans-serif; + font-size: 14px; + -webkit-font-smoothing: subpixel-antialiased; + word-wrap: break-word; } + +h1, h2, h3 { + margin-top: 0.8em; + margin-bottom: 0.3em; + font-weight: 100; + color: black; } + +h1 { + font-size: 2.5em; } + +h2 { + font-size: 2em; + border-bottom: 1px solid #e2e2e2; } + +h4 { + font-size: 13px; + line-height: 1.5; + margin-top: 21px; } + +h5 { + font-size: 1.1em; } + +h6 { + font-size: 1.1em; + color: #777; } + +.section-name { + color: gray; + display: block; + font-family: Helvetica; + font-size: 22px; + font-weight: 100; + margin-bottom: 15px; } + +pre, code { + font: 0.95em Menlo, monospace; + color: #777; + word-wrap: normal; } + +p code, li code { + background-color: #eee; + padding: 2px 4px; + border-radius: 4px; } + +a { + color: #0088cc; + text-decoration: none; } + +ul { + padding-left: 15px; } + +li { + line-height: 1.8em; } + +img { + max-width: 100%; } + +blockquote { + margin-left: 0; + padding: 0 10px; + border-left: 4px solid #ccc; } + +.content-wrapper { + margin: 0 auto; + width: 980px; } + +header { + font-size: 0.85em; + line-height: 26px; + background-color: #414141; + position: fixed; + width: 100%; + z-index: 1; } + header img { + padding-right: 6px; + vertical-align: -4px; + height: 16px; } + header a { + color: #fff; } + header p { + float: left; + color: #999; } + header .header-right { + float: right; + margin-left: 16px; } + +#breadcrumbs { + background-color: #f2f2f2; + height: 27px; + padding-top: 17px; + position: fixed; + width: 100%; + z-index: 1; + margin-top: 26px; } + #breadcrumbs #carat { + height: 10px; + margin: 0 5px; } + +.sidebar { + background-color: #f9f9f9; + border: 1px solid #e2e2e2; + overflow-y: auto; + overflow-x: hidden; + position: fixed; + top: 70px; + bottom: 0; + width: 230px; + word-wrap: normal; } + +.nav-groups { + list-style-type: none; + background: #fff; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #e2e2e2; + font-size: 1.1em; + font-weight: 100; + padding: 15px 0 15px 20px; } + .nav-group-name > a { + color: #333; } + +.nav-group-tasks { + margin-top: 5px; } + +.nav-group-task { + font-size: 0.9em; + list-style-type: none; + white-space: nowrap; } + .nav-group-task a { + color: #888; } + +.main-content { + background-color: #fff; + border: 1px solid #e2e2e2; + margin-left: 246px; + position: absolute; + overflow: hidden; + padding-bottom: 20px; + top: 70px; + width: 734px; } + .main-content p, .main-content a, .main-content code, .main-content em, .main-content ul, .main-content table, .main-content blockquote { + margin-bottom: 1em; } + .main-content p { + line-height: 1.8em; } + .main-content section .section:first-child { + margin-top: 0; + padding-top: 0; } + .main-content section .task-group-section .task-group:first-of-type { + padding-top: 10px; } + .main-content section .task-group-section .task-group:first-of-type .section-name { + padding-top: 15px; } + .main-content section .heading:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } + +.section { + padding: 0 25px; } + +.highlight { + background-color: #eee; + padding: 10px 12px; + border: 1px solid #e2e2e2; + border-radius: 4px; + overflow-x: auto; } + +.declaration .highlight { + overflow-x: initial; + padding: 0 40px 40px 0; + margin-bottom: -25px; + background-color: transparent; + border: none; } + +.section-name { + margin: 0; + margin-left: 18px; } + +.task-group-section { + padding-left: 6px; + border-top: 1px solid #e2e2e2; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } + .item code { + background-color: transparent; + padding: 0; } + .item .token, .item .direct-link { + padding-left: 3px; + margin-left: 15px; + font-size: 11.9px; + transition: all 300ms; } + .item .token-open { + margin-left: 0px; } + .item .discouraged { + text-decoration: line-through; } + .item .declaration-note { + font-size: .85em; + color: gray; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #e2e2e2; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + background: #f9f9f9; + border-left: 1px solid #e2e2e2; + border-top: 1px solid #e2e2e2; + height: 12px; + left: 21px; + top: -7px; + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); + position: absolute; + width: 12px; } + +.height-container { + display: none; + left: -25px; + padding: 0 25px; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #f9f9f9; + border-bottom: 1px solid #e2e2e2; + left: -25px; + position: relative; + width: 100%; + padding-top: 10px; + padding-bottom: 5px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4b8afb; } + +.aside-warning, .aside-deprecated, .aside-unavailable { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #e2e2e2; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +#footer { + position: relative; + top: 10px; + bottom: 0px; + margin-left: 25px; } + #footer p { + margin: 0; + color: #aaa; + font-size: 0.8em; } + +html.dash header, html.dash #breadcrumbs, html.dash .sidebar { + display: none; } + +html.dash .main-content { + width: 980px; + margin-left: 0; + border: none; + width: 100%; + top: 0; + padding-bottom: 0; } + +html.dash .height-container { + display: block; } + +html.dash .item .token { + margin-left: 0; } + +html.dash .content-wrapper { + width: auto; } + +html.dash #footer { + position: static; } diff --git a/docs/docsets/Decodable.docset/Contents/Info.plist b/docs/docsets/Decodable.docset/Contents/Info.plist new file mode 100644 index 0000000..891eab1 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleIdentifier + com.jazzy.decodable + CFBundleName + Decodable + DocSetPlatformFamily + decodable + isDashDocset + + dashIndexFilePath + index.html + isJavaScriptEnabled + + DashDocSetFamily + dashtoc + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Enums.html new file mode 100644 index 0000000..e974d81 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Enums.html @@ -0,0 +1,731 @@ + + + + Enumerations Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Enumerations

+

The following enumerations are available globally.

+ +
+
+
+
    +
  • +
    + + + + DecodingError + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum DecodingError : Error, Equatable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Enums/DecodingError.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Enums/DecodingError.html new file mode 100644 index 0000000..066dc10 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Enums/DecodingError.html @@ -0,0 +1,908 @@ + + + + DecodingError Enumeration Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

DecodingError

+
+
+
public enum DecodingError : Error, Equatable
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + Metadata + +
    +
    +
    +
    +
    +
    +

    DecodingError.Metadata provides information about +where an DecodingError was thrown in the JSON +object graph.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct Metadata : Equatable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Thrown when optional casting from Any fails.

    + +

    This can happen both when trying to access a key on a object +that isn’t a NSDictionary, and failing to cast a Castable +primitive.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case typeMismatch(expected: Any.Type, actual: Any.Type, Metadata)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + missingKey(_:_:) + +
    +
    +
    +
    +
    +
    +

    Thrown when a given, required, key was not found in a dictionary.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case missingKey(String, Metadata)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Thrown from the RawRepresentable extension when +init(rawValue:) returned nil.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case rawRepresentableInitializationError(rawValue: Any, Metadata)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + other(_:_:) + +
    +
    +
    +
    +
    +
    +

    When an error is thrown that isn’t DecodingError, it +will be wrapped in DecodingError.other in order to also provide +metadata about where the error was thrown.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case other(Error, Metadata)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + metadata + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var metadata: Metadata { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + debugDescription + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var debugDescription: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Enums/DecodingError/Metadata.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Enums/DecodingError/Metadata.html new file mode 100644 index 0000000..7eee7b0 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Enums/DecodingError/Metadata.html @@ -0,0 +1,846 @@ + + + + Metadata Structure Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Metadata

+
+
+
public struct Metadata : Equatable
+ +
+
+

DecodingError.Metadata provides information about +where an DecodingError was thrown in the JSON +object graph.

+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(path: [String] = [], object: Any, rootObject: Any? = nil)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + path + +
    +
    +
    +
    +
    +
    +

    The JSON key path to the object that failed to be decoded

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var path: [String]
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + object + +
    +
    +
    +
    +
    +
    +

    The JSON object that failed to be decoded

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let object: Any
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + rootObject + +
    +
    +
    +
    +
    +
    +

    The root JSON object for which the path can be used to find object

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var rootObject: Any?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + formattedPath + +
    +
    +
    +
    +
    +
    +

    Represents the path to the object that failed decoding with . as a separator.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var formattedPath: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions.html new file mode 100644 index 0000000..19545c3 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions.html @@ -0,0 +1,1246 @@ + + + + Extensions Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Extensions

+

The following extensions are available globally.

+ +
+
+
+ +
+
+
    +
  • +
    + + + + Dictionary + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @frozen
    +extension Dictionary where Key: Decodable, Value: Decodable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Array + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @frozen
    +extension Array where Element: Decodable
    + +
    +
    +
    +
    +
  • +
+
+
+ +
+
+
    +
  • +
    + + + + RawRepresentable + +
    +
    +
    +
    +
    +
    +

    Extends all RawRepresentables (enums) which are also Decodable with decode implementation.

    + +

    I could not find a way to implicitly declare RawRepresentable conforming to Decodable, what would make all enums Decodable automatically. + Because of that for an enum to be compatible with Decodable operators it must be declared as implementing Decodable protocol.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension RawRepresentable where RawValue: Decodable, Self: Decodable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Array.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Array.html new file mode 100644 index 0000000..fe3dc5b --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Array.html @@ -0,0 +1,797 @@ + + + + Array Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Array

+
+
+
@frozen
+extension Array where Element: Decodable
+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decode(_ j: Any, ignoreInvalidObjects: Bool = false) throws -> [Element]
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + decoder(_:) + +
    +
    +
    +
    +
    +
    +

    Creates an array decoder from an element decoder

    + +

    This function is used by => and =>? overloads when decoding [T]

    +
    +

    Throws

    + if NSArray.decode throws or any element decode closure throws + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decoder(_ elementDecoder: @escaping (Any) throws -> Element) -> (Any) throws -> Array<Element>
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + elementDecoder + + +
    +

    A decoder (decode closure) for the Element type

    +
    +
    +
    +
    +

    Return Value

    +

    A closure that takes an NSArray and maps it using the element decode closure

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Bool.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Bool.html new file mode 100644 index 0000000..9d92e0d --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Bool.html @@ -0,0 +1,735 @@ + + + + Bool Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Date.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Date.html new file mode 100644 index 0000000..32c4c90 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Date.html @@ -0,0 +1,767 @@ + + + + Date Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Date

+
+
+
extension Date: Decodable, DynamicDecodable
+ +
+
+ +
+
+
+
    +
  • +
    + + + + decoder + +
    +
    +
    +
    +
    +
    +

    Default decoder is Date.decoder(using: iso8601DateFormatter)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var decoder: (Any) throws -> Date
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + decoder(using:) + +
    +
    +
    +
    +
    +
    +

    Create a decode closure using a given formatter

    + +

    Example usage:

    +
    let formatter = DateFormatter(...)
    +Date.decoder = Date.decoder(using: formatter)
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decoder(using formatter: DateFormatter) -> (Any) throws -> Date
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Dictionary.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Dictionary.html new file mode 100644 index 0000000..ecd04d4 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Dictionary.html @@ -0,0 +1,804 @@ + + + + Dictionary Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Dictionary

+
+
+
@frozen
+extension Dictionary where Key: Decodable, Value: Decodable
+ +
+
+ +
+
+
+
    +
  • +
    + + + + decode(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decode(_ j: Any) throws -> Dictionary
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + decoder(key:value:) + +
    +
    +
    +
    +
    +
    +

    Create a dictionary decoder from key- and value- decoders

    + +

    This function is used by => and =>? overloads when decoding [K: V]

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decoder(key keyDecoder: @escaping (Any) throws -> Key, value valueDecoder: @escaping (Any) throws -> Value) -> (Any) throws -> Dictionary
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + key + + +
    +

    A decoder (decode closure) for the Key type

    +
    +
    + + value + + +
    +

    A decoder (decode closure) for the Value type

    +
    +
    +
    +
    +

    Return Value

    +

    A closure that takes a NSDictionary and maps it using key and value decode closures

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Double.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Double.html new file mode 100644 index 0000000..4bdad88 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Double.html @@ -0,0 +1,735 @@ + + + + Double Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Int.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Int.html new file mode 100644 index 0000000..138ff29 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Int.html @@ -0,0 +1,735 @@ + + + + Int Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Int16.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Int16.html new file mode 100644 index 0000000..ef30e0d --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Int16.html @@ -0,0 +1,736 @@ + + + + Int16 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Int32.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Int32.html new file mode 100644 index 0000000..e3f5bd1 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Int32.html @@ -0,0 +1,736 @@ + + + + Int32 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Int64.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Int64.html new file mode 100644 index 0000000..4749a26 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Int64.html @@ -0,0 +1,736 @@ + + + + Int64 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Int8.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Int8.html new file mode 100644 index 0000000..7edeff1 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/Int8.html @@ -0,0 +1,736 @@ + + + + Int8 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/NSArray.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/NSArray.html new file mode 100644 index 0000000..ac8aae4 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/NSArray.html @@ -0,0 +1,761 @@ + + + + NSArray Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

NSArray

+
+
+
extension NSArray: DynamicDecodable
+ +
+
+ +
+
+
+
    +
  • +
    + + + + decoder + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var decoder: (Any) throws -> NSArray
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + decode(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decode(_ json: Any) throws -> NSArray
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/NSDictionary.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/NSDictionary.html new file mode 100644 index 0000000..3a234f8 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/NSDictionary.html @@ -0,0 +1,735 @@ + + + + NSDictionary Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

NSDictionary

+
+
+
extension NSDictionary: Decodable
+ +
+
+ +
+
+
+
    +
  • +
    + + + + decode(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decode(_ json: Any) throws -> Self
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/RawRepresentable.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/RawRepresentable.html new file mode 100644 index 0000000..8991b5f --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/RawRepresentable.html @@ -0,0 +1,739 @@ + + + + RawRepresentable Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

RawRepresentable

+
+
+
public extension RawRepresentable where RawValue: Decodable, Self: Decodable
+ +
+
+

Extends all RawRepresentables (enums) which are also Decodable with decode implementation.

+ +

I could not find a way to implicitly declare RawRepresentable conforming to Decodable, what would make all enums Decodable automatically. + Because of that for an enum to be compatible with Decodable operators it must be declared as implementing Decodable protocol.

+ +
+
+
+
    +
  • +
    + + + + decode(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func decode(_ json: Any) throws -> Self
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/String.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/String.html new file mode 100644 index 0000000..e6cd510 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/String.html @@ -0,0 +1,735 @@ + + + + String Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/UInt16.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/UInt16.html new file mode 100644 index 0000000..b2d73be --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/UInt16.html @@ -0,0 +1,736 @@ + + + + UInt16 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/UInt32.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/UInt32.html new file mode 100644 index 0000000..99dd52d --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/UInt32.html @@ -0,0 +1,736 @@ + + + + UInt32 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/UInt64.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/UInt64.html new file mode 100644 index 0000000..e90e707 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/UInt64.html @@ -0,0 +1,736 @@ + + + + UInt64 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/UInt8.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/UInt8.html new file mode 100644 index 0000000..d6ba005 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/UInt8.html @@ -0,0 +1,736 @@ + + + + UInt8 Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/URL.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/URL.html new file mode 100644 index 0000000..9c620de --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Extensions/URL.html @@ -0,0 +1,734 @@ + + + + URL Extension Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Functions.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Functions.html new file mode 100644 index 0000000..e477fe7 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Functions.html @@ -0,0 +1,12148 @@ + + + + Functions Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Functions

+

The following functions are available globally.

+ +
+
+
+
    +
  • +
    + + + + cast(_:) + +
    +
    +
    +
    +
    +
    +

    Attempt to cast an Any to T or throw

    +
    +

    Throws

    + DecodingError.typeMismatch(expected, actual, metadata) + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cast<T>(_ object: Any) throws -> T
    + +
    +
    +
    +
    +
  • +
+
+
+ +
    +
  • + +
    +
    +
    +
    +
    +

    Attempt to decode one of multiple objects in order until: A: we get a positive match, B: we throw an exception if the last object does not decode

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func decodeAsOneOf(_ json: Any, objectTypes: Decodable.Type...) throws -> Decodable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Attempt to decode one of multiple objects in order until: A: we get a positive match, B: we throw an exception if the last object does not decode

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func decodeArrayAsOneOf(_ json: Any, objectTypes: Decodable.Type...) throws -> [Decodable]
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + ~=(_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func ~= <T>(lhs: T.Type, rhs: Any.Type) -> Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ==(_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func == (lhs: DecodingError.Metadata, rhs: DecodingError.Metadata) -> Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ==(_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func == (lhs: DecodingError, rhs: DecodingError) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + ==(_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func == (lhs: KeyPath, rhs: KeyPath) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => (lhs: Any, rhs: KeyPath) throws -> Any
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? (lhs: Any, rhs: OptionalKeyPath) throws -> Any?
    + +
    +
    +
    +
    +
  • +
+
+
+ + +
+
+ +
    +
  • +
    + + + + ==(_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func == (lhs: OptionalKey, rhs: OptionalKey) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[A]?]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : B]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [A?]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[A?]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[[A]]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[[A : B]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[A]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : B?]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : [B]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[A : [B : C]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : B]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [A]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [B]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : C]?]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : B?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [B?]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [[B]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [[B : C]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [B]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : C?]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C : D]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : C]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : B]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError if a key is missing or decoding fails. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> A? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[A?]?] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[[A]]?] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[[A : B]]?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[A]?] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : B?]?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : [B]]?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[A : [B : C]]?] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : B]?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [A?] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[[A]?]] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[[A : B]?]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[A?]] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[[A?]]] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[[[A]]]] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[[[A : B]]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[[A]]] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[[A : B?]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[[A : [B]]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[[A : [B : C]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[[A : B]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [[A]] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : [B]?]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[A : [B : C]?]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : B?]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : [B?]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : [[B]]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[A : [[B : C]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : [B]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[A : [B : C?]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[A : [B : [C]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [[A : [B : [C : D]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [[A : [B : C]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [[A : B]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> [A] where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [B?]?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [[B]]?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [[B : C]]?] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [B]?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : C?]?] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C]]?] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C : D]]?] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : C]?] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : B?] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [[B]?]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [[B : C]?]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [B?]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [[B?]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [[[B]]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [[[B : C]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [[B]]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [[B : C?]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [[B : [C]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [[B : [C : D]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [[B : C]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : [B]] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C]?]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C : D]?]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : C?]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C?]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : [[C]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [B : [[C : D]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C : D?]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C : [D]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D, E>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C : [D : E]]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable, D : Hashable, E : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C, D>(json: Any, keyPath: KeyPath) throws -> [A : [B : [C : D]]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B, C>(json: Any, keyPath: KeyPath) throws -> [A : [B : C]] where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A, B>(json: Any, keyPath: KeyPath) throws -> [A : B] where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatchError,.other(error, metadata) or possible .missingKeyError on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func => <A>(json: Any, keyPath: KeyPath) throws -> A where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    something

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[A?]?]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A]]?]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A : B]]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[A]?]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : B?]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B]]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B : C]]?]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : B]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [A?]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A]?]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A : B]?]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[A?]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A?]]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[[[A]]]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[[[A : B]]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A]]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A : B?]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A : [B]]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A : [B : C]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[[A : B]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [[A]]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B]?]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B : C]?]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : B?]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B?]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [[B]]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [[B : C]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B : C?]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B : [C]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B : [C : D]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : [B : C]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [[A : B]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> [A]? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B?]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B]]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B : C]]?]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B]?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : C?]?]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C]]?]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C : D]]?]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : C]?]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : B?]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B]?]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B : C]?]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B?]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B?]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[[B]]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[[B : C]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B]]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B : C?]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B : [C]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B : [C : D]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [[B : C]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B]]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C]?]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C : D]?]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : C?]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C?]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [[C]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [[C : D]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C : D?]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C : [D]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D, E>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C : [D : E]]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable, D : Hashable, E : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C, D>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : [C : D]]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable, C : Hashable, D : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B, C>(json: Any, keyPath: OptionalKeyPath) throws -> [A : [B : C]]? where A : Decodable, A : Hashable, B : Decodable, B : Hashable, C : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A, B>(json: Any, keyPath: OptionalKeyPath) throws -> [A : B]? where A : Decodable, A : Hashable, B : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
  • +
    + + + + =>?(_:_:) + +
    +
    +
    +
    +
    +
    +

    Retrieves the object at path from json and decodes it according to the return type

    +
    +

    Throws

    + DecodingError.typeMismatch,.other(error, metadata)or possible.missingKeyError` on required keys + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func =>? <A>(json: Any, keyPath: OptionalKeyPath) throws -> A? where A : Decodable
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + json + + +
    +

    An object from NSJSONSerialization, preferably a NSDictionary.

    +
    +
    + + path + + +
    +

    KeyPath– can be appended using with => or =>?

    +
    +
    +
    +
    +

    Return Value

    +

    nil if the object at path is NSNull or if any optional key is missing.

    +
    +
    +
    +
  • +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func parse<T>(_ json: Any, keyPath: KeyPath, decoder: ((Any) throws -> T)) throws -> T
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func parse<T>(_ json: Any, keyPath: OptionalKeyPath, decoder: ((Any) throws -> T?)) throws -> T?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Protocols.html new file mode 100644 index 0000000..ef87086 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Protocols.html @@ -0,0 +1,825 @@ + + + + Protocols Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Protocols

+

The following protocols are available globally.

+ +
+
+
+
    +
  • +
    + + + + DynamicDecodable + +
    +
    +
    +
    +
    +
    +

    Allows overriding default decode function from your app.

    + +

    You likely don’t want to conform to this yourself.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol DynamicDecodable
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + Decodable + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol Decodable
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + NSValueCastable + +
    +
    +
    +
    +
    +
    +

    Provides a default implementation of decode() which casts the object to a NSValue and unsafely casts its value as Self.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol NSValueCastable : Decodable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + NSNumberCastable + +
    +
    +
    +
    +
    +
    +

    Used to enable decoding to different IntegerTypes from NSNumber.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol NSNumberCastable : NSValueCastable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Protocols/Decodable.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Protocols/Decodable.html new file mode 100644 index 0000000..a365334 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Protocols/Decodable.html @@ -0,0 +1,744 @@ + + + + Decodable Protocol Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Decodable

+
+
+
public protocol Decodable
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + decode(_:) + + + Default implementation + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +

    Default Implementation

    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func decode(_ json: Any) throws -> Self
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Protocols/DynamicDecodable.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Protocols/DynamicDecodable.html new file mode 100644 index 0000000..cc163a7 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Protocols/DynamicDecodable.html @@ -0,0 +1,773 @@ + + + + DynamicDecodable Protocol Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

DynamicDecodable

+
+
+
public protocol DynamicDecodable
+ +
+
+

Allows overriding default decode function from your app.

+ +

You likely don’t want to conform to this yourself.

+ +
+
+
+
    +
  • +
    + + + + DecodedType + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    associatedtype DecodedType
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + decoder + +
    +
    +
    +
    +
    +
    +

    A closure describing how this type should be decoded

    + +

    Types also conforming to Decodable call this closure +from their decode function.

    +
    +

    Note

    + This is intended as a set-once thing. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static var decoder: (Any) throws -> DecodedType { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Protocols/NSNumberCastable.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Protocols/NSNumberCastable.html new file mode 100644 index 0000000..5bf5df6 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Protocols/NSNumberCastable.html @@ -0,0 +1,770 @@ + + + + NSNumberCastable Protocol Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

NSNumberCastable

+
+
+
public protocol NSNumberCastable : NSValueCastable
+ +
+
+

Used to enable decoding to different IntegerTypes from NSNumber.

+ +
+
+
+
    +
  • +
    + + + + convertFrom(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func convertFrom(_ n: NSNumber) -> Self
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + decode(_:) + + + Extension method + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decode(_ json: Any) throws -> Self
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Protocols/NSValueCastable.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Protocols/NSValueCastable.html new file mode 100644 index 0000000..4990375 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Protocols/NSValueCastable.html @@ -0,0 +1,739 @@ + + + + NSValueCastable Protocol Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

NSValueCastable

+
+
+
public protocol NSValueCastable : Decodable
+ +
+
+

Provides a default implementation of decode() which casts the object to a NSValue and unsafely casts its value as Self.

+ +
+
+
+
    +
  • +
    + + + + decode(_:) + + + Extension method + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func decode(_ j: Any) throws -> Self
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Structs.html new file mode 100644 index 0000000..3f02664 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Structs.html @@ -0,0 +1,819 @@ + + + + Structures Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

Structures

+

The following structures are available globally.

+ +
+
+
+
    +
  • +
    + + + + KeyPath + +
    +
    +
    +
    +
    +
    +

    KeyPath represents the path to a specific node in a tree of nested dictionaries.

    + +

    Can be created from string and array literals and can be joined by the => operator.

    +
    let a: KeyPath = "a"
    +let b: KeyPath = ["a", "b"]
    +let c: KeyPath = "a" => "b" => "c"
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct KeyPath
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + OptionalKey + +
    +
    +
    +
    +
    +
    +

    A key in a keyPath that may or may not be required.

    + +

    Trying to access a invalid key in a dictionary with an OptionalKey will usually result +in a nil return value instead of a thrown error. Unless isRequired is true, in which +it behaves as a normal String inside a normal KeyPath.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct OptionalKey
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + OptionalKeyPath + +
    +
    +
    +
    +
    +
    +

    OptionalKeyPath represents the path to a specific node in a tree of nested dictionaries.

    + +

    Can be created from string and array literals and can be joined by the =>? operator.

    +
     let a: OptionalKeyPath = "a"
    + let b: OptionalKeyPath = ["a", "b"]
    + let c: OptionalKeyPath = "a" =>? "b" =>? "c"
    +
    + +

    Unlike KeyPath, OptionalKeyPath allows each key to be either required or optional. +isRequired is false by default.

    + +

    When a KeyPath is converted to a OptionalKeyPath, isRequired is set to true.

    +
     let c: OptionalKeyPath = "a" =>? "b" => "c"
    +                                         ^^
    +                             isRequired=true
    +
    + +

    In the above example "c" is inferred as KeyPath, then converted to OptionalKeyPath + with isRequired = true

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct OptionalKeyPath
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Structs/KeyPath.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Structs/KeyPath.html new file mode 100644 index 0000000..65aade7 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Structs/KeyPath.html @@ -0,0 +1,908 @@ + + + + KeyPath Structure Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

KeyPath

+
+
+
public struct KeyPath
+ +
+
+

KeyPath represents the path to a specific node in a tree of nested dictionaries.

+ +

Can be created from string and array literals and can be joined by the => operator.

+
let a: KeyPath = "a"
+let b: KeyPath = ["a", "b"]
+let c: KeyPath = "a" => "b" => "c"
+
+ +
+
+
+
    +
  • +
    + + + + keys + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var keys: [String]
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(_ keys: [String])
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(_ key: String)
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + init(stringLiteral:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(stringLiteral value: String)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(extendedGraphemeClusterLiteral value: String)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(unicodeScalarLiteral value: String)
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + init(arrayLiteral:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(arrayLiteral elements: String...)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Structs/OptionalKey.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Structs/OptionalKey.html new file mode 100644 index 0000000..5e8a4b7 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Structs/OptionalKey.html @@ -0,0 +1,797 @@ + + + + OptionalKey Structure Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

OptionalKey

+
+
+
public struct OptionalKey
+ +
+
+

A key in a keyPath that may or may not be required.

+ +

Trying to access a invalid key in a dictionary with an OptionalKey will usually result +in a nil return value instead of a thrown error. Unless isRequired is true, in which +it behaves as a normal String inside a normal KeyPath.

+ +
+
+
+
    +
  • +
    + + + + key + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var key: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + isRequired + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var isRequired: Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + description + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var description: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/Structs/OptionalKeyPath.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Structs/OptionalKeyPath.html new file mode 100644 index 0000000..4d363b8 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/Structs/OptionalKeyPath.html @@ -0,0 +1,866 @@ + + + + OptionalKeyPath Structure Reference + + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+

OptionalKeyPath

+
+
+
public struct OptionalKeyPath
+ +
+
+

OptionalKeyPath represents the path to a specific node in a tree of nested dictionaries.

+ +

Can be created from string and array literals and can be joined by the =>? operator.

+
 let a: OptionalKeyPath = "a"
+ let b: OptionalKeyPath = ["a", "b"]
+ let c: OptionalKeyPath = "a" =>? "b" =>? "c"
+
+ +

Unlike KeyPath, OptionalKeyPath allows each key to be either required or optional. +isRequired is false by default.

+ +

When a KeyPath is converted to a OptionalKeyPath, isRequired is set to true.

+
 let c: OptionalKeyPath = "a" =>? "b" => "c"
+                                         ^^
+                             isRequired=true
+
+ +

In the above example "c" is inferred as KeyPath, then converted to OptionalKeyPath + with isRequired = true

+ +
+
+
+
    +
  • +
    + + + + keys + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var keys: [OptionalKey]
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + init(stringLiteral:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(stringLiteral value: String)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(extendedGraphemeClusterLiteral value: String)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(unicodeScalarLiteral value: String)
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + init(arrayLiteral:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(arrayLiteral elements: String...)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/css/highlight.css b/docs/docsets/Decodable.docset/Contents/Resources/Documents/css/highlight.css new file mode 100644 index 0000000..d0db0e1 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/css/highlight.css @@ -0,0 +1,200 @@ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight { + /* Comment */ + /* Error */ + /* Keyword */ + /* Operator */ + /* Comment.Multiline */ + /* Comment.Preproc */ + /* Comment.Single */ + /* Comment.Special */ + /* Generic.Deleted */ + /* Generic.Deleted.Specific */ + /* Generic.Emph */ + /* Generic.Error */ + /* Generic.Heading */ + /* Generic.Inserted */ + /* Generic.Inserted.Specific */ + /* Generic.Output */ + /* Generic.Prompt */ + /* Generic.Strong */ + /* Generic.Subheading */ + /* Generic.Traceback */ + /* Keyword.Constant */ + /* Keyword.Declaration */ + /* Keyword.Pseudo */ + /* Keyword.Reserved */ + /* Keyword.Type */ + /* Literal.Number */ + /* Literal.String */ + /* Name.Attribute */ + /* Name.Builtin */ + /* Name.Class */ + /* Name.Constant */ + /* Name.Entity */ + /* Name.Exception */ + /* Name.Function */ + /* Name.Namespace */ + /* Name.Tag */ + /* Name.Variable */ + /* Operator.Word */ + /* Text.Whitespace */ + /* Literal.Number.Float */ + /* Literal.Number.Hex */ + /* Literal.Number.Integer */ + /* Literal.Number.Oct */ + /* Literal.String.Backtick */ + /* Literal.String.Char */ + /* Literal.String.Doc */ + /* Literal.String.Double */ + /* Literal.String.Escape */ + /* Literal.String.Heredoc */ + /* Literal.String.Interpol */ + /* Literal.String.Other */ + /* Literal.String.Regex */ + /* Literal.String.Single */ + /* Literal.String.Symbol */ + /* Name.Builtin.Pseudo */ + /* Name.Variable.Class */ + /* Name.Variable.Global */ + /* Name.Variable.Instance */ + /* Literal.Number.Integer.Long */ } + .highlight .c { + color: #999988; + font-style: italic; } + .highlight .err { + color: #a61717; + background-color: #e3d2d2; } + .highlight .k { + color: #000000; + font-weight: bold; } + .highlight .o { + color: #000000; + font-weight: bold; } + .highlight .cm { + color: #999988; + font-style: italic; } + .highlight .cp { + color: #999999; + font-weight: bold; } + .highlight .c1 { + color: #999988; + font-style: italic; } + .highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + .highlight .gd { + color: #000000; + background-color: #ffdddd; } + .highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + .highlight .ge { + color: #000000; + font-style: italic; } + .highlight .gr { + color: #aa0000; } + .highlight .gh { + color: #999999; } + .highlight .gi { + color: #000000; + background-color: #ddffdd; } + .highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + .highlight .go { + color: #888888; } + .highlight .gp { + color: #555555; } + .highlight .gs { + font-weight: bold; } + .highlight .gu { + color: #aaaaaa; } + .highlight .gt { + color: #aa0000; } + .highlight .kc { + color: #000000; + font-weight: bold; } + .highlight .kd { + color: #000000; + font-weight: bold; } + .highlight .kp { + color: #000000; + font-weight: bold; } + .highlight .kr { + color: #000000; + font-weight: bold; } + .highlight .kt { + color: #445588; } + .highlight .m { + color: #009999; } + .highlight .s { + color: #d14; } + .highlight .na { + color: #008080; } + .highlight .nb { + color: #0086B3; } + .highlight .nc { + color: #445588; + font-weight: bold; } + .highlight .no { + color: #008080; } + .highlight .ni { + color: #800080; } + .highlight .ne { + color: #990000; + font-weight: bold; } + .highlight .nf { + color: #990000; } + .highlight .nn { + color: #555555; } + .highlight .nt { + color: #000080; } + .highlight .nv { + color: #008080; } + .highlight .ow { + color: #000000; + font-weight: bold; } + .highlight .w { + color: #bbbbbb; } + .highlight .mf { + color: #009999; } + .highlight .mh { + color: #009999; } + .highlight .mi { + color: #009999; } + .highlight .mo { + color: #009999; } + .highlight .sb { + color: #d14; } + .highlight .sc { + color: #d14; } + .highlight .sd { + color: #d14; } + .highlight .s2 { + color: #d14; } + .highlight .se { + color: #d14; } + .highlight .sh { + color: #d14; } + .highlight .si { + color: #d14; } + .highlight .sx { + color: #d14; } + .highlight .sr { + color: #009926; } + .highlight .s1 { + color: #d14; } + .highlight .ss { + color: #990073; } + .highlight .bp { + color: #999999; } + .highlight .vc { + color: #008080; } + .highlight .vg { + color: #008080; } + .highlight .vi { + color: #008080; } + .highlight .il { + color: #009999; } diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/css/jazzy.css b/docs/docsets/Decodable.docset/Contents/Resources/Documents/css/jazzy.css new file mode 100644 index 0000000..103ee29 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/css/jazzy.css @@ -0,0 +1,348 @@ +html, body, div, span, h1, h3, h4, p, a, code, em, img, ul, li, table, tbody, tr, td { + background: transparent; + border: 0; + margin: 0; + outline: 0; + padding: 0; + vertical-align: baseline; } + +body { + background-color: #f2f2f2; + font-family: Helvetica, freesans, Arial, sans-serif; + font-size: 14px; + -webkit-font-smoothing: subpixel-antialiased; + word-wrap: break-word; } + +h1, h2, h3 { + margin-top: 0.8em; + margin-bottom: 0.3em; + font-weight: 100; + color: black; } + +h1 { + font-size: 2.5em; } + +h2 { + font-size: 2em; + border-bottom: 1px solid #e2e2e2; } + +h4 { + font-size: 13px; + line-height: 1.5; + margin-top: 21px; } + +h5 { + font-size: 1.1em; } + +h6 { + font-size: 1.1em; + color: #777; } + +.section-name { + color: gray; + display: block; + font-family: Helvetica; + font-size: 22px; + font-weight: 100; + margin-bottom: 15px; } + +pre, code { + font: 0.95em Menlo, monospace; + color: #777; + word-wrap: normal; } + +p code, li code { + background-color: #eee; + padding: 2px 4px; + border-radius: 4px; } + +a { + color: #0088cc; + text-decoration: none; } + +ul { + padding-left: 15px; } + +li { + line-height: 1.8em; } + +img { + max-width: 100%; } + +blockquote { + margin-left: 0; + padding: 0 10px; + border-left: 4px solid #ccc; } + +.content-wrapper { + margin: 0 auto; + width: 980px; } + +header { + font-size: 0.85em; + line-height: 26px; + background-color: #414141; + position: fixed; + width: 100%; + z-index: 1; } + header img { + padding-right: 6px; + vertical-align: -4px; + height: 16px; } + header a { + color: #fff; } + header p { + float: left; + color: #999; } + header .header-right { + float: right; + margin-left: 16px; } + +#breadcrumbs { + background-color: #f2f2f2; + height: 27px; + padding-top: 17px; + position: fixed; + width: 100%; + z-index: 1; + margin-top: 26px; } + #breadcrumbs #carat { + height: 10px; + margin: 0 5px; } + +.sidebar { + background-color: #f9f9f9; + border: 1px solid #e2e2e2; + overflow-y: auto; + overflow-x: hidden; + position: fixed; + top: 70px; + bottom: 0; + width: 230px; + word-wrap: normal; } + +.nav-groups { + list-style-type: none; + background: #fff; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #e2e2e2; + font-size: 1.1em; + font-weight: 100; + padding: 15px 0 15px 20px; } + .nav-group-name > a { + color: #333; } + +.nav-group-tasks { + margin-top: 5px; } + +.nav-group-task { + font-size: 0.9em; + list-style-type: none; + white-space: nowrap; } + .nav-group-task a { + color: #888; } + +.main-content { + background-color: #fff; + border: 1px solid #e2e2e2; + margin-left: 246px; + position: absolute; + overflow: hidden; + padding-bottom: 20px; + top: 70px; + width: 734px; } + .main-content p, .main-content a, .main-content code, .main-content em, .main-content ul, .main-content table, .main-content blockquote { + margin-bottom: 1em; } + .main-content p { + line-height: 1.8em; } + .main-content section .section:first-child { + margin-top: 0; + padding-top: 0; } + .main-content section .task-group-section .task-group:first-of-type { + padding-top: 10px; } + .main-content section .task-group-section .task-group:first-of-type .section-name { + padding-top: 15px; } + .main-content section .heading:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } + +.section { + padding: 0 25px; } + +.highlight { + background-color: #eee; + padding: 10px 12px; + border: 1px solid #e2e2e2; + border-radius: 4px; + overflow-x: auto; } + +.declaration .highlight { + overflow-x: initial; + padding: 0 40px 40px 0; + margin-bottom: -25px; + background-color: transparent; + border: none; } + +.section-name { + margin: 0; + margin-left: 18px; } + +.task-group-section { + padding-left: 6px; + border-top: 1px solid #e2e2e2; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } + .item code { + background-color: transparent; + padding: 0; } + .item .token, .item .direct-link { + padding-left: 3px; + margin-left: 15px; + font-size: 11.9px; + transition: all 300ms; } + .item .token-open { + margin-left: 0px; } + .item .discouraged { + text-decoration: line-through; } + .item .declaration-note { + font-size: .85em; + color: gray; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #e2e2e2; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + background: #f9f9f9; + border-left: 1px solid #e2e2e2; + border-top: 1px solid #e2e2e2; + height: 12px; + left: 21px; + top: -7px; + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); + position: absolute; + width: 12px; } + +.height-container { + display: none; + left: -25px; + padding: 0 25px; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #f9f9f9; + border-bottom: 1px solid #e2e2e2; + left: -25px; + position: relative; + width: 100%; + padding-top: 10px; + padding-bottom: 5px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4b8afb; } + +.aside-warning, .aside-deprecated, .aside-unavailable { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #e2e2e2; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +#footer { + position: relative; + top: 10px; + bottom: 0px; + margin-left: 25px; } + #footer p { + margin: 0; + color: #aaa; + font-size: 0.8em; } + +html.dash header, html.dash #breadcrumbs, html.dash .sidebar { + display: none; } + +html.dash .main-content { + width: 980px; + margin-left: 0; + border: none; + width: 100%; + top: 0; + padding-bottom: 0; } + +html.dash .height-container { + display: block; } + +html.dash .item .token { + margin-left: 0; } + +html.dash .content-wrapper { + width: auto; } + +html.dash #footer { + position: static; } diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/img/carat.png b/docs/docsets/Decodable.docset/Contents/Resources/Documents/img/carat.png new file mode 100755 index 0000000..29d2f7f Binary files /dev/null and b/docs/docsets/Decodable.docset/Contents/Resources/Documents/img/carat.png differ diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/img/dash.png b/docs/docsets/Decodable.docset/Contents/Resources/Documents/img/dash.png new file mode 100755 index 0000000..6f694c7 Binary files /dev/null and b/docs/docsets/Decodable.docset/Contents/Resources/Documents/img/dash.png differ diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/img/gh.png b/docs/docsets/Decodable.docset/Contents/Resources/Documents/img/gh.png new file mode 100755 index 0000000..628da97 Binary files /dev/null and b/docs/docsets/Decodable.docset/Contents/Resources/Documents/img/gh.png differ diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/index.html b/docs/docsets/Decodable.docset/Contents/Resources/Documents/index.html new file mode 100644 index 0000000..7d8e6f9 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/index.html @@ -0,0 +1,931 @@ + + + + Decodable Reference + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+ +

Decodable

+ +

Simple and strict, yet powerful object mapping made possible by Swift 2’s error handling. Greatly inspired by Argo, but without a bizillion functional operators.

+ +

Carthage compatible +Cocoapods version +Platforms +Travis

+

+struct Repository {
+    let name: String
+    let description: String
+    let stargazersCount: Int
+    let language: String?
+    let sometimesMissingKey: String?
+
+    let owner: User // Struct conforming to Decodable
+    let defaultBranch: Branch // Struct NOT conforming to Decodable
+
+    var fullName: String { return "\(owner.login)/\(name)" }
+}
+
+extension Repository: Decodable {
+    static func decode(j: Any) throws -> Repository {
+        return try Repository(
+                    name: j => "nested" => "name",
+                    description: j => "description",
+                    stargazersCount: j => "stargazers_count",
+                    language: j => "language",
+                    sometimesMissingKey: j =>? "sometimesMissingKey",
+                    owner: j => "owner",
+                    defaultBranch: Branch(name: j => "default_branch")
+                )
+    }
+}
+
+do {
+    let json = try NSJSONSerialization.JSONObjectWithData(data, options: [])
+    let repo = try [Repository].decode(json)
+} catch {
+    print(error)
+}
+
+

How does it work?

+

A protocol

+
public protocol Decodable {
+    static func decode(json: Any) throws -> Self
+}
+
+

A parse-function

+
public func parse<T>(json: Any, path: [String], decode: (Any throws -> T)) throws -> T
+
+

And shameless operator-overloading

+ +

The too-many generated overloads, all calling the parse-function, can be found in Overloads.swift. Return types include T?, [T?], [T?]?, Any and [String: T]?. When conditional protocol conformance is supported in Swift this won’t be necessary, and automatic decoding of infinitely nested generic types (like [[[[[[[[[A???]]: B]]]?]]?]]) would work.

+ +

An overload may look like this:

+
public func => <T: Decodable>(json: Any, keyPath: KeyPath) throws -> T
+
+

KeyPaths

+ +

Keypaths can be created from string and array literals as well as with explicit initializers. They can also be joined using the operators => and =>?. =>? is another operator that indicates that nil should be returned if the key to the right is missing.

+ +
    +
  • When composing => and =>? operators in the same keypath, the strictness of => is still honoured.
  • +
  • Optional key paths (=>?) require an optional return type
  • +
+
let a: KeyPath = "a"
+let b: KeyPath = ["a", "b"]
+let c: KeyPath = "a" => "b" => "c"
+let string: String? = json =>? "key1" => "key2" => "key3"`
+                                ^^^^ allowed to be missing
+
+

Errors

+ +

Errors will be caught and rethrown in the decoding process to backpropagate metadata, like the JSON object that failed decoding, the key path to it, and the root JSON object.

+ +

From DecodingError.swift:

+
public enum DecodingError: ErrorProtocol, Equatable {
+    /// Thrown when optional casting from `Any` fails.
+    ///
+    /// This can happen both when trying to access a key on a object
+    /// that isn't a `NSDictionary`, and failing to cast a `Castable`
+    /// primitive.
+    case typeMismatch(expected: Any.Type, actual: Any.Type, Metadata)
+
+    /// Thrown when a given, required, key was not found in a dictionary.
+    case missingKey(String, Metadata)
+
+    /// Thrown from the `RawRepresentable` extension when
+    /// `init(rawValue:)` returned `nil`.
+    case rawRepresentableInitializationError(rawValue: Any, Metadata)
+
+    /// When an error is thrown that isn't `DecodingError`, it
+    /// will be wrapped in `DecodingError.other` in order to also provide
+    /// metadata about where the error was thrown.
+    case other(ErrorProtocol, Metadata)
+}
+
+
let dict: NSDictionary = ["object": ["repo": ["owner": ["id" : 1, "login": "anviking"]]]]
+
+do {
+    let username: String = try dict => "object" => "repo" => "owner" => "name"
+} catch let error {
+    print(error)
+}
+//
+// MissingKeyError at object.repo.owner: name in {
+//    id = 1;
+//    login = anviking;
+// }
+
+

Handling Errors

+ +

Expressions like j => "key" will throw directly, and catch-statements can be used to create the most complex error handling behaviours. This also means that try? can be used to return nil if anything goes wrong instead of throwing.

+ +

For convenience there is an operator, =>?, that only returns nil on missing keys, for APIs that indicate null in that manner, and to aid working with different response formats.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OverloadNull BehaviourMissing Key BehaviorType Mismatch BehaviourErrors in subjects
=> -> Tthrowsthrowsthrowsuncaught (throws)
=> -> T?nilthrowsthrowsuncaught (throws)
=>? -> T?nilnilthrowsuncaught (throws)
try? => -> Tnilnilnilcaught (nil)
+

Customization

+ +

Int, Double,String, Bool, Date (ISO8601), NSArray, and NSDictionary types that conform to DynamicDecodable with the following declaration:

+
public protocol DynamicDecodable {
+    associatedtype DecodedType
+    static var decoder: (Any) throws -> DecodedType {get set}
+}
+
+ +

This allows Decodable to implement default decoding closures while allowing you to override them as needed.

+
// Lets extend Bool.decoder so that it accepts certain strings:
+Bool.decoder = { json in
+    switch json {
+    case let str as String where str == "true":
+        return true
+    case let str as String where str == "false":
+        return false
+    default:
+        return try cast(json)
+    }
+}
+
+ +

Note that when extending new types to conform to Decodable there is really no point in conforming to DynamicDecodable since you already control the implementation. Also note that the decoder properties are intended as set once. If you need different behaviour on different occasions, please create custom decode functions.

+ +

The default Date.decoder uses a ISO8601 date formatter. If you don’t want to create your own decode closure there’s a helper:

+
Date.decoder = Date.decoder(using: formatter)
+
+

When Decodable isn’t enough

+ +

Don’t be afraid of not conforming to Decodable.

+
let array = try NSArray.decode(json => "list").map {
+    try Contribution(json: $0, repository: repo)
+}
+
+

Tips

+ +
    +
  • You can use Decodable with classes. Just make sure to either call a required initializer on self (e.g self.init) and return Self, or make your class final. ( This might be a problem though)
  • +
  • The Decodable-protocol and the =>-operator should in no way make you committed to use them everywhere.
  • +
+

Compatibility

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Swift versionCompatible tag or branch
Swift 5.00.7.0
Swift 4.00.6.0
Swift 3.0v0.5
Swift 2.3v0.4.4
Swift 2.2v0.4.3
+

Note on Swift 4.0 usage

+ +

Due to collisions with the standard library you will have to import ambiguous symbols specifically, in addition to Decodable as a whole.

+ +

This means you likely want the following

+
import Decodable
+import protocol Decodable.Decodable
+
+ +

and you can import other symbols, e.g KeyPath, DecodingError, in a similar fashion (using import struct and import enum)

+ +
+
+ +
+
+ + + diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/js/jazzy.js b/docs/docsets/Decodable.docset/Contents/Resources/Documents/js/jazzy.js new file mode 100755 index 0000000..c31dc05 --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/js/jazzy.js @@ -0,0 +1,59 @@ +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +function toggleItem($link, $content) { + var animationDuration = 300; + $link.toggleClass('token-open'); + $content.slideToggle(animationDuration); +} + +function itemLinkToContent($link) { + return $link.parent().parent().next(); +} + +// On doc load + hash-change, open any targetted item +function openCurrentItemIfClosed() { + if (window.jazzy.docset) { + return; + } + var $link = $(`.token[href="${location.hash}"]`); + $content = itemLinkToContent($link); + if ($content.is(':hidden')) { + toggleItem($link, $content); + } +} + +$(openCurrentItemIfClosed); +$(window).on('hashchange', openCurrentItemIfClosed); + +// On item link ('token') click, toggle its discussion +$('.token').on('click', function(event) { + if (window.jazzy.docset) { + return; + } + var $link = $(this); + toggleItem($link, itemLinkToContent($link)); + + // Keeps the document from jumping to the hash. + var href = $link.attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Clicks on links to the current, closed, item need to open the item +$("a:not('.token')").on('click', function() { + if (location == this.href) { + openCurrentItemIfClosed(); + } +}); diff --git a/docs/docsets/Decodable.docset/Contents/Resources/Documents/js/jquery.min.js b/docs/docsets/Decodable.docset/Contents/Resources/Documents/js/jquery.min.js new file mode 100644 index 0000000..a1c07fd --- /dev/null +++ b/docs/docsets/Decodable.docset/Contents/Resources/Documents/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0Undocumented

","parent_name":"OptionalKeyPath"},"Structs/OptionalKeyPath.html#/s:s26ExpressibleByStringLiteralP06stringD0x0cD4TypeQz_tcfc":{"name":"init(stringLiteral:)","parent_name":"OptionalKeyPath"},"Structs/OptionalKeyPath.html#/s:s43ExpressibleByExtendedGraphemeClusterLiteralP08extendeddeF0x0cdeF4TypeQz_tcfc":{"name":"init(extendedGraphemeClusterLiteral:)","parent_name":"OptionalKeyPath"},"Structs/OptionalKeyPath.html#/s:s33ExpressibleByUnicodeScalarLiteralP07unicodedE0x0cdE4TypeQz_tcfc":{"name":"init(unicodeScalarLiteral:)","parent_name":"OptionalKeyPath"},"Structs/OptionalKeyPath.html#/s:s25ExpressibleByArrayLiteralP05arrayD0x0cD7ElementQzd_tcfc":{"name":"init(arrayLiteral:)","parent_name":"OptionalKeyPath"},"Structs/OptionalKey.html#/s:9Decodable11OptionalKeyV3keySSvp":{"name":"key","abstract":"

Undocumented

","parent_name":"OptionalKey"},"Structs/OptionalKey.html#/s:9Decodable11OptionalKeyV10isRequiredSbvp":{"name":"isRequired","abstract":"

Undocumented

","parent_name":"OptionalKey"},"Structs/OptionalKey.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"OptionalKey"},"Structs/KeyPath.html#/s:9Decodable7KeyPathV4keysSaySSGvp":{"name":"keys","abstract":"

Undocumented

","parent_name":"KeyPath"},"Structs/KeyPath.html#/s:9Decodable7KeyPathVyACSaySSGcfc":{"name":"init(_:)","abstract":"

Undocumented

","parent_name":"KeyPath"},"Structs/KeyPath.html#/s:9Decodable7KeyPathVyACSScfc":{"name":"init(_:)","abstract":"

Undocumented

","parent_name":"KeyPath"},"Structs/KeyPath.html#/s:s26ExpressibleByStringLiteralP06stringD0x0cD4TypeQz_tcfc":{"name":"init(stringLiteral:)","parent_name":"KeyPath"},"Structs/KeyPath.html#/s:s43ExpressibleByExtendedGraphemeClusterLiteralP08extendeddeF0x0cdeF4TypeQz_tcfc":{"name":"init(extendedGraphemeClusterLiteral:)","parent_name":"KeyPath"},"Structs/KeyPath.html#/s:s33ExpressibleByUnicodeScalarLiteralP07unicodedE0x0cdE4TypeQz_tcfc":{"name":"init(unicodeScalarLiteral:)","parent_name":"KeyPath"},"Structs/KeyPath.html#/s:s25ExpressibleByArrayLiteralP05arrayD0x0cD7ElementQzd_tcfc":{"name":"init(arrayLiteral:)","parent_name":"KeyPath"},"Structs/KeyPath.html":{"name":"KeyPath","abstract":"

KeyPath represents the path to a specific node in a tree of nested dictionaries.

"},"Structs/OptionalKey.html":{"name":"OptionalKey","abstract":"

A key in a keyPath that may or may not be required.

"},"Structs/OptionalKeyPath.html":{"name":"OptionalKeyPath","abstract":"

OptionalKeyPath represents the path to a specific node in a tree of nested dictionaries.

"},"Protocols/NSNumberCastable.html#/s:9Decodable16NSNumberCastableP11convertFromyxSo0B0CFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"NSNumberCastable"},"Protocols/NSNumberCastable.html#/s:9Decodable16NSNumberCastablePAAE6decodeyxypKFZ":{"name":"decode(_:)","abstract":"

Undocumented

","parent_name":"NSNumberCastable"},"Protocols/NSValueCastable.html#/s:9Decodable15NSValueCastablePAAE6decodeyxypKFZ":{"name":"decode(_:)","abstract":"

Undocumented

","parent_name":"NSValueCastable"},"Protocols/Decodable.html#/s:9DecodableAAP6decodeyxypKFZ":{"name":"decode(_:)","abstract":"

Undocumented

","parent_name":"Decodable"},"Protocols/DynamicDecodable.html#/s:9Decodable07DynamicA0P11DecodedTypeQa":{"name":"DecodedType","abstract":"

Undocumented

","parent_name":"DynamicDecodable"},"Protocols/DynamicDecodable.html#/s:9Decodable07DynamicA0P7decodery11DecodedTypeQzypKcvpZ":{"name":"decoder","abstract":"

A closure describing how this type should be decoded

","parent_name":"DynamicDecodable"},"Protocols/DynamicDecodable.html":{"name":"DynamicDecodable","abstract":"

Allows overriding default decode function from your app.

"},"Protocols/Decodable.html":{"name":"Decodable","abstract":"

Undocumented

"},"Protocols/NSValueCastable.html":{"name":"NSValueCastable","abstract":"

Provides a default implementation of decode() which casts the object to a NSValue and unsafely casts its value as Self.

"},"Protocols/NSNumberCastable.html":{"name":"NSNumberCastable","abstract":"

Used to enable decoding to different IntegerTypes from NSNumber.

"},"Functions.html#/s:9Decodable4castyxypKlF":{"name":"cast(_:)","abstract":"

Attempt to cast an Any to T or throw

"},"Functions.html#/s:9Decodable13decodeAsOneOf_11objectTypesA2A_pyp_A2A_pXpdtKF":{"name":"decodeAsOneOf(_:objectTypes:)","abstract":"

Attempt to decode one of multiple objects in order until: A: we get a positive match, B: we throw an exception if the last object does not decode

"},"Functions.html#/s:9Decodable18decodeArrayAsOneOf_11objectTypesSayA2A_pGyp_A2A_pXpdtKF":{"name":"decodeArrayAsOneOf(_:objectTypes:)","abstract":"

Attempt to decode one of multiple objects in order until: A: we get a positive match, B: we throw an exception if the last object does not decode

"},"Functions.html#/s:9Decodable2teoiySbxm_ypXptlF":{"name":"~=(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2eeoiySbAA13DecodingErrorO8MetadataV_AFtF":{"name":"==(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2eeoiySbAA13DecodingErrorO_ADtF":{"name":"==(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2eeoiySbAA7KeyPathV_ADtF":{"name":"==(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2egoiyypyp_AA7KeyPathVtKF":{"name":"=>(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable3egqoiyypSgyp_AA15OptionalKeyPathVtKF":{"name":"=>?(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2egoiyAA7KeyPathVAD_ADtF":{"name":"=>(_:_:)","abstract":"

Enables parsing nested objects e.g json => a => b

"},"Functions.html#/s:9Decodable2egoiyAA15OptionalKeyPathVAD_ADtF":{"name":"=>(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable3egqoiyAA15OptionalKeyPathVAD_ADtF":{"name":"=>?(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2egoiyAA15OptionalKeyPathVAD_AA0dE0VtF":{"name":"=>(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable3egqoiyAA15OptionalKeyPathVAA0dE0V_ADtF":{"name":"=>?(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2eeoiySbAA11OptionalKeyV_ADtF":{"name":"==(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2egoiySaySayxGSgGSgyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxq_GSgGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySayxSgGSgyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySayxSgGGSgyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySayxGGGSgyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySDyxq_GGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySayxGGSgyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxq_SgGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSayq_GGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSDyq_q0_GGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxq_GGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySayxGSgyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSayq_GSgGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_q0_GSgGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxq_SgGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSayq_SgGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySayq_GGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySDyq_q0_GGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSayq_GGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_q0_SgGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_Sayq0_GGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SDyq0_q1_GGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_q0_GGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxq_GSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiyxSgyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySayxSgGSgGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySayxGGSgGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySDyxq_GGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySayxGSgGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxq_SgGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSayq_GGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSDyq_q0_GGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxq_GSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySayxSgGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySayxGSgGGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySDyxq_GSgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySayxSgGGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySayxSgGGGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySaySayxGGGGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySaySDyxq_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySayxGGGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySDyxq_SgGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySDyxSayq_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySDyxSDyq_q0_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySDyxq_GGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySayxGGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSayq_GSgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSDyq_q0_GSgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxq_SgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSayq_SgGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSaySayq_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSaySDyq_q0_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSayq_GGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSDyq_q0_SgGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSDyq_Sayq0_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSDyq_SDyq0_q1_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSDyq_q0_GGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxq_GGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySayxGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSayq_SgGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySayq_GGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySDyq_q0_GGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSayq_GSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_q0_SgGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_Sayq0_GGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SDyq0_q1_GGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_q0_GSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxq_SgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySayq_GSgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySDyq_q0_GSgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSayq_SgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySayq_SgGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySaySayq_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySaySDyq_q0_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySayq_GGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySDyq_q0_SgGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySDyq_Sayq0_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySDyq_SDyq0_q1_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySDyq_q0_GGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSayq_GGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_Sayq0_GSgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SDyq0_q1_GSgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_q0_SgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_Sayq0_SgGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SaySayq0_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SaySDyq0_q1_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_Sayq0_GGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SDyq0_q1_SgGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SDyq0_Sayq1_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SDyq0_SDyq1_q2_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_SHR1_A2AR2_r3_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SDyq0_q1_GGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_q0_GGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxq_Gyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiyxyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySayxSgGSgGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySayxGGSgGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySDyxq_GGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySayxGSgGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxq_SgGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSayq_GGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSDyq_q0_GGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxq_GSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySayxSgGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySayxGSgGGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySDyxq_GSgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySayxSgGGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySayxSgGGGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySaySayxGGGGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySaySDyxq_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySayxGGGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySDyxq_SgGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySDyxSayq_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySDyxSDyq_q0_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySDyxq_GGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySayxGGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSayq_GSgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSDyq_q0_GSgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxq_SgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSayq_SgGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSaySayq_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSaySDyq_q0_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSayq_GGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSDyq_q0_SgGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSDyq_Sayq0_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSDyq_SDyq0_q1_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSDyq_q0_GGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxq_GGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySayxGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSayq_SgGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySayq_GGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySDyq_q0_GGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSayq_GSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_q0_SgGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_Sayq0_GGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SDyq0_q1_GGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_q0_GSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxq_SgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySayq_GSgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySDyq_q0_GSgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSayq_SgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySayq_SgGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySaySayq_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySaySDyq_q0_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySayq_GGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySDyq_q0_SgGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySDyq_Sayq0_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySDyq_SDyq0_q1_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySDyq_q0_GGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSayq_GGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_Sayq0_GSgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SDyq0_q1_GSgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_q0_SgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_Sayq0_SgGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SaySayq0_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SaySDyq0_q1_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_Sayq0_GGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SDyq0_q1_SgGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SDyq0_Sayq1_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SDyq0_SDyq1_q2_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_SHR1_A2AR2_r3_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SDyq0_q1_GGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_q0_GGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxq_GSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiyxSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable5parse_7keyPath7decoderxyp_AA03KeyD0VxypKXEtKlF":{"name":"parse(_:keyPath:decoder:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable5parse_7keyPath7decoderxSgyp_AA011OptionalKeyD0VAEypKXEtKlF":{"name":"parse(_:keyPath:decoder:)","abstract":"

Undocumented

"},"Extensions/RawRepresentable.html#/s:SY9DecodableA2ARzA2A8RawValueSYRpzrlE6decodeyxypKFZ":{"name":"decode(_:)","abstract":"

Undocumented

","parent_name":"RawRepresentable"},"Extensions/UInt8.html#/s:s5UInt8V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"UInt8"},"Extensions/UInt16.html#/s:s6UInt16V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"UInt16"},"Extensions/UInt32.html#/s:s6UInt32V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt64.html#/s:s6UInt64V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/Int8.html#/s:s4Int8V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"Int8"},"Extensions/Int16.html#/s:s5Int16V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"Int16"},"Extensions/Int32.html#/s:s5Int32V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int64.html#/s:s5Int64V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"Int64"},"Extensions/Array.html#/s:Sa9DecodableA2ARzlE6decode_20ignoreInvalidObjectsSayxGyp_SbtKFZ":{"name":"decode(_:ignoreInvalidObjects:)","abstract":"

Undocumented

","parent_name":"Array"},"Extensions/Array.html#/s:Sa9DecodableE7decoderySayxGypKcxypKcFZ":{"name":"decoder(_:)","abstract":"

Creates an array decoder from an element decoder

","parent_name":"Array"},"Extensions/Dictionary.html#/s:SD9DecodableA2ARzA2AR_rlE6decodeySDyxq_GypKFZ":{"name":"decode(_:)","abstract":"

Undocumented

","parent_name":"Dictionary"},"Extensions/Dictionary.html#/s:SD9DecodableE7decoder3key5valueSDyxq_GypKcxypKc_q_ypKctFZ":{"name":"decoder(key:value:)","abstract":"

Create a dictionary decoder from key- and value- decoders

","parent_name":"Dictionary"},"Extensions/URL.html#/s:9Decodable07DynamicA0P7decodery11DecodedTypeQzypKcvpZ":{"name":"decoder","parent_name":"URL"},"Extensions/NSArray.html#/s:9Decodable07DynamicA0P7decodery11DecodedTypeQzypKcvpZ":{"name":"decoder","parent_name":"NSArray"},"Extensions/NSArray.html#/s:So7NSArrayC9DecodableE6decodeyABypKFZ":{"name":"decode(_:)","abstract":"

Undocumented

","parent_name":"NSArray"},"Extensions/NSDictionary.html#/s:So12NSDictionaryC9DecodableE6decodeyABXDypKFZ":{"name":"decode(_:)","abstract":"

Undocumented

","parent_name":"NSDictionary"},"Extensions/Date.html#/s:10Foundation4DateV9DecodableE7decoderyACypKcvpZ":{"name":"decoder","abstract":"

Default decoder is Date.decoder(using: iso8601DateFormatter)

","parent_name":"Date"},"Extensions/Date.html#/s:10Foundation4DateV9DecodableE7decoder5usingACypKcSo15NSDateFormatterC_tFZ":{"name":"decoder(using:)","abstract":"

Create a decode closure using a given formatter

","parent_name":"Date"},"Extensions/Bool.html#/s:9Decodable07DynamicA0P7decodery11DecodedTypeQzypKcvpZ":{"name":"decoder","parent_name":"Bool"},"Extensions/Double.html#/s:9Decodable07DynamicA0P7decodery11DecodedTypeQzypKcvpZ":{"name":"decoder","parent_name":"Double"},"Extensions/Int.html#/s:9Decodable07DynamicA0P7decodery11DecodedTypeQzypKcvpZ":{"name":"decoder","parent_name":"Int"},"Extensions/String.html#/s:9Decodable07DynamicA0P7decodery11DecodedTypeQzypKcvpZ":{"name":"decoder","parent_name":"String"},"Extensions/String.html":{"name":"String"},"Extensions/Int.html":{"name":"Int"},"Extensions/Double.html":{"name":"Double"},"Extensions/Bool.html":{"name":"Bool"},"Extensions/Date.html":{"name":"Date"},"Extensions/NSDictionary.html":{"name":"NSDictionary"},"Extensions/NSArray.html":{"name":"NSArray"},"Extensions/URL.html":{"name":"URL"},"Extensions/Dictionary.html":{"name":"Dictionary"},"Extensions/Array.html":{"name":"Array"},"Extensions/Int64.html":{"name":"Int64"},"Extensions/Int32.html":{"name":"Int32"},"Extensions/Int16.html":{"name":"Int16"},"Extensions/Int8.html":{"name":"Int8"},"Extensions/UInt64.html":{"name":"UInt64"},"Extensions/UInt32.html":{"name":"UInt32"},"Extensions/UInt16.html":{"name":"UInt16"},"Extensions/UInt8.html":{"name":"UInt8"},"Extensions/RawRepresentable.html":{"name":"RawRepresentable","abstract":"

Extends all RawRepresentables (enums) which are also Decodable with decode implementation.

"},"Enums/DecodingError/Metadata.html#/s:9Decodable13DecodingErrorO8MetadataV4path6object10rootObjectAESaySSG_ypypSgtcfc":{"name":"init(path:object:rootObject:)","abstract":"

Undocumented

","parent_name":"Metadata"},"Enums/DecodingError/Metadata.html#/s:9Decodable13DecodingErrorO8MetadataV4pathSaySSGvp":{"name":"path","abstract":"

The JSON key path to the object that failed to be decoded

","parent_name":"Metadata"},"Enums/DecodingError/Metadata.html#/s:9Decodable13DecodingErrorO8MetadataV6objectypvp":{"name":"object","abstract":"

The JSON object that failed to be decoded

","parent_name":"Metadata"},"Enums/DecodingError/Metadata.html#/s:9Decodable13DecodingErrorO8MetadataV10rootObjectypSgvp":{"name":"rootObject","abstract":"

The root JSON object for which the path can be used to find object

","parent_name":"Metadata"},"Enums/DecodingError/Metadata.html#/s:9Decodable13DecodingErrorO8MetadataV13formattedPathSSvp":{"name":"formattedPath","abstract":"

Represents the path to the object that failed decoding with . as a separator.

","parent_name":"Metadata"},"Enums/DecodingError/Metadata.html":{"name":"Metadata","abstract":"

DecodingError.Metadata provides information about","parent_name":"DecodingError"},"Enums/DecodingError.html#/s:9Decodable13DecodingErrorO12typeMismatchyACypXp_ypXpAC8MetadataVtcACmF":{"name":"typeMismatch(expected:actual:_:)","abstract":"

Thrown when optional casting from Any fails.

","parent_name":"DecodingError"},"Enums/DecodingError.html#/s:9Decodable13DecodingErrorO10missingKeyyACSS_AC8MetadataVtcACmF":{"name":"missingKey(_:_:)","abstract":"

Thrown when a given, required, key was not found in a dictionary.

","parent_name":"DecodingError"},"Enums/DecodingError.html#/s:9Decodable13DecodingErrorO030rawRepresentableInitializationC0yACyp_AC8MetadataVtcACmF":{"name":"rawRepresentableInitializationError(rawValue:_:)","abstract":"

Thrown from the RawRepresentable extension when","parent_name":"DecodingError"},"Enums/DecodingError.html#/s:9Decodable13DecodingErrorO5otheryACs0C0_p_AC8MetadataVtcACmF":{"name":"other(_:_:)","abstract":"

When an error is thrown that isn’t DecodingError, it","parent_name":"DecodingError"},"Enums/DecodingError.html#/s:9Decodable13DecodingErrorO8metadataAC8MetadataVvp":{"name":"metadata","abstract":"

Undocumented

","parent_name":"DecodingError"},"Enums/DecodingError.html#/s:9Decodable13DecodingErrorO16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

Undocumented

","parent_name":"DecodingError"},"Enums/DecodingError.html":{"name":"DecodingError","abstract":"

Undocumented

"},"Enums.html":{"name":"Enumerations","abstract":"

The following enumerations are available globally.

"},"Extensions.html":{"name":"Extensions","abstract":"

The following extensions are available globally.

"},"Functions.html":{"name":"Functions","abstract":"

The following functions are available globally.

"},"Protocols.html":{"name":"Protocols","abstract":"

The following protocols are available globally.

"},"Structs.html":{"name":"Structures","abstract":"

The following structures are available globally.

"}} \ No newline at end of file diff --git a/docs/docsets/Decodable.docset/Contents/Resources/docSet.dsidx b/docs/docsets/Decodable.docset/Contents/Resources/docSet.dsidx new file mode 100644 index 0000000..b586eed Binary files /dev/null and b/docs/docsets/Decodable.docset/Contents/Resources/docSet.dsidx differ diff --git a/docs/docsets/Decodable.tgz b/docs/docsets/Decodable.tgz new file mode 100644 index 0000000..c7b6c57 Binary files /dev/null and b/docs/docsets/Decodable.tgz differ diff --git a/docs/img/carat.png b/docs/img/carat.png new file mode 100755 index 0000000..29d2f7f Binary files /dev/null and b/docs/img/carat.png differ diff --git a/docs/img/dash.png b/docs/img/dash.png new file mode 100755 index 0000000..6f694c7 Binary files /dev/null and b/docs/img/dash.png differ diff --git a/docs/img/gh.png b/docs/img/gh.png new file mode 100755 index 0000000..628da97 Binary files /dev/null and b/docs/img/gh.png differ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..7d8e6f9 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,931 @@ + + + + Decodable Reference + + + + + + + + + +
+
+

Decodable Docs (83% documented)

+
+
+
+ +
+
+ +
+
+
+ +

Decodable

+ +

Simple and strict, yet powerful object mapping made possible by Swift 2’s error handling. Greatly inspired by Argo, but without a bizillion functional operators.

+ +

Carthage compatible +Cocoapods version +Platforms +Travis

+

+struct Repository {
+    let name: String
+    let description: String
+    let stargazersCount: Int
+    let language: String?
+    let sometimesMissingKey: String?
+
+    let owner: User // Struct conforming to Decodable
+    let defaultBranch: Branch // Struct NOT conforming to Decodable
+
+    var fullName: String { return "\(owner.login)/\(name)" }
+}
+
+extension Repository: Decodable {
+    static func decode(j: Any) throws -> Repository {
+        return try Repository(
+                    name: j => "nested" => "name",
+                    description: j => "description",
+                    stargazersCount: j => "stargazers_count",
+                    language: j => "language",
+                    sometimesMissingKey: j =>? "sometimesMissingKey",
+                    owner: j => "owner",
+                    defaultBranch: Branch(name: j => "default_branch")
+                )
+    }
+}
+
+do {
+    let json = try NSJSONSerialization.JSONObjectWithData(data, options: [])
+    let repo = try [Repository].decode(json)
+} catch {
+    print(error)
+}
+
+

How does it work?

+

A protocol

+
public protocol Decodable {
+    static func decode(json: Any) throws -> Self
+}
+
+

A parse-function

+
public func parse<T>(json: Any, path: [String], decode: (Any throws -> T)) throws -> T
+
+

And shameless operator-overloading

+ +

The too-many generated overloads, all calling the parse-function, can be found in Overloads.swift. Return types include T?, [T?], [T?]?, Any and [String: T]?. When conditional protocol conformance is supported in Swift this won’t be necessary, and automatic decoding of infinitely nested generic types (like [[[[[[[[[A???]]: B]]]?]]?]]) would work.

+ +

An overload may look like this:

+
public func => <T: Decodable>(json: Any, keyPath: KeyPath) throws -> T
+
+

KeyPaths

+ +

Keypaths can be created from string and array literals as well as with explicit initializers. They can also be joined using the operators => and =>?. =>? is another operator that indicates that nil should be returned if the key to the right is missing.

+ +
    +
  • When composing => and =>? operators in the same keypath, the strictness of => is still honoured.
  • +
  • Optional key paths (=>?) require an optional return type
  • +
+
let a: KeyPath = "a"
+let b: KeyPath = ["a", "b"]
+let c: KeyPath = "a" => "b" => "c"
+let string: String? = json =>? "key1" => "key2" => "key3"`
+                                ^^^^ allowed to be missing
+
+

Errors

+ +

Errors will be caught and rethrown in the decoding process to backpropagate metadata, like the JSON object that failed decoding, the key path to it, and the root JSON object.

+ +

From DecodingError.swift:

+
public enum DecodingError: ErrorProtocol, Equatable {
+    /// Thrown when optional casting from `Any` fails.
+    ///
+    /// This can happen both when trying to access a key on a object
+    /// that isn't a `NSDictionary`, and failing to cast a `Castable`
+    /// primitive.
+    case typeMismatch(expected: Any.Type, actual: Any.Type, Metadata)
+
+    /// Thrown when a given, required, key was not found in a dictionary.
+    case missingKey(String, Metadata)
+
+    /// Thrown from the `RawRepresentable` extension when
+    /// `init(rawValue:)` returned `nil`.
+    case rawRepresentableInitializationError(rawValue: Any, Metadata)
+
+    /// When an error is thrown that isn't `DecodingError`, it
+    /// will be wrapped in `DecodingError.other` in order to also provide
+    /// metadata about where the error was thrown.
+    case other(ErrorProtocol, Metadata)
+}
+
+
let dict: NSDictionary = ["object": ["repo": ["owner": ["id" : 1, "login": "anviking"]]]]
+
+do {
+    let username: String = try dict => "object" => "repo" => "owner" => "name"
+} catch let error {
+    print(error)
+}
+//
+// MissingKeyError at object.repo.owner: name in {
+//    id = 1;
+//    login = anviking;
+// }
+
+

Handling Errors

+ +

Expressions like j => "key" will throw directly, and catch-statements can be used to create the most complex error handling behaviours. This also means that try? can be used to return nil if anything goes wrong instead of throwing.

+ +

For convenience there is an operator, =>?, that only returns nil on missing keys, for APIs that indicate null in that manner, and to aid working with different response formats.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OverloadNull BehaviourMissing Key BehaviorType Mismatch BehaviourErrors in subjects
=> -> Tthrowsthrowsthrowsuncaught (throws)
=> -> T?nilthrowsthrowsuncaught (throws)
=>? -> T?nilnilthrowsuncaught (throws)
try? => -> Tnilnilnilcaught (nil)
+

Customization

+ +

Int, Double,String, Bool, Date (ISO8601), NSArray, and NSDictionary types that conform to DynamicDecodable with the following declaration:

+
public protocol DynamicDecodable {
+    associatedtype DecodedType
+    static var decoder: (Any) throws -> DecodedType {get set}
+}
+
+ +

This allows Decodable to implement default decoding closures while allowing you to override them as needed.

+
// Lets extend Bool.decoder so that it accepts certain strings:
+Bool.decoder = { json in
+    switch json {
+    case let str as String where str == "true":
+        return true
+    case let str as String where str == "false":
+        return false
+    default:
+        return try cast(json)
+    }
+}
+
+ +

Note that when extending new types to conform to Decodable there is really no point in conforming to DynamicDecodable since you already control the implementation. Also note that the decoder properties are intended as set once. If you need different behaviour on different occasions, please create custom decode functions.

+ +

The default Date.decoder uses a ISO8601 date formatter. If you don’t want to create your own decode closure there’s a helper:

+
Date.decoder = Date.decoder(using: formatter)
+
+

When Decodable isn’t enough

+ +

Don’t be afraid of not conforming to Decodable.

+
let array = try NSArray.decode(json => "list").map {
+    try Contribution(json: $0, repository: repo)
+}
+
+

Tips

+ +
    +
  • You can use Decodable with classes. Just make sure to either call a required initializer on self (e.g self.init) and return Self, or make your class final. ( This might be a problem though)
  • +
  • The Decodable-protocol and the =>-operator should in no way make you committed to use them everywhere.
  • +
+

Compatibility

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Swift versionCompatible tag or branch
Swift 5.00.7.0
Swift 4.00.6.0
Swift 3.0v0.5
Swift 2.3v0.4.4
Swift 2.2v0.4.3
+

Note on Swift 4.0 usage

+ +

Due to collisions with the standard library you will have to import ambiguous symbols specifically, in addition to Decodable as a whole.

+ +

This means you likely want the following

+
import Decodable
+import protocol Decodable.Decodable
+
+ +

and you can import other symbols, e.g KeyPath, DecodingError, in a similar fashion (using import struct and import enum)

+ +
+
+ +
+
+ + + diff --git a/docs/js/jazzy.js b/docs/js/jazzy.js new file mode 100755 index 0000000..c31dc05 --- /dev/null +++ b/docs/js/jazzy.js @@ -0,0 +1,59 @@ +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +function toggleItem($link, $content) { + var animationDuration = 300; + $link.toggleClass('token-open'); + $content.slideToggle(animationDuration); +} + +function itemLinkToContent($link) { + return $link.parent().parent().next(); +} + +// On doc load + hash-change, open any targetted item +function openCurrentItemIfClosed() { + if (window.jazzy.docset) { + return; + } + var $link = $(`.token[href="${location.hash}"]`); + $content = itemLinkToContent($link); + if ($content.is(':hidden')) { + toggleItem($link, $content); + } +} + +$(openCurrentItemIfClosed); +$(window).on('hashchange', openCurrentItemIfClosed); + +// On item link ('token') click, toggle its discussion +$('.token').on('click', function(event) { + if (window.jazzy.docset) { + return; + } + var $link = $(this); + toggleItem($link, itemLinkToContent($link)); + + // Keeps the document from jumping to the hash. + var href = $link.attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Clicks on links to the current, closed, item need to open the item +$("a:not('.token')").on('click', function() { + if (location == this.href) { + openCurrentItemIfClosed(); + } +}); diff --git a/docs/js/jquery.min.js b/docs/js/jquery.min.js new file mode 100644 index 0000000..a1c07fd --- /dev/null +++ b/docs/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0Undocumented

","parent_name":"OptionalKeyPath"},"Structs/OptionalKeyPath.html#/s:s26ExpressibleByStringLiteralP06stringD0x0cD4TypeQz_tcfc":{"name":"init(stringLiteral:)","parent_name":"OptionalKeyPath"},"Structs/OptionalKeyPath.html#/s:s43ExpressibleByExtendedGraphemeClusterLiteralP08extendeddeF0x0cdeF4TypeQz_tcfc":{"name":"init(extendedGraphemeClusterLiteral:)","parent_name":"OptionalKeyPath"},"Structs/OptionalKeyPath.html#/s:s33ExpressibleByUnicodeScalarLiteralP07unicodedE0x0cdE4TypeQz_tcfc":{"name":"init(unicodeScalarLiteral:)","parent_name":"OptionalKeyPath"},"Structs/OptionalKeyPath.html#/s:s25ExpressibleByArrayLiteralP05arrayD0x0cD7ElementQzd_tcfc":{"name":"init(arrayLiteral:)","parent_name":"OptionalKeyPath"},"Structs/OptionalKey.html#/s:9Decodable11OptionalKeyV3keySSvp":{"name":"key","abstract":"

Undocumented

","parent_name":"OptionalKey"},"Structs/OptionalKey.html#/s:9Decodable11OptionalKeyV10isRequiredSbvp":{"name":"isRequired","abstract":"

Undocumented

","parent_name":"OptionalKey"},"Structs/OptionalKey.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"OptionalKey"},"Structs/KeyPath.html#/s:9Decodable7KeyPathV4keysSaySSGvp":{"name":"keys","abstract":"

Undocumented

","parent_name":"KeyPath"},"Structs/KeyPath.html#/s:9Decodable7KeyPathVyACSaySSGcfc":{"name":"init(_:)","abstract":"

Undocumented

","parent_name":"KeyPath"},"Structs/KeyPath.html#/s:9Decodable7KeyPathVyACSScfc":{"name":"init(_:)","abstract":"

Undocumented

","parent_name":"KeyPath"},"Structs/KeyPath.html#/s:s26ExpressibleByStringLiteralP06stringD0x0cD4TypeQz_tcfc":{"name":"init(stringLiteral:)","parent_name":"KeyPath"},"Structs/KeyPath.html#/s:s43ExpressibleByExtendedGraphemeClusterLiteralP08extendeddeF0x0cdeF4TypeQz_tcfc":{"name":"init(extendedGraphemeClusterLiteral:)","parent_name":"KeyPath"},"Structs/KeyPath.html#/s:s33ExpressibleByUnicodeScalarLiteralP07unicodedE0x0cdE4TypeQz_tcfc":{"name":"init(unicodeScalarLiteral:)","parent_name":"KeyPath"},"Structs/KeyPath.html#/s:s25ExpressibleByArrayLiteralP05arrayD0x0cD7ElementQzd_tcfc":{"name":"init(arrayLiteral:)","parent_name":"KeyPath"},"Structs/KeyPath.html":{"name":"KeyPath","abstract":"

KeyPath represents the path to a specific node in a tree of nested dictionaries.

"},"Structs/OptionalKey.html":{"name":"OptionalKey","abstract":"

A key in a keyPath that may or may not be required.

"},"Structs/OptionalKeyPath.html":{"name":"OptionalKeyPath","abstract":"

OptionalKeyPath represents the path to a specific node in a tree of nested dictionaries.

"},"Protocols/NSNumberCastable.html#/s:9Decodable16NSNumberCastableP11convertFromyxSo0B0CFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"NSNumberCastable"},"Protocols/NSNumberCastable.html#/s:9Decodable16NSNumberCastablePAAE6decodeyxypKFZ":{"name":"decode(_:)","abstract":"

Undocumented

","parent_name":"NSNumberCastable"},"Protocols/NSValueCastable.html#/s:9Decodable15NSValueCastablePAAE6decodeyxypKFZ":{"name":"decode(_:)","abstract":"

Undocumented

","parent_name":"NSValueCastable"},"Protocols/Decodable.html#/s:9DecodableAAP6decodeyxypKFZ":{"name":"decode(_:)","abstract":"

Undocumented

","parent_name":"Decodable"},"Protocols/DynamicDecodable.html#/s:9Decodable07DynamicA0P11DecodedTypeQa":{"name":"DecodedType","abstract":"

Undocumented

","parent_name":"DynamicDecodable"},"Protocols/DynamicDecodable.html#/s:9Decodable07DynamicA0P7decodery11DecodedTypeQzypKcvpZ":{"name":"decoder","abstract":"

A closure describing how this type should be decoded

","parent_name":"DynamicDecodable"},"Protocols/DynamicDecodable.html":{"name":"DynamicDecodable","abstract":"

Allows overriding default decode function from your app.

"},"Protocols/Decodable.html":{"name":"Decodable","abstract":"

Undocumented

"},"Protocols/NSValueCastable.html":{"name":"NSValueCastable","abstract":"

Provides a default implementation of decode() which casts the object to a NSValue and unsafely casts its value as Self.

"},"Protocols/NSNumberCastable.html":{"name":"NSNumberCastable","abstract":"

Used to enable decoding to different IntegerTypes from NSNumber.

"},"Functions.html#/s:9Decodable4castyxypKlF":{"name":"cast(_:)","abstract":"

Attempt to cast an Any to T or throw

"},"Functions.html#/s:9Decodable13decodeAsOneOf_11objectTypesA2A_pyp_A2A_pXpdtKF":{"name":"decodeAsOneOf(_:objectTypes:)","abstract":"

Attempt to decode one of multiple objects in order until: A: we get a positive match, B: we throw an exception if the last object does not decode

"},"Functions.html#/s:9Decodable18decodeArrayAsOneOf_11objectTypesSayA2A_pGyp_A2A_pXpdtKF":{"name":"decodeArrayAsOneOf(_:objectTypes:)","abstract":"

Attempt to decode one of multiple objects in order until: A: we get a positive match, B: we throw an exception if the last object does not decode

"},"Functions.html#/s:9Decodable2teoiySbxm_ypXptlF":{"name":"~=(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2eeoiySbAA13DecodingErrorO8MetadataV_AFtF":{"name":"==(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2eeoiySbAA13DecodingErrorO_ADtF":{"name":"==(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2eeoiySbAA7KeyPathV_ADtF":{"name":"==(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2egoiyypyp_AA7KeyPathVtKF":{"name":"=>(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable3egqoiyypSgyp_AA15OptionalKeyPathVtKF":{"name":"=>?(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2egoiyAA7KeyPathVAD_ADtF":{"name":"=>(_:_:)","abstract":"

Enables parsing nested objects e.g json => a => b

"},"Functions.html#/s:9Decodable2egoiyAA15OptionalKeyPathVAD_ADtF":{"name":"=>(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable3egqoiyAA15OptionalKeyPathVAD_ADtF":{"name":"=>?(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2egoiyAA15OptionalKeyPathVAD_AA0dE0VtF":{"name":"=>(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable3egqoiyAA15OptionalKeyPathVAA0dE0V_ADtF":{"name":"=>?(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2eeoiySbAA11OptionalKeyV_ADtF":{"name":"==(_:_:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable2egoiySaySayxGSgGSgyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxq_GSgGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySayxSgGSgyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySayxSgGGSgyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySayxGGGSgyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySDyxq_GGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySayxGGSgyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxq_SgGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSayq_GGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSDyq_q0_GGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxq_GGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySayxGSgyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSayq_GSgGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_q0_GSgGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxq_SgGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSayq_SgGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySayq_GGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySDyq_q0_GGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSayq_GGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_q0_SgGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_Sayq0_GGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SDyq0_q1_GGGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_q0_GGSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxq_GSgyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiyxSgyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySayxSgGSgGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySayxGGSgGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySDyxq_GGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySayxGSgGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxq_SgGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSayq_GGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSDyq_q0_GGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxq_GSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySayxSgGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySayxGSgGGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySDyxq_GSgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySayxSgGGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySayxSgGGGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySaySayxGGGGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySaySDyxq_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySayxGGGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySDyxq_SgGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySDyxSayq_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySDyxSDyq_q0_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySaySDyxq_GGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySayxGGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSayq_GSgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSDyq_q0_GSgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxq_SgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSayq_SgGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSaySayq_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSaySDyq_q0_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSayq_GGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSDyq_q0_SgGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSDyq_Sayq0_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSDyq_SDyq0_q1_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxSDyq_q0_GGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySaySDyxq_GGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySayxGyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSayq_SgGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySayq_GGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySDyq_q0_GGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSayq_GSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_q0_SgGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_Sayq0_GGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SDyq0_q1_GGSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_q0_GSgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxq_SgGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySayq_GSgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySDyq_q0_GSgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSayq_SgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySayq_SgGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySaySayq_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySaySDyq_q0_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySayq_GGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySDyq_q0_SgGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySDyq_Sayq0_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySDyq_SDyq0_q1_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSaySDyq_q0_GGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSayq_GGyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_Sayq0_GSgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SDyq0_q1_GSgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_q0_SgGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_Sayq0_SgGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SaySayq0_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SaySDyq0_q1_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_Sayq0_GGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SDyq0_q1_SgGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SDyq0_Sayq1_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SDyq0_SDyq1_q2_GGGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_SHR1_A2AR2_r3_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_SDyq0_q1_GGGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxSDyq_q0_GGyp_AA7KeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiySDyxq_Gyp_AA7KeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable2egoiyxyp_AA7KeyPathVtKA2ARzlF":{"name":"=>(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySayxSgGSgGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySayxGGSgGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySDyxq_GGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySayxGSgGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxq_SgGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSayq_GGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSDyq_q0_GGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxq_GSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySayxSgGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySayxGSgGGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySDyxq_GSgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySayxSgGGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySayxSgGGGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySaySayxGGGGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySaySDyxq_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySayxGGGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySDyxq_SgGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySDyxSayq_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySDyxSDyq_q0_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySaySDyxq_GGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySayxGGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSayq_GSgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSDyq_q0_GSgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxq_SgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSayq_SgGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSaySayq_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSaySDyq_q0_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSayq_GGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSDyq_q0_SgGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSDyq_Sayq0_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSDyq_SDyq0_q1_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxSDyq_q0_GGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySaySDyxq_GGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySayxGSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSayq_SgGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySayq_GGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySDyq_q0_GGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSayq_GSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_q0_SgGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_Sayq0_GGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SDyq0_q1_GGSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_q0_GSgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxq_SgGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySayq_GSgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySDyq_q0_GSgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSayq_SgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySayq_SgGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySaySayq_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySaySDyq_q0_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySayq_GGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySDyq_q0_SgGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySDyq_Sayq0_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySDyq_SDyq0_q1_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSaySDyq_q0_GGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSayq_GGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_Sayq0_GSgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SDyq0_q1_GSgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_q0_SgGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_Sayq0_SgGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SaySayq0_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SaySDyq0_q1_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_Sayq0_GGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SDyq0_q1_SgGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SDyq0_Sayq1_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SDyq0_SDyq1_q2_GGGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_SHR1_A2AR2_r3_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_SDyq0_q1_GGGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_SHR0_A2AR1_r2_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxSDyq_q0_GGSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_SHR_A2AR0_r1_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiySDyxq_GSgyp_AA15OptionalKeyPathVtKA2ARzSHRzA2AR_r0_lF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable3egqoiyxSgyp_AA15OptionalKeyPathVtKA2ARzlF":{"name":"=>?(_:_:)","abstract":"

Retrieves the object at path from json and decodes it according to the return type

"},"Functions.html#/s:9Decodable5parse_7keyPath7decoderxyp_AA03KeyD0VxypKXEtKlF":{"name":"parse(_:keyPath:decoder:)","abstract":"

Undocumented

"},"Functions.html#/s:9Decodable5parse_7keyPath7decoderxSgyp_AA011OptionalKeyD0VAEypKXEtKlF":{"name":"parse(_:keyPath:decoder:)","abstract":"

Undocumented

"},"Extensions/RawRepresentable.html#/s:SY9DecodableA2ARzA2A8RawValueSYRpzrlE6decodeyxypKFZ":{"name":"decode(_:)","abstract":"

Undocumented

","parent_name":"RawRepresentable"},"Extensions/UInt8.html#/s:s5UInt8V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"UInt8"},"Extensions/UInt16.html#/s:s6UInt16V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"UInt16"},"Extensions/UInt32.html#/s:s6UInt32V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt64.html#/s:s6UInt64V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/Int8.html#/s:s4Int8V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"Int8"},"Extensions/Int16.html#/s:s5Int16V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"Int16"},"Extensions/Int32.html#/s:s5Int32V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int64.html#/s:s5Int64V9DecodableE11convertFromyABSo8NSNumberCFZ":{"name":"convertFrom(_:)","abstract":"

Undocumented

","parent_name":"Int64"},"Extensions/Array.html#/s:Sa9DecodableA2ARzlE6decode_20ignoreInvalidObjectsSayxGyp_SbtKFZ":{"name":"decode(_:ignoreInvalidObjects:)","abstract":"

Undocumented

","parent_name":"Array"},"Extensions/Array.html#/s:Sa9DecodableE7decoderySayxGypKcxypKcFZ":{"name":"decoder(_:)","abstract":"

Creates an array decoder from an element decoder

","parent_name":"Array"},"Extensions/Dictionary.html#/s:SD9DecodableA2ARzA2AR_rlE6decodeySDyxq_GypKFZ":{"name":"decode(_:)","abstract":"

Undocumented

","parent_name":"Dictionary"},"Extensions/Dictionary.html#/s:SD9DecodableE7decoder3key5valueSDyxq_GypKcxypKc_q_ypKctFZ":{"name":"decoder(key:value:)","abstract":"

Create a dictionary decoder from key- and value- decoders

","parent_name":"Dictionary"},"Extensions/URL.html#/s:9Decodable07DynamicA0P7decodery11DecodedTypeQzypKcvpZ":{"name":"decoder","parent_name":"URL"},"Extensions/NSArray.html#/s:9Decodable07DynamicA0P7decodery11DecodedTypeQzypKcvpZ":{"name":"decoder","parent_name":"NSArray"},"Extensions/NSArray.html#/s:So7NSArrayC9DecodableE6decodeyABypKFZ":{"name":"decode(_:)","abstract":"

Undocumented

","parent_name":"NSArray"},"Extensions/NSDictionary.html#/s:So12NSDictionaryC9DecodableE6decodeyABXDypKFZ":{"name":"decode(_:)","abstract":"

Undocumented

","parent_name":"NSDictionary"},"Extensions/Date.html#/s:10Foundation4DateV9DecodableE7decoderyACypKcvpZ":{"name":"decoder","abstract":"

Default decoder is Date.decoder(using: iso8601DateFormatter)

","parent_name":"Date"},"Extensions/Date.html#/s:10Foundation4DateV9DecodableE7decoder5usingACypKcSo15NSDateFormatterC_tFZ":{"name":"decoder(using:)","abstract":"

Create a decode closure using a given formatter

","parent_name":"Date"},"Extensions/Bool.html#/s:9Decodable07DynamicA0P7decodery11DecodedTypeQzypKcvpZ":{"name":"decoder","parent_name":"Bool"},"Extensions/Double.html#/s:9Decodable07DynamicA0P7decodery11DecodedTypeQzypKcvpZ":{"name":"decoder","parent_name":"Double"},"Extensions/Int.html#/s:9Decodable07DynamicA0P7decodery11DecodedTypeQzypKcvpZ":{"name":"decoder","parent_name":"Int"},"Extensions/String.html#/s:9Decodable07DynamicA0P7decodery11DecodedTypeQzypKcvpZ":{"name":"decoder","parent_name":"String"},"Extensions/String.html":{"name":"String"},"Extensions/Int.html":{"name":"Int"},"Extensions/Double.html":{"name":"Double"},"Extensions/Bool.html":{"name":"Bool"},"Extensions/Date.html":{"name":"Date"},"Extensions/NSDictionary.html":{"name":"NSDictionary"},"Extensions/NSArray.html":{"name":"NSArray"},"Extensions/URL.html":{"name":"URL"},"Extensions/Dictionary.html":{"name":"Dictionary"},"Extensions/Array.html":{"name":"Array"},"Extensions/Int64.html":{"name":"Int64"},"Extensions/Int32.html":{"name":"Int32"},"Extensions/Int16.html":{"name":"Int16"},"Extensions/Int8.html":{"name":"Int8"},"Extensions/UInt64.html":{"name":"UInt64"},"Extensions/UInt32.html":{"name":"UInt32"},"Extensions/UInt16.html":{"name":"UInt16"},"Extensions/UInt8.html":{"name":"UInt8"},"Extensions/RawRepresentable.html":{"name":"RawRepresentable","abstract":"

Extends all RawRepresentables (enums) which are also Decodable with decode implementation.

"},"Enums/DecodingError/Metadata.html#/s:9Decodable13DecodingErrorO8MetadataV4path6object10rootObjectAESaySSG_ypypSgtcfc":{"name":"init(path:object:rootObject:)","abstract":"

Undocumented

","parent_name":"Metadata"},"Enums/DecodingError/Metadata.html#/s:9Decodable13DecodingErrorO8MetadataV4pathSaySSGvp":{"name":"path","abstract":"

The JSON key path to the object that failed to be decoded

","parent_name":"Metadata"},"Enums/DecodingError/Metadata.html#/s:9Decodable13DecodingErrorO8MetadataV6objectypvp":{"name":"object","abstract":"

The JSON object that failed to be decoded

","parent_name":"Metadata"},"Enums/DecodingError/Metadata.html#/s:9Decodable13DecodingErrorO8MetadataV10rootObjectypSgvp":{"name":"rootObject","abstract":"

The root JSON object for which the path can be used to find object

","parent_name":"Metadata"},"Enums/DecodingError/Metadata.html#/s:9Decodable13DecodingErrorO8MetadataV13formattedPathSSvp":{"name":"formattedPath","abstract":"

Represents the path to the object that failed decoding with . as a separator.

","parent_name":"Metadata"},"Enums/DecodingError/Metadata.html":{"name":"Metadata","abstract":"

DecodingError.Metadata provides information about","parent_name":"DecodingError"},"Enums/DecodingError.html#/s:9Decodable13DecodingErrorO12typeMismatchyACypXp_ypXpAC8MetadataVtcACmF":{"name":"typeMismatch(expected:actual:_:)","abstract":"

Thrown when optional casting from Any fails.

","parent_name":"DecodingError"},"Enums/DecodingError.html#/s:9Decodable13DecodingErrorO10missingKeyyACSS_AC8MetadataVtcACmF":{"name":"missingKey(_:_:)","abstract":"

Thrown when a given, required, key was not found in a dictionary.

","parent_name":"DecodingError"},"Enums/DecodingError.html#/s:9Decodable13DecodingErrorO030rawRepresentableInitializationC0yACyp_AC8MetadataVtcACmF":{"name":"rawRepresentableInitializationError(rawValue:_:)","abstract":"

Thrown from the RawRepresentable extension when","parent_name":"DecodingError"},"Enums/DecodingError.html#/s:9Decodable13DecodingErrorO5otheryACs0C0_p_AC8MetadataVtcACmF":{"name":"other(_:_:)","abstract":"

When an error is thrown that isn’t DecodingError, it","parent_name":"DecodingError"},"Enums/DecodingError.html#/s:9Decodable13DecodingErrorO8metadataAC8MetadataVvp":{"name":"metadata","abstract":"

Undocumented

","parent_name":"DecodingError"},"Enums/DecodingError.html#/s:9Decodable13DecodingErrorO16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

Undocumented

","parent_name":"DecodingError"},"Enums/DecodingError.html":{"name":"DecodingError","abstract":"

Undocumented

"},"Enums.html":{"name":"Enumerations","abstract":"

The following enumerations are available globally.

"},"Extensions.html":{"name":"Extensions","abstract":"

The following extensions are available globally.

"},"Functions.html":{"name":"Functions","abstract":"

The following functions are available globally.

"},"Protocols.html":{"name":"Protocols","abstract":"

The following protocols are available globally.

"},"Structs.html":{"name":"Structures","abstract":"

The following structures are available globally.

"}} \ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json new file mode 100644 index 0000000..5211ccc --- /dev/null +++ b/docs/undocumented.json @@ -0,0 +1,313 @@ +{ + "warnings": [ + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Castable.swift", + "line": 26, + "symbol": "DynamicDecodable.DecodedType", + "symbol_kind": "source.lang.swift.decl.associatedtype", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Castable.swift", + "line": 38, + "symbol": "Decodable.decode(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Castable.swift", + "line": 89, + "symbol": "NSDictionary.decode(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Castable.swift", + "line": 96, + "symbol": "NSArray.decode(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Decodable.swift", + "line": 11, + "symbol": "Decodable", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Decodable.swift", + "line": 12, + "symbol": "Decodable.decode(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Decodable.swift", + "line": 17, + "symbol": "Dictionary.decode(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Decodable.swift", + "line": 35, + "symbol": "Array.decode(_:ignoreInvalidObjects:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Decodable.swift", + "line": 37, + "symbol": "Decodable", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/DecodingError.swift", + "line": 11, + "symbol": "DecodingError", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/DecodingError.swift", + "line": 18, + "symbol": "DecodingError.Metadata.init(path:object:rootObject:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/DecodingError.swift", + "line": 58, + "symbol": "DecodingError.metadata", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/DecodingError.swift", + "line": 87, + "symbol": "DecodingError.debugDescription", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/DecodingError.swift", + "line": 107, + "symbol": "~=(_:_:)", + "symbol_kind": "source.lang.swift.decl.function.free", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/DecodingError.swift", + "line": 112, + "symbol": "==(_:_:)", + "symbol_kind": "source.lang.swift.decl.function.free", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/DecodingError.swift", + "line": 118, + "symbol": "==(_:_:)", + "symbol_kind": "source.lang.swift.decl.function.free", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/KeyPath.swift", + "line": 21, + "symbol": "KeyPath.keys", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/KeyPath.swift", + "line": 23, + "symbol": "KeyPath.init(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/KeyPath.swift", + "line": 27, + "symbol": "KeyPath.init(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/KeyPath.swift", + "line": 54, + "symbol": "==(_:_:)", + "symbol_kind": "source.lang.swift.decl.function.free", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/NSValueCastable.swift", + "line": 12, + "symbol": "Int64.convertFrom(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/NSValueCastable.swift", + "line": 15, + "symbol": "Int32.convertFrom(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/NSValueCastable.swift", + "line": 18, + "symbol": "Int16.convertFrom(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/NSValueCastable.swift", + "line": 21, + "symbol": "Int8.convertFrom(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/NSValueCastable.swift", + "line": 24, + "symbol": "UInt64.convertFrom(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/NSValueCastable.swift", + "line": 27, + "symbol": "UInt32.convertFrom(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/NSValueCastable.swift", + "line": 30, + "symbol": "UInt16.convertFrom(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/NSValueCastable.swift", + "line": 33, + "symbol": "UInt8.convertFrom(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/NSValueCastable.swift", + "line": 41, + "symbol": "NSNumberCastable.convertFrom(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/NSValueCastable.swift", + "line": 46, + "symbol": "NSValueCastable.decode(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/NSValueCastable.swift", + "line": 56, + "symbol": "NSNumberCastable.decode(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Operators.swift", + "line": 21, + "symbol": "=>(_:_:)", + "symbol_kind": "source.lang.swift.decl.function.free", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Operators.swift", + "line": 26, + "symbol": "=>?(_:_:)", + "symbol_kind": "source.lang.swift.decl.function.free", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Operators.swift", + "line": 38, + "symbol": "=>(_:_:)", + "symbol_kind": "source.lang.swift.decl.function.free", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Operators.swift", + "line": 42, + "symbol": "=>?(_:_:)", + "symbol_kind": "source.lang.swift.decl.function.free", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Operators.swift", + "line": 46, + "symbol": "=>(_:_:)", + "symbol_kind": "source.lang.swift.decl.function.free", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Operators.swift", + "line": 51, + "symbol": "=>?(_:_:)", + "symbol_kind": "source.lang.swift.decl.function.free", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/OptionalKeyPath.swift", + "line": 17, + "symbol": "OptionalKey.key", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/OptionalKeyPath.swift", + "line": 18, + "symbol": "OptionalKey.isRequired", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/OptionalKeyPath.swift", + "line": 48, + "symbol": "OptionalKeyPath.keys", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/OptionalKeyPath.swift", + "line": 89, + "symbol": "==(_:_:)", + "symbol_kind": "source.lang.swift.decl.function.free", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Parse.swift", + "line": 45, + "symbol": "parse(_:keyPath:decoder:)", + "symbol_kind": "source.lang.swift.decl.function.free", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/Parse.swift", + "line": 51, + "symbol": "parse(_:keyPath:decoder:)", + "symbol_kind": "source.lang.swift.decl.function.free", + "warning": "undocumented" + }, + { + "file": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable/Sources/RawRepresentableDecodable.swift", + "line": 17, + "symbol": "RawRepresentable.decode(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + } + ], + "source_directory": "/Users/mattielloj/Workspace/REEL/Frameworks/Decodable" +} \ No newline at end of file