diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 5b0820f..2a9aabc 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -8,7 +8,7 @@ PODS: - FBSnapshotTestCase/SwiftSupport (2.1.4): - FBSnapshotTestCase/Core - HandyJSON (5.0.0-beta.1) - - SmartCodable (4.1.6) + - SmartCodable (4.1.7) - SnapKit (5.6.0) DEPENDENCIES: @@ -39,7 +39,7 @@ SPEC CHECKSUMS: CleanJSON: 910a36465ce4829e264a902ccf6d1455fdd9f980 FBSnapshotTestCase: 094f9f314decbabe373b87cc339bea235a63e07a HandyJSON: 582477127ab3ab65bd2e471815f1a7b846856978 - SmartCodable: 3dfe748436ce6ccf6a8f04e48171d8d7a3d7b879 + SmartCodable: d7272960c97bda49603b864be8453284de095f71 SnapKit: e01d52ebb8ddbc333eefe2132acf85c8227d9c25 PODFILE CHECKSUM: 7f3af03f81934df0c035518074a7abbec8fa9d3f diff --git a/Example/Pods/Local Podspecs/SmartCodable.podspec.json b/Example/Pods/Local Podspecs/SmartCodable.podspec.json index 77389e8..444eca2 100644 --- a/Example/Pods/Local Podspecs/SmartCodable.podspec.json +++ b/Example/Pods/Local Podspecs/SmartCodable.podspec.json @@ -1,6 +1,6 @@ { "name": "SmartCodable", - "version": "4.1.6", + "version": "4.1.7", "summary": "数据解析库", "homepage": "https://github.com/intsig171", "license": { @@ -12,7 +12,7 @@ }, "source": { "git": "https://github.com/intsig171/SmartCodable.git", - "tag": "4.1.6" + "tag": "4.1.7" }, "platforms": { "ios": "11.0", diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 5b0820f..2a9aabc 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -8,7 +8,7 @@ PODS: - FBSnapshotTestCase/SwiftSupport (2.1.4): - FBSnapshotTestCase/Core - HandyJSON (5.0.0-beta.1) - - SmartCodable (4.1.6) + - SmartCodable (4.1.7) - SnapKit (5.6.0) DEPENDENCIES: @@ -39,7 +39,7 @@ SPEC CHECKSUMS: CleanJSON: 910a36465ce4829e264a902ccf6d1455fdd9f980 FBSnapshotTestCase: 094f9f314decbabe373b87cc339bea235a63e07a HandyJSON: 582477127ab3ab65bd2e471815f1a7b846856978 - SmartCodable: 3dfe748436ce6ccf6a8f04e48171d8d7a3d7b879 + SmartCodable: d7272960c97bda49603b864be8453284de095f71 SnapKit: e01d52ebb8ddbc333eefe2132acf85c8227d9c25 PODFILE CHECKSUM: 7f3af03f81934df0c035518074a7abbec8fa9d3f diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index c53774b..0a8d970 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -9,7 +9,6 @@ /* Begin PBXBuildFile section */ 0081DCBC76F13C6AC51BC74BAA8B2A49 /* CleanJSONKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 555C1F46B8C3D9749B4FADF32ED4458D /* CleanJSONKey.swift */; }; 00A2749F46C967ED4725A32357E3FB1B /* ConstraintLayoutSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 544353E196F6C41D2674EF54DDCED631 /* ConstraintLayoutSupport.swift */; }; - 013C61C7AB20B02E2FCC1573F5A4DB71 /* JSONValue+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C9909368B615A605A5844EA2A3B5775 /* JSONValue+Extension.swift */; }; 02560F1312F13EF15E0EB5FA952C9A48 /* PointerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D5AD1AE1022A579A49D4DE848C3C5D9 /* PointerType.swift */; }; 044973538553B114516678D144E318CA /* Serializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FD01EC1237ED966BE6C99E868971093 /* Serializer.swift */; }; 04637C70546B34F93C3A1D79C3F78B37 /* ConstraintDirectionalInsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = C53C2DBE2FECF12DA6C33264A027EC82 /* ConstraintDirectionalInsetTarget.swift */; }; @@ -17,15 +16,14 @@ 047D3D772E8DDA418069EFA573B36BD2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; 0591132B5EA1BE4DDA268D8A9C3D0421 /* LayoutConstraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D532B60E5A862BAED6B9ED6A3A06F7 /* LayoutConstraint.swift */; }; 06E43B4751069B47B3BD4AFD936A57E3 /* ConstraintPriority.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B1648D17E6B6A33B54A7906BC560E10 /* ConstraintPriority.swift */; }; - 07AC0FB4179F34F0A4ED051F601070ED /* JSONEncoderImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = A55888C63C71B327F88486B6AD7AB1E3 /* JSONEncoderImpl.swift */; }; 0833E66E7F19849322305D67777B77DB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; - 08CAB9B3C2F12E5DF90C17DB254E7FBC /* SmartAnyImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24969EF227BB11FD7DCCE6A7EED44FB8 /* SmartAnyImpl.swift */; }; + 09C640A3D8D231523EA022E9C914914A /* IgnoredKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F799AB967E9C5B183338194DF9975B /* IgnoredKey.swift */; }; 0B994CDC79B1AD3A7BE62490D27C60C8 /* ConstraintAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3DD3A510DCBD287B46973C5625A7FB1 /* ConstraintAttributes.swift */; }; 0F4D0B7B522466B970AA826F57343EFF /* DataTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC6DB121D8A9523A91FDAB8376BE09FD /* DataTransform.swift */; }; - 0F9B0D1B76623E11A3D6519C22B611CE /* EncodingCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FF6C295EA60F3701557941049EF920D /* EncodingCache.swift */; }; + 11890AF7730428D891E2A738069AA93D /* DecodingCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85AA1A9803E90CE6BC7ADDF5965F33F7 /* DecodingCache.swift */; }; 121A1E851C4ED624C40C631C653B12A6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; 123E6BAD784E74477DC5B5CFF0272759 /* AnyExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDD07779AA8B42688ED0FF74BACC5AA5 /* AnyExtensions.swift */; }; - 159AB179614C943355E6E2AF0297264A /* JSONDecoderImpl+SingleValueContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D0D5E5E2D70AF1A76D21A758DE2445 /* JSONDecoderImpl+SingleValueContainer.swift */; }; + 170D20E76ED47F45049C0DCB695E6B3F /* SmartJSONEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21F733C10404C35E050A56B18417CB90 /* SmartJSONEncoder.swift */; }; 17B9A1C9CB9555CF5C3D70318BD98BFF /* BTBubble+Check.swift in Sources */ = {isa = PBXBuildFile; fileRef = 319CD0A8663A00A572B4418C10FE8894 /* BTBubble+Check.swift */; }; 183D8B3E057B885EA7DF9A8CDCCE9029 /* ConstraintMakerRelatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD311A04C42FFDF8D95E30DC09B7EA57 /* ConstraintMakerRelatable.swift */; }; 19BB09AF94BD545E40C2766045BDDD77 /* ExtendCustomBasicType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63337F29437FD6A05DCA6E50C4DF6945 /* ExtendCustomBasicType.swift */; }; @@ -37,45 +35,44 @@ 20B4141230DED5149833C6554AFC8EFB /* _CleanJSONDecoder+SingleValueDecodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DAD6DAD58F97DC6978669ECC1DCB217 /* _CleanJSONDecoder+SingleValueDecodingContainer.swift */; }; 220D6AC9B1B1EC8EFFB204F9C1EAC842 /* ConstraintMakerEditable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B3CBC4CFD3D5E9ABDC56DDC685EACE4 /* ConstraintMakerEditable.swift */; }; 2307EFF154B93A7CF3BBD066F9D2479E /* Pods-SmartCodable_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E5FA84A6FC991F1497F1DC0F7EA5CAD8 /* Pods-SmartCodable_Tests-dummy.m */; }; - 24136790AF1DEE88A30D3BA6DE370E45 /* JSONSingleValueEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2743D2660B497CF9171B80049A6254B2 /* JSONSingleValueEncodingContainer.swift */; }; 24658CFD39BCB4586D56C427F8EA751D /* BuiltInBasicType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B6822011E346FDFA44C5A0CAB94482 /* BuiltInBasicType.swift */; }; + 24B8F3340BBB1B99480144E954E7BFF7 /* KeysMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = E190016CCA3DDEB92796FF25B0FE692A /* KeysMapper.swift */; }; + 254138EDA641C82997944A4ED0832F22 /* JSONUnkeyedEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD3AEF84831817C3EBACB964BD25C970 /* JSONUnkeyedEncodingContainer.swift */; }; 256558233B40ACA6818F143BBC5B8017 /* ConstraintViewDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = C958AC7215CB092EEC6FA33BD843AC29 /* ConstraintViewDSL.swift */; }; 2878735FE61E1EEB4C493A8B8ED3DCAC /* EnumType.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC81D310210EE3584DF75E7C318F9318 /* EnumType.swift */; }; - 2895ACE62FE1FA3E290D52004E37AB4D /* JSONValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFDCC5CEBBCB596FEFDC2C47EFD224AC /* JSONValue.swift */; }; - 2966B8EEA17158539FE30D293A39375C /* SmartCodable-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 53D51F602C52F04F5CB71BE0F8551F93 /* SmartCodable-dummy.m */; }; 2975A09730FD83DC0897129A11EA6585 /* SwiftSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992A16CABA4C83CBEACADDABDE5021A8 /* SwiftSupport.swift */; }; + 299EB3042DC7AFAAB850F558532DE8F9 /* SmartJSONDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A02695CA5BA14EF7D6013FAB142889E /* SmartJSONDecoder.swift */; }; 2B88C28DD20CBFA7B3AEB21A365197FE /* FBSnapshotTestController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A29F6A0D45AF40A67824A0487C3A989 /* FBSnapshotTestController.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2CB61F6FA511CAACB43A50DC3A82E0DD /* UIImage+Snapshot.m in Sources */ = {isa = PBXBuildFile; fileRef = 02B734C740F66C4CA7D3E58A2E3A71ED /* UIImage+Snapshot.m */; }; - 2D2F2BAFE5611BB96976F2185EB03511 /* SmartJSONEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21F733C10404C35E050A56B18417CB90 /* SmartJSONEncoder.swift */; }; + 2CCD17EC8A650B81A117878EBBCF4251 /* SmartUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4844C3AE5731C372261F2F1D5129A42C /* SmartUpdater.swift */; }; + 2D9190CD7E6DD720A73A411AADC89BF1 /* JSONDecoderImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA9FC7AECDB148E561AD475BE6D72FA /* JSONDecoderImpl.swift */; }; 2ECCAC52EF4C74E1032E0BC646BBE5B9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; 302638AD965D971A268A2114F7742607 /* CleanJSONUnkeyedDecodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39B2DBA2FFE481C74723D3D77C1C4151 /* CleanJSONUnkeyedDecodingContainer.swift */; }; 309C54EC9536180B960B9CB8EBD412E3 /* CustomDateFormatTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADDD58F0A7F5CBCD84256A572196E486 /* CustomDateFormatTransform.swift */; }; 30D475DF57C0C682A723231E7BCA0D14 /* FBSnapshotTestCasePlatform.m in Sources */ = {isa = PBXBuildFile; fileRef = B3CC75B7FCBD0A88F04962B84E46D054 /* FBSnapshotTestCasePlatform.m */; }; 31BBDE6D8EF669C30F5140D8058DCC76 /* CleanDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8F06552F963B43848600AFDC8043A19 /* CleanDecoder.swift */; }; - 32F6DCA1F390EB6D2973DBF49C9EAA66 /* SmartDecodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA316868E83DD6B6EB31EB4B0A87EB90 /* SmartDecodable.swift */; }; - 33BA6D881AC5CF8F347D373109419FCA /* JSONDecoderImpl+UnkeyedContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4029C0B17EFBDE1152B5552BF24A06B7 /* JSONDecoderImpl+UnkeyedContainer.swift */; }; 33BC540DE351661FAAA24950E165D4F1 /* MangledName.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B6AE0B9AEB52789C2BA9C70151E337A /* MangledName.swift */; }; - 34CADE3C501DDDBC611372FFC47EB76B /* SmartFlat.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA355F56591A4B2ED4948A641503D5A6 /* SmartFlat.swift */; }; 361EA7ABBDD80F154DDC208D9CE920DD /* Deserializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E274A3EAC25DB6D5C25C3CBB604248B /* Deserializer.swift */; }; 3660B4F629053ABC3C1DF69366770289 /* ConstraintConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 077FF679DE0A788D695D32FCF72B1002 /* ConstraintConfig.swift */; }; - 371BFCDF9A11633A7CB4B2764A1221AF /* SmartCodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D78AA8B32A754F35A8C0EBB9F75CBBD /* SmartCodable.swift */; }; + 3700889891FFF72B524FD268347E6CB2 /* SmartColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B5A4B099D6B6C19273025A7E4BC6B7B /* SmartColor.swift */; }; 373413256658309F9053CE22BF62077E /* UIImage+Snapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 60B0F726C42000735EC1B76226554746 /* UIImage+Snapshot.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 37AEE543E1F06554044E1CE36AA0B4BC /* SmartCaseDefaultable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9741C9099C80C82AA38386510EE0634D /* SmartCaseDefaultable.swift */; }; + 37DDC069AE25734DCDE5C45BD3E824CE /* DateTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 872A303F84F8E2A8F34473198AC0ABAB /* DateTransformer.swift */; }; 380F4FCB4A16A8BEE8C65EDDA025FEF3 /* _CleanJSONDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07ADF3C4B3DE46FA90A67725C575E757 /* _CleanJSONDecoder.swift */; }; 38B9D58E94D9C1CECD7E381C64A2329D /* UILayoutSupport+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F3C77A10532266D4C2017D4C5657D22 /* UILayoutSupport+Extensions.swift */; }; 3A030CA5A4DD41F59802F907A93F85DF /* HexColorTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36F93E9634821D816540140F7E1D6199 /* HexColorTransform.swift */; }; - 3A0937ECAED04E938FE1E16DF0209E0D /* JSONDecoderImpl+Unwrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFAAAA2A05697972C00F916E0614A16D /* JSONDecoderImpl+Unwrap.swift */; }; + 3B9DCA7CD6FF36287D93FF80C2AC0BB1 /* JSONDecoderImpl+SingleValueContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE3994DC269F18D22356B445B6E38226 /* JSONDecoderImpl+SingleValueContainer.swift */; }; 3C53583CB1A5F4926491D8838F580074 /* BuiltInBridgeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E920302DBA2124AFF869243E5CB6351 /* BuiltInBridgeType.swift */; }; - 3CF857EAB8F74243C4C7C38BD8954280 /* LogCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4006851427C999AD7B42576C9ED35269 /* LogCache.swift */; }; + 4061431910C9FF38677270D70B2D90A9 /* Patcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F56CDCDED62FFB08323F03A9F714B3 /* Patcher.swift */; }; 409FF499AEF8324ABFBA13C7A68D6349 /* BTBubble-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CAE8816531C7030F85857D829CF295C /* BTBubble-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 41DDA49D77D3CBB4415B586999AA4A00 /* Patcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F56CDCDED62FFB08323F03A9F714B3 /* Patcher.swift */; }; 42B6ACFCF650183030867CB3EF345E95 /* ConstraintMakerFinalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB1035777F9D0FAD25F91B78CF571685 /* ConstraintMakerFinalizable.swift */; }; - 4493786E35DF7EA198671E0A821BD841 /* JSONUnkeyedEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD3AEF84831817C3EBACB964BD25C970 /* JSONUnkeyedEncodingContainer.swift */; }; + 46299168D10E2826AFE4033D4EB3D4E7 /* ColorTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1538EE2E56D54D12D82A50CC1358E5F /* ColorTransformer.swift */; }; + 46A2608FE28FE830D89FF68BC66174F8 /* SmartAny.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0CEE409E4A4D2FDA4F0F3586EBE7D61 /* SmartAny.swift */; }; 46BD19D7708E8AAA015506480ED796A5 /* BTPrint-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 926AFEC77F93BCAD652BB781C5D0AA8C /* BTPrint-dummy.m */; }; - 4AFC95F0D6024931206B027D96162B85 /* Transformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F22E01957313DD33E69A20A61F7ADBB /* Transformer.swift */; }; 4BAD99B7394E225CEDBF94B8100BCC7F /* ConstraintRelation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 464FF18D590547BE7F4826907AFFE76D /* ConstraintRelation.swift */; }; 4D9E3A4C588EA10E1B072DD95DF150E9 /* CleanJSON-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A370EE4D019ADFE65F2DC1FF9EDBA187 /* CleanJSON-dummy.m */; }; 4DA72FD7F1FB2C0449EDEF4B8A579807 /* ConstraintPriorityTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DBF99060B70E1B6830A780BA2524ADA /* ConstraintPriorityTarget.swift */; }; - 5328C0F4990000B52D862722F3B0CBD9 /* Patcher+Provider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3B7F1B152F0AA98FA2D2291E6EF4CDE /* Patcher+Provider.swift */; }; + 4EC9F3D7BADE272E116CBB82C1B09733 /* DecodingError+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31209995A953E9383DF4F23549B1CA09 /* DecodingError+Extension.swift */; }; 5380454C48A12A6E376122ABD8096968 /* ConstraintDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7570803E9622B6523B3325B01B79E44B /* ConstraintDescription.swift */; }; 5558B876B579BC1E79BD3D2B19148329 /* UIApplication+StrictKeyWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 233DAEDE45A5CF0A47B6462C8C9F92B4 /* UIApplication+StrictKeyWindow.h */; settings = {ATTRIBUTES = (Project, ); }; }; 55E51F45F1E157D3B4942BA7252C277E /* ConstraintRelatableTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1F4D4D87CBE3DA68AFC92D6F05636AF /* ConstraintRelatableTarget.swift */; }; @@ -85,27 +82,24 @@ 5A8FAA2FBC1E5BC5F5137CB211218A1E /* CleanJSONDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB06E31B883A63C5DE4A5A6308F36C8F /* CleanJSONDecoder.swift */; }; 5BE525FF6FA14B999ED2CCC0AA4FA0CF /* FBSnapshotTestCase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B9E9FCD5E63CE808B8773D040F1E2BA8 /* FBSnapshotTestCase-dummy.m */; }; 5CCB87A1A86D7C03A5D678B262B37071 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; - 5CD636CB0F005E1DA2218C6D6E603B87 /* JSONDecoderImpl+KeyedContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B29101C55E4CA9FB1325266349CA58F /* JSONDecoderImpl+KeyedContainer.swift */; }; - 5CE268673ED7ADC58F037E0205EBC23B /* DecodingError+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31209995A953E9383DF4F23549B1CA09 /* DecodingError+Extension.swift */; }; + 5CF8186504D6DF7D65E8AE96161A1633 /* Transformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F22E01957313DD33E69A20A61F7ADBB /* Transformer.swift */; }; 5D0C8EE39661E929D4881B314AA90123 /* ToJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9121AADFDAA9E940775A36390D6DDBC7 /* ToJSON.swift */; }; 5D36B99F3CAB1FC7337082D9581FECA6 /* Debugging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418DA1AEA18C4A4A1E5D84FCB60DA427 /* Debugging.swift */; }; - 5D4BF7EDFDD2F6E4AC31EE2ADB9787FE /* _SpecialTreatmentEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F7CB4AA09FC386F4AEA3F876318448C /* _SpecialTreatmentEncoder.swift */; }; 5FCE0936FD3B817C74C1EB6B26D459D7 /* BTBubble+Menu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02A4470686F2D00D08E538160531B64E /* BTBubble+Menu.swift */; }; 5FD7858E6AA15774EDCD172DFE731D66 /* JSONAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A2453FB81C81C62905E16C3FD41C15D /* JSONAdapter.swift */; }; 604D3C93C17978C23600EC415949AB64 /* ConstraintInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45DCF5151BEFE9D3018AFB99FE8F580F /* ConstraintInsets.swift */; }; - 60FC3739BB019E49B1A2DAD5B493B1B9 /* KeysMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = E190016CCA3DDEB92796FF25B0FE692A /* KeysMapper.swift */; }; 611CEF7FF1EF9EA1BCEF6C73EEE3ACCF /* ConstraintLayoutGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70E88BDB3FDACE8F2B23F3247435107D /* ConstraintLayoutGuide.swift */; }; 61FCA0616CE6512DCA67D74562D6EA1D /* ReflectionHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAF69AF530FDB1A1819B8E00A3E4775A /* ReflectionHelper.swift */; }; + 62294521012EBDF5183FB333DC5C0F1A /* SmartDecodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA316868E83DD6B6EB31EB4B0A87EB90 /* SmartDecodable.swift */; }; + 62A3A1BBFC4FE40DD36FD2DE8724AA08 /* JSONSingleValueEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2743D2660B497CF9171B80049A6254B2 /* JSONSingleValueEncodingContainer.swift */; }; 62C1A489E5C6414819815F3219B52FE8 /* URLTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 510325960A63C34B69B7173F76A69109 /* URLTransform.swift */; }; 640CCE9C3A28AA3CA15510899F9140EE /* FBSnapshotTestCasePlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = 87EF2DCAFAACA539DB4A58A75FC36303 /* FBSnapshotTestCasePlatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; 67F1963AA7C9EDB78127AD5F566A4949 /* UIImage+Diff.h in Headers */ = {isa = PBXBuildFile; fileRef = D283527F80A00FBB2FF5776A4E3B27B2 /* UIImage+Diff.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 68EDC03B6FDD1617119919D1FA6064FC /* SmartEncodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09980E45AC9049376D9CB477074B220 /* SmartEncodable.swift */; }; 69DE75BA185BBAB5FDAA28321F3C849F /* ConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05DE8DDCC94E79120DAB11B9DBD24069 /* ConstraintItem.swift */; }; 6AC1B881BB319C89AD023A02CDC8FC3D /* ConstraintLayoutGuide+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EE456287EB50E4B04F1A29EC19043B7 /* ConstraintLayoutGuide+Extensions.swift */; }; - 6C5637F843D172A074ADF353C7819663 /* SmartAny.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0CEE409E4A4D2FDA4F0F3586EBE7D61 /* SmartAny.swift */; }; 6EAC8B6FA2D115DE708A58C601DD25E1 /* Constraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD91016CD3E4DB108E6B6B782539B2EC /* Constraint.swift */; }; 6FAA96BB68FE547684137B95F5705530 /* SmartCodable-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4522B54A668007E5C7BAE9AA3CBD9DF9 /* SmartCodable-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 722BC49B2C163ED9937E3E835F3017AA /* ColorTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1538EE2E56D54D12D82A50CC1358E5F /* ColorTransformer.swift */; }; + 7018DA48BBE5B5A36DD63AEF50AF8F16 /* JSONValue+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C9909368B615A605A5844EA2A3B5775 /* JSONValue+Extension.swift */; }; 731D27FC388519A4D24B52D2A29E11C8 /* Defaultable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 541A55046863031E15A9FA69EA99FE8E /* Defaultable.swift */; }; 74339C58AC4E5631FB8C0E662668A796 /* UIApplication+StrictKeyWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 87C56FECBDEE19803E1748DE1C16FBBA /* UIApplication+StrictKeyWindow.m */; }; 7443DBAE6EDF8317C0E34FB6849A6E2A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; @@ -113,29 +107,34 @@ 78079FE3271F118CE83CFD8D5E4F8C21 /* TransformOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 746BABF0910774EB502DC3C4F232413D /* TransformOf.swift */; }; 798C7D29511D498BDB7BEC4996708557 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CB9011E862E377A63B0CA2058DCEB78 /* Configuration.swift */; }; 79C7D4E9901AA11C25F8C71F3E9DF612 /* Properties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0600D0B09DB5802D6B378850043ADD4D /* Properties.swift */; }; + 79DFFAFFF2E66C8B2353339AEB7C368C /* LogContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BD2A8A6A6AF07EA45FEBFCD0E888972 /* LogContainer.swift */; }; 79FCA569BCE23251EE345047D3A15EFB /* BTBubble+Draw.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8396A1DCA6FC67A7830D34F6F815289 /* BTBubble+Draw.swift */; }; 7AD2DE331157EFDE3B334048A5509E27 /* DecodingStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D804957148656B5405037FC4821F4DB /* DecodingStrategy.swift */; }; 7C67CBD15D9B5D0B7769B2F469478332 /* FBSnapshotTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = A11B531AF457EC4F99F06F115FDE0A45 /* FBSnapshotTestCase.m */; }; 7D9031DCB898CD9DE37C4BD4F3FC550D /* DateFormatterTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76F616A528D452098E003EDF888C54AC /* DateFormatterTransform.swift */; }; - 7FF7C301E973711BB15A173BA3841A02 /* DataTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CB5E17D5752EEFA4FACC5806D56E2DA /* DataTransformer.swift */; }; 846C97A8C420EFD9B8C4B77ADBB1E8F5 /* TransformType.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20ABA9C7B9C59A9D3A5EA7AB0215871 /* TransformType.swift */; }; + 856524D53848D8A483177D2AC503963D /* SmartFlat.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA355F56591A4B2ED4948A641503D5A6 /* SmartFlat.swift */; }; 85913D5AC8449037C282EB84450592A1 /* CleanJSON-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D3430E32742C8A84D354226C873C6C /* CleanJSON-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 869B56CCB4CD42940E094F803B9E1491 /* _SpecialTreatmentEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F7CB4AA09FC386F4AEA3F876318448C /* _SpecialTreatmentEncoder.swift */; }; 875A310EAF4D0C136C3FFFF5E0335BE4 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DA24A38BA9EE106B59E3D4C8DD1CE0E /* UIKit.framework */; }; 884DB7B8E20C199509BC5B9A17263113 /* BTBubble.swift in Sources */ = {isa = PBXBuildFile; fileRef = F09645CD0AE835FD6F2CC1C70F2768E6 /* BTBubble.swift */; }; - 8952579697D68D49CD78EE6D39A7B998 /* SmartJSONDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A02695CA5BA14EF7D6013FAB142889E /* SmartJSONDecoder.swift */; }; 8AE19756F0126FE92AF625E36F3D70FE /* UIImage+Compare.h in Headers */ = {isa = PBXBuildFile; fileRef = 60E0A4F5EA0780653EDE0A8F48FE2B14 /* UIImage+Compare.h */; settings = {ATTRIBUTES = (Private, ); }; }; 8B85D89911D50E1DEAF25D920B6F3C5F /* Pods-SmartCodable_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AB62CDC1D9A84669428234D73C264AF /* Pods-SmartCodable_Example-dummy.m */; }; 8C3394695CB4CCECD873D1384F4BA076 /* Export.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B376CE8FE7B39265B74DCF06C524D2 /* Export.swift */; }; 8CD5DE204C3C5F6557878ADE2675A406 /* HelpingMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4749570A46F497B425767CB4569ADF9 /* HelpingMapper.swift */; }; + 8D3556BB6063CDEF78CD36FCE845A413 /* JSONDecoderImpl+UnkeyedContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FFA4851C0DDF4854A55A23373789958 /* JSONDecoderImpl+UnkeyedContainer.swift */; }; 8D72B695C7EF0186A0C0F1A18F944880 /* PropertyInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DCC7F0112605A85E8861B6A4E92D154 /* PropertyInfo.swift */; }; 8E181742809C6F03AE51D0F6E52E57DA /* BTPrint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68F996F21CE4381BFEAC8BDD8BC5E788 /* BTPrint.swift */; }; - 8E3AFAAD71E3ED100F4D6BFED635F9A4 /* DateTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 872A303F84F8E2A8F34473198AC0ABAB /* DateTransformer.swift */; }; + 8E8B1CA2D22EF1ED40C132088CAD5236 /* JSONEncoderImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = A55888C63C71B327F88486B6AD7AB1E3 /* JSONEncoderImpl.swift */; }; 90087A9E35991CBA33825140C0A58757 /* CleanJSONKeyedDecodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DFBE39A8F2F3352B5AB28C6FFC990E7 /* CleanJSONKeyedDecodingContainer.swift */; }; 92CC91D4B6AF0B3E18068CCFBE36A3B7 /* BubbleTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE7E7A774098C77B700C918B4B303354 /* BubbleTools.swift */; }; + 946753DFD025B199BEDDC98243E0D938 /* JSONValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFDCC5CEBBCB596FEFDC2C47EFD224AC /* JSONValue.swift */; }; 95E194A3AABB5407231E898B6686F73E /* ConstraintMakerRelatable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC6BD8F9EB57322C72A42B7031485790 /* ConstraintMakerRelatable+Extensions.swift */; }; 96D8402B4AFC4AC7349F1B487D6EB08C /* Transformable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2852BF0E7B62CAF6AB4E994FD9DFF2DF /* Transformable.swift */; }; 98F570DA48370453D648BD526FDAAEAA /* LayoutConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D20FD964253D6C1E0040497B2CA5505E /* LayoutConstraintItem.swift */; }; + 9980AB0041C2B3A5040B03A139F8F9EC /* SmartCodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D78AA8B32A754F35A8C0EBB9F75CBBD /* SmartCodable.swift */; }; 9A6CCC7BCACBE8218126670E6B08EF9E /* BTPrint-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6226D5547537E7D1F86B312E2F57D4F0 /* BTPrint-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9C271308C57ABF601FA728BDEF051CA2 /* SmartEncodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09980E45AC9049376D9CB477074B220 /* SmartEncodable.swift */; }; 9C9548E8B4675954566202F7B87FF0E6 /* ConstraintConstantTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D588A73906F98B13FC731364A9247E2 /* ConstraintConstantTarget.swift */; }; 9D3C5E2F56838937146191468A893244 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E658F388F01C72599CA75537950B6095 /* XCTest.framework */; }; 9E02CFFEFE1BEC978B512286F03D31DA /* ConstraintInsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30C72CEDB9E9899CABE8976D237E6C74 /* ConstraintInsetTarget.swift */; }; @@ -144,57 +143,58 @@ A0E5EC9E431A5BD01C4695BC6AE5DEDA /* ExtendCustomModelType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1287F892FF63395DDABB49A2F8C39A3B /* ExtendCustomModelType.swift */; }; A2D6CC53EF61C755B77BBFF31B1F0E76 /* _CleanJSONDecoder+Decode.swift in Sources */ = {isa = PBXBuildFile; fileRef = A247AF8B486EBFFB5B5CED8A27FD6D94 /* _CleanJSONDecoder+Decode.swift */; }; A3E3AB7C765C21AE17B1E6EE6560040C /* SnapKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 96FC33890F5B9F948392563B47A573A0 /* SnapKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A46A4425E81D04C4BE4D35662090879A /* Patcher+Provider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3B7F1B152F0AA98FA2D2291E6EF4CDE /* Patcher+Provider.swift */; }; + A53DAC9DCF8CFC2D8132F358358A711A /* Cachable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6669711F8D8DA962A99BCA3CA844C6E9 /* Cachable.swift */; }; A5A8BF973BFE9C9304372A26C9F2E35B /* ConstraintMakerExtendable.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCBDA27A176AE2D1C34BA797339DE8BB /* ConstraintMakerExtendable.swift */; }; A5E849B00E179FB98F3A2CC91378245A /* DecodingError+CleanJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9E5E84322D1072C445D51381EACDD7D /* DecodingError+CleanJSON.swift */; }; A674A2F3F5F0304A6524F702EA301B42 /* NSDecimalNumberTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD9C9CD93F7F692FE8121F7F78EE6DB8 /* NSDecimalNumberTransform.swift */; }; - A936311CD410E693911AA86F1CC40EDE /* LogItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF7985344EF5FCE8B0EA02B44157CF13 /* LogItem.swift */; }; + A82CB75E0FBF78C93E1D221F306B1514 /* SmartAnyImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24969EF227BB11FD7DCCE6A7EED44FB8 /* SmartAnyImpl.swift */; }; AA75627FBC8A28CB9F9E26CDE0062EFE /* Pods-SmartCodable_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6021C11E2C3E5FCDE30179E13E0E6452 /* Pods-SmartCodable_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC02F23C7A973408360250190ED04E4C /* LogCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4006851427C999AD7B42576C9ED35269 /* LogCache.swift */; }; + ACF7FD0E2F1722FB2684CAD5F0F9754C /* SmartLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8B77C6786A6560D0F28A173A47CBEE0 /* SmartLog.swift */; }; + AF083831A977430C74E2DD79239E9F70 /* SmartKeyDecodingStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452E01D097B57F499E63BE4B112A9B16 /* SmartKeyDecodingStrategy.swift */; }; B03B5579590D528CBA6D11FF638BC2AF /* Typealiases.swift in Sources */ = {isa = PBXBuildFile; fileRef = F324FE66E2BF9B4B5B507729C64FD069 /* Typealiases.swift */; }; - B072FADAB3182D32ECC2E2EC1C481319 /* DecodingCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85AA1A9803E90CE6BC7ADDF5965F33F7 /* DecodingCache.swift */; }; B43017FEC99D227D4CDD81DD2C27D9D9 /* ConstraintMakerPrioritizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EEAE2746CE46B4119A1EF4CB96853D4 /* ConstraintMakerPrioritizable.swift */; }; B52281F9F4340D4FC8ABB2FEB1FEC08E /* UIImage+Compare.m in Sources */ = {isa = PBXBuildFile; fileRef = C5688C4B8AAD0B0302EE6D8567AB0A03 /* UIImage+Compare.m */; }; B752F7C4BECB65894B1F49421049CE5F /* ConstraintView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFE40591DCBDB38549AD0FC756F3D616 /* ConstraintView.swift */; }; - B80EA198906F5FB4D40311FB6DA2E681 /* SafeDictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3534F4E4B4427041509351D15B895F3D /* SafeDictionary.swift */; }; - B9A076CA02887462D9C6317A50A475A8 /* SmartColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B5A4B099D6B6C19273025A7E4BC6B7B /* SmartColor.swift */; }; - BA35076EBF00D073715F34BD32B6076A /* IgnoredKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F799AB967E9C5B183338194DF9975B /* IgnoredKey.swift */; }; - BC149C6146C6D9B298ABEEFBAE0F0175 /* JSONParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = C01A3132ED5114F11C386F447287F57C /* JSONParser.swift */; }; - BCA982DB8C443DDE87991F38CA23B41F /* JSONFuture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D572B9A00DDC548FB5EA35A1E339393 /* JSONFuture.swift */; }; + BB5649AF1187F9EA6F90B983C2A1DC8E /* URLTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD9745BB72B5A3B7C0F0FBE5AB769F0B /* URLTransformer.swift */; }; BD47CB74CD9B2B4D2D942C9B65748DFB /* SnapKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 89305DC7AA8CF17C4DFF5582FDC4E381 /* SnapKit-dummy.m */; }; BD90F922C39E6EAEAD85EBD1F2363841 /* CodingKeysConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CDB55010FADC798A0E3768269292E5E /* CodingKeysConverter.swift */; }; BE432D00488E08C853DC689BE24C54F4 /* HandyJSON-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 26D82883F952766DDE67EB5398B66E76 /* HandyJSON-dummy.m */; }; - C2D38C3C57566F2C7E5A9130A037CD8B /* URLTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD9745BB72B5A3B7C0F0FBE5AB769F0B /* URLTransformer.swift */; }; + C07B7B52652B21207EBE47F104F1DAF1 /* JSONDecoderImpl+KeyedContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ECBF15BCB3A93D6F21CAACA322E25AC /* JSONDecoderImpl+KeyedContainer.swift */; }; + C0F572D6E53B27FE0055AA0E5AB84AF5 /* SafeDictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3534F4E4B4427041509351D15B895F3D /* SafeDictionary.swift */; }; C390C6005353FB986CB52F474CEF8588 /* FBSnapshotTestController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CAD959505600831AE1B1760854D7178 /* FBSnapshotTestController.m */; }; C586DC95274CF5AABAD935AF549A8FB6 /* BTBubble+Location.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4475151C4A7FB0660C3CDE88C6863EEF /* BTBubble+Location.swift */; }; - C6DF51292895C53276A7501A518C51E4 /* LogContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BD2A8A6A6AF07EA45FEBFCD0E888972 /* LogContainer.swift */; }; C920144CE195D2198DAE63F2D976AADB /* HandyJSON-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 91D961BD3D7E5A4FD5EFC37B4EF49FD4 /* HandyJSON-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; C9F76407497DF0205D7460B36D22259F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3280BB5E7B57C31D41117A74F76E9DF3 /* QuartzCore.framework */; }; CA54C09A12400567AFFCB407EEB7E154 /* UIImage+Diff.m in Sources */ = {isa = PBXBuildFile; fileRef = 209CC75BF3B9E4EF12E2CCE8787F9095 /* UIImage+Diff.m */; }; - CBA14AB1E81568BFF759C46E62760699 /* Patcher+Transformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60C75B0E1E9EBF948044BDE0F83EF802 /* Patcher+Transformer.swift */; }; CCCEE128C2F395CE7E3A13D343BC350B /* BTBubble+Animation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C236F0CDFBBFF56E8E482E41A943E19E /* BTBubble+Animation.swift */; }; - CD4787947762A757925270DF60081B63 /* SmartKeyDecodingStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452E01D097B57F499E63BE4B112A9B16 /* SmartKeyDecodingStrategy.swift */; }; CF7FAB0C5D474E379798F82E5DB4092B /* ContextDescriptorType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 796F5B9A676DF8041A953891F97BCA27 /* ContextDescriptorType.swift */; }; - D55A00068CBC6B09C12EBADC861C25A7 /* JSONKeyedEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C489B232517D17DB8EDC664CA57C0218 /* JSONKeyedEncodingContainer.swift */; }; + D5D2317CAD334B7F2E377833967C042A /* JSONDecoderImpl+Unwrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95EBB31F2830BE27E38D4FE66F18EE90 /* JSONDecoderImpl+Unwrap.swift */; }; + DC237D98BF3D52F611F16AB50B6358DD /* SmartCodable-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 53D51F602C52F04F5CB71BE0F8551F93 /* SmartCodable-dummy.m */; }; DE13D920EE02866495C19B6484C998DD /* BTBubbleConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 666C02C1B42B0868B4A816FBD07E22A6 /* BTBubbleConfig.swift */; }; DF493E247E463CAC344C15784C9EF5AC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; + E0F7FB86C184BE231F38E361118D95AC /* JSONParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = C01A3132ED5114F11C386F447287F57C /* JSONParser.swift */; }; + E1A549288829A53454B5D0647E11E6DC /* DataTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CB5E17D5752EEFA4FACC5806D56E2DA /* DataTransformer.swift */; }; E2EF09A2D0A87418F0628B2CFAD304D8 /* Metadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F1BBC050B82F2DBD3175EBCDBBAE1B6 /* Metadata.swift */; }; - E4E36D1C05515586D3D26782E70F1123 /* Cachable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6669711F8D8DA962A99BCA3CA844C6E9 /* Cachable.swift */; }; - E680B6059CF8B9402E6486238DEC9063 /* JSONDecoderImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBABC1D2B764BCE255D5084938BB4CD3 /* JSONDecoderImpl.swift */; }; + E5841B5CDD395256F1E31D88D706583E /* LogItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF7985344EF5FCE8B0EA02B44157CF13 /* LogItem.swift */; }; E7035A074129575E62A0136DD93D8E8F /* DateTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FD0E02013F60456068DC82258C06AB1 /* DateTransform.swift */; }; E710A550162879CE918FC411CF567789 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0965E60C4A8A6CB4CDB3FD2D5BF45433 /* Logger.swift */; }; - E89F2710A991E624F43528D10DB1EDA4 /* SmartCaseDefaultable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9741C9099C80C82AA38386510EE0634D /* SmartCaseDefaultable.swift */; }; E98DC8FB2578E76A812E0C94BA10E1B1 /* ConstraintDirectionalInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3803A342F79D0DBAEE0150E93A6B807B /* ConstraintDirectionalInsets.swift */; }; ED71E932B7F30AD7CFD2A04968A2B5CC /* CBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 390DC8D2A8DB0DAB9CA70268C2F74AF4 /* CBridge.swift */; }; EEFF0A57765CB734CF01868904F56DA7 /* HandyJSON.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D31C1D12C0D9C516CE738486208A159 /* HandyJSON.h */; settings = {ATTRIBUTES = (Public, ); }; }; EF21586EC3DFF6097A58EEC87376A0C1 /* ConstraintLayoutGuideDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1245F46A35053D954B8985EFAFD068D7 /* ConstraintLayoutGuideDSL.swift */; }; F16D0BB1231D60CBF7B3AE25B92D0D74 /* EnumTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = C30DC42DFE9E9BEB719E4821761599C5 /* EnumTransform.swift */; }; F47FA5DC0D1BD01F21FEE05C02A165AD /* _CleanJSONDecoder+Unbox.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7BBDFD017622786401A39F6BD9686C8 /* _CleanJSONDecoder+Unbox.swift */; }; + F73487EF44E6F79E972B5335E573E01B /* JSONKeyedEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C489B232517D17DB8EDC664CA57C0218 /* JSONKeyedEncodingContainer.swift */; }; F7425A58E24926CCAC413F85D403B9FA /* FieldDescriptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ACD8767AB4E2B782160808FED94FADE /* FieldDescriptor.swift */; }; F7C0960CEEB8F0C18F4503B405EAC08F /* ConstraintMultiplierTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 551BC954C9673D937C2CA52B935158E1 /* ConstraintMultiplierTarget.swift */; }; F953AA9104BFE0C2DAD639EA60104A75 /* ConstraintView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59BB800622705BC689D002AFE6C24643 /* ConstraintView+Extensions.swift */; }; F98E3202B0021DC8B2DB77256FBE5DD3 /* ISO8601DateTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = C57A6E8C38153E40B8497C02204DF7F4 /* ISO8601DateTransform.swift */; }; FAB03959C2357E325B19E08BC4775DAB /* ConstraintMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A4757260F219342EC59610827085045 /* ConstraintMaker.swift */; }; - FAE2763308B515470AE80DC8217BC2BA /* SmartUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4844C3AE5731C372261F2F1D5129A42C /* SmartUpdater.swift */; }; - FBBAE118D4BAAAB22EC72EFDADF8ABC6 /* SmartLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8B77C6786A6560D0F28A173A47CBEE0 /* SmartLog.swift */; }; + FB996AA9AD236E2D353B68BD10AAD59E /* EncodingCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FF6C295EA60F3701557941049EF920D /* EncodingCache.swift */; }; + FD51EBCB0539A93F0FD84EBE4C24B4E6 /* Patcher+Transformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60C75B0E1E9EBF948044BDE0F83EF802 /* Patcher+Transformer.swift */; }; + FDB88B71E230C8F3FC5565AC751F9549 /* JSONFuture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D572B9A00DDC548FB5EA35A1E339393 /* JSONFuture.swift */; }; FEFE2DDEB18C3D76F500C974F166CD53 /* CaseDefaultable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBDE8674ED579EE94A0773028BD44AF1 /* CaseDefaultable.swift */; }; FF8307B7346F4D3BA13C11AECFE6EDD0 /* FBSnapshotTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 20BC59163CF72AADA6459ADA846EBF1F /* FBSnapshotTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ @@ -259,7 +259,7 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0191B942D4B65CBE15AF9B5302AE1115 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 0191B942D4B65CBE15AF9B5302AE1115 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; 019BF859EEBE1D8469A3CE37606A8760 /* HandyJSON.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = HandyJSON.modulemap; sourceTree = ""; }; 02A4470686F2D00D08E538160531B64E /* BTBubble+Menu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "BTBubble+Menu.swift"; path = "BTBubble/Classes/BTBubble+Menu.swift"; sourceTree = ""; }; 02B734C740F66C4CA7D3E58A2E3A71ED /* UIImage+Snapshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Snapshot.m"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.m"; sourceTree = ""; }; @@ -275,6 +275,7 @@ 0F3C77A10532266D4C2017D4C5657D22 /* UILayoutSupport+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UILayoutSupport+Extensions.swift"; path = "Sources/UILayoutSupport+Extensions.swift"; sourceTree = ""; }; 0F6C61A3718CAD5B727FA89E9A50D662 /* CleanJSON.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CleanJSON.debug.xcconfig; sourceTree = ""; }; 0FD0E02013F60456068DC82258C06AB1 /* DateTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DateTransform.swift; path = Source/DateTransform.swift; sourceTree = ""; }; + 0FFA4851C0DDF4854A55A23373789958 /* JSONDecoderImpl+UnkeyedContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+UnkeyedContainer.swift"; sourceTree = ""; }; 1245F46A35053D954B8985EFAFD068D7 /* ConstraintLayoutGuideDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutGuideDSL.swift; path = Sources/ConstraintLayoutGuideDSL.swift; sourceTree = ""; }; 1287F892FF63395DDABB49A2F8C39A3B /* ExtendCustomModelType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExtendCustomModelType.swift; path = Source/ExtendCustomModelType.swift; sourceTree = ""; }; 12D66D4EBB5005BCB197AA15A08144D1 /* BTPrint.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BTPrint.release.xcconfig; sourceTree = ""; }; @@ -320,9 +321,7 @@ 3EF66D087C187059D6E79CD68D3907BC /* Pods-SmartCodable_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SmartCodable_Tests-acknowledgements.plist"; sourceTree = ""; }; 3F3FDC5FCC431AA5CF0EDB1E45F721A0 /* SmartCodable-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SmartCodable-Info.plist"; sourceTree = ""; }; 4006851427C999AD7B42576C9ED35269 /* LogCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LogCache.swift; sourceTree = ""; }; - 4029C0B17EFBDE1152B5552BF24A06B7 /* JSONDecoderImpl+UnkeyedContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+UnkeyedContainer.swift"; sourceTree = ""; }; 418DA1AEA18C4A4A1E5D84FCB60DA427 /* Debugging.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debugging.swift; path = Sources/Debugging.swift; sourceTree = ""; }; - 43D0D5E5E2D70AF1A76D21A758DE2445 /* JSONDecoderImpl+SingleValueContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+SingleValueContainer.swift"; sourceTree = ""; }; 43FB1C7B536B80216B8B21E7440AEC8C /* Pods-SmartCodable_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-SmartCodable_Tests.modulemap"; sourceTree = ""; }; 4475151C4A7FB0660C3CDE88C6863EEF /* BTBubble+Location.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "BTBubble+Location.swift"; path = "BTBubble/Classes/BTBubble+Location.swift"; sourceTree = ""; }; 4522B54A668007E5C7BAE9AA3CBD9DF9 /* SmartCodable-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SmartCodable-umbrella.h"; sourceTree = ""; }; @@ -366,7 +365,6 @@ 6669711F8D8DA962A99BCA3CA844C6E9 /* Cachable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Cachable.swift; sourceTree = ""; }; 666C02C1B42B0868B4A816FBD07E22A6 /* BTBubbleConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BTBubbleConfig.swift; path = BTBubble/Classes/BTBubbleConfig.swift; sourceTree = ""; }; 68F996F21CE4381BFEAC8BDD8BC5E788 /* BTPrint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BTPrint.swift; path = BTPrint/Classes/BTPrint.swift; sourceTree = ""; }; - 6B29101C55E4CA9FB1325266349CA58F /* JSONDecoderImpl+KeyedContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+KeyedContainer.swift"; sourceTree = ""; }; 6B5A4B099D6B6C19273025A7E4BC6B7B /* SmartColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartColor.swift; sourceTree = ""; }; 6B6AE0B9AEB52789C2BA9C70151E337A /* MangledName.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MangledName.swift; path = Source/MangledName.swift; sourceTree = ""; }; 6BD2A8A6A6AF07EA45FEBFCD0E888972 /* LogContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LogContainer.swift; sourceTree = ""; }; @@ -385,6 +383,7 @@ 7D0C0E237F70C307DF23B940F50265F5 /* Measuable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Measuable.swift; path = Source/Measuable.swift; sourceTree = ""; }; 7D588A73906F98B13FC731364A9247E2 /* ConstraintConstantTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintConstantTarget.swift; path = Sources/ConstraintConstantTarget.swift; sourceTree = ""; }; 7E920302DBA2124AFF869243E5CB6351 /* BuiltInBridgeType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BuiltInBridgeType.swift; path = Source/BuiltInBridgeType.swift; sourceTree = ""; }; + 7ECBF15BCB3A93D6F21CAACA322E25AC /* JSONDecoderImpl+KeyedContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+KeyedContainer.swift"; sourceTree = ""; }; 7EEAE2746CE46B4119A1EF4CB96853D4 /* ConstraintMakerPrioritizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerPrioritizable.swift; path = Sources/ConstraintMakerPrioritizable.swift; sourceTree = ""; }; 7F1BBC050B82F2DBD3175EBCDBBAE1B6 /* Metadata.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Metadata.swift; path = Source/Metadata.swift; sourceTree = ""; }; 7F9222551C78E09BFE29291610498A56 /* PrintFormat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PrintFormat.swift; path = BTPrint/Classes/PrintFormat.swift; sourceTree = ""; }; @@ -403,8 +402,9 @@ 9121AADFDAA9E940775A36390D6DDBC7 /* ToJSON.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ToJSON.swift; path = Sources/CleanJSON/ToJSON.swift; sourceTree = ""; }; 91D961BD3D7E5A4FD5EFC37B4EF49FD4 /* HandyJSON-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "HandyJSON-umbrella.h"; sourceTree = ""; }; 926AFEC77F93BCAD652BB781C5D0AA8C /* BTPrint-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BTPrint-dummy.m"; sourceTree = ""; }; - 92D0AE3BD80E870CCAA5AE5CF580E549 /* SmartCodable.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; path = SmartCodable.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 92D0AE3BD80E870CCAA5AE5CF580E549 /* SmartCodable.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = SmartCodable.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 93B6822011E346FDFA44C5A0CAB94482 /* BuiltInBasicType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BuiltInBasicType.swift; path = Source/BuiltInBasicType.swift; sourceTree = ""; }; + 95EBB31F2830BE27E38D4FE66F18EE90 /* JSONDecoderImpl+Unwrap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+Unwrap.swift"; sourceTree = ""; }; 96FC33890F5B9F948392563B47A573A0 /* SnapKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-umbrella.h"; sourceTree = ""; }; 9741C9099C80C82AA38386510EE0634D /* SmartCaseDefaultable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartCaseDefaultable.swift; sourceTree = ""; }; 979486118B3E90C08386079D57962701 /* SnapKit */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SnapKit; path = SnapKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -415,7 +415,7 @@ 9C9909368B615A605A5844EA2A3B5775 /* JSONValue+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONValue+Extension.swift"; sourceTree = ""; }; 9D5AD1AE1022A579A49D4DE848C3C5D9 /* PointerType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PointerType.swift; path = Source/PointerType.swift; sourceTree = ""; }; 9D78AA8B32A754F35A8C0EBB9F75CBBD /* SmartCodable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartCodable.swift; sourceTree = ""; }; - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; A11B531AF457EC4F99F06F115FDE0A45 /* FBSnapshotTestCase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCase.m; path = FBSnapshotTestCase/FBSnapshotTestCase.m; sourceTree = ""; }; A247AF8B486EBFFB5B5CED8A27FD6D94 /* _CleanJSONDecoder+Decode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "_CleanJSONDecoder+Decode.swift"; path = "Sources/CleanJSON/_CleanJSONDecoder+Decode.swift"; sourceTree = ""; }; A370EE4D019ADFE65F2DC1FF9EDBA187 /* CleanJSON-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CleanJSON-dummy.m"; sourceTree = ""; }; @@ -427,6 +427,7 @@ AB1035777F9D0FAD25F91B78CF571685 /* ConstraintMakerFinalizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerFinalizable.swift; path = Sources/ConstraintMakerFinalizable.swift; sourceTree = ""; }; AD9745BB72B5A3B7C0F0FBE5AB769F0B /* URLTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = URLTransformer.swift; sourceTree = ""; }; ADDD58F0A7F5CBCD84256A572196E486 /* CustomDateFormatTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CustomDateFormatTransform.swift; path = Source/CustomDateFormatTransform.swift; sourceTree = ""; }; + AE3994DC269F18D22356B445B6E38226 /* JSONDecoderImpl+SingleValueContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+SingleValueContainer.swift"; sourceTree = ""; }; AF7985344EF5FCE8B0EA02B44157CF13 /* LogItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LogItem.swift; sourceTree = ""; }; B0CEE409E4A4D2FDA4F0F3586EBE7D61 /* SmartAny.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartAny.swift; sourceTree = ""; }; B3CC75B7FCBD0A88F04962B84E46D054 /* FBSnapshotTestCasePlatform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCasePlatform.m; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.m; sourceTree = ""; }; @@ -455,7 +456,6 @@ C71893536DFFAFEF6A68642E82405824 /* SmartCodable.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SmartCodable.debug.xcconfig; sourceTree = ""; }; C7BBDFD017622786401A39F6BD9686C8 /* _CleanJSONDecoder+Unbox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "_CleanJSONDecoder+Unbox.swift"; path = "Sources/CleanJSON/_CleanJSONDecoder+Unbox.swift"; sourceTree = ""; }; C958AC7215CB092EEC6FA33BD843AC29 /* ConstraintViewDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintViewDSL.swift; path = Sources/ConstraintViewDSL.swift; sourceTree = ""; }; - CBABC1D2B764BCE255D5084938BB4CD3 /* JSONDecoderImpl.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONDecoderImpl.swift; sourceTree = ""; }; CC6BD8F9EB57322C72A42B7031485790 /* ConstraintMakerRelatable+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintMakerRelatable+Extensions.swift"; path = "Sources/ConstraintMakerRelatable+Extensions.swift"; sourceTree = ""; }; CD54121DDA84872534168702B5F92950 /* HandyJSON */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = HandyJSON; path = HandyJSON.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CDD07779AA8B42688ED0FF74BACC5AA5 /* AnyExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnyExtensions.swift; path = Source/AnyExtensions.swift; sourceTree = ""; }; @@ -474,7 +474,6 @@ DCD54B400F0BA763829F393B36FC4C7F /* CleanJSON.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CleanJSON.modulemap; sourceTree = ""; }; DD91016CD3E4DB108E6B6B782539B2EC /* Constraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constraint.swift; path = Sources/Constraint.swift; sourceTree = ""; }; DDEF3ACF04599EB1C214870D993C7153 /* ConstraintDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDSL.swift; path = Sources/ConstraintDSL.swift; sourceTree = ""; }; - DFAAAA2A05697972C00F916E0614A16D /* JSONDecoderImpl+Unwrap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+Unwrap.swift"; sourceTree = ""; }; E1687BCA2D5089035366568970461716 /* Pods-SmartCodable_Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SmartCodable_Tests-Info.plist"; sourceTree = ""; }; E190016CCA3DDEB92796FF25B0FE692A /* KeysMapper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeysMapper.swift; sourceTree = ""; }; E20ABA9C7B9C59A9D3A5EA7AB0215871 /* TransformType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TransformType.swift; path = Source/TransformType.swift; sourceTree = ""; }; @@ -483,10 +482,11 @@ E5FA84A6FC991F1497F1DC0F7EA5CAD8 /* Pods-SmartCodable_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SmartCodable_Tests-dummy.m"; sourceTree = ""; }; E658F388F01C72599CA75537950B6095 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; E7D0C8FFA3D3F1791A00D06DA9FB06C3 /* OtherExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = OtherExtension.swift; path = Source/OtherExtension.swift; sourceTree = ""; }; - E8B4598293826BF8D9D07BE0D72778ED /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + E8B4598293826BF8D9D07BE0D72778ED /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; EA355F56591A4B2ED4948A641503D5A6 /* SmartFlat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartFlat.swift; sourceTree = ""; }; EBDE8674ED579EE94A0773028BD44AF1 /* CaseDefaultable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CaseDefaultable.swift; path = Sources/CleanJSON/CaseDefaultable.swift; sourceTree = ""; }; EC81D310210EE3584DF75E7C318F9318 /* EnumType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EnumType.swift; path = Source/EnumType.swift; sourceTree = ""; }; + ECA9FC7AECDB148E561AD475BE6D72FA /* JSONDecoderImpl.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONDecoderImpl.swift; sourceTree = ""; }; EE3F9FF6983083751E8AF8D756034C35 /* Pods-SmartCodable_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SmartCodable_Tests.release.xcconfig"; sourceTree = ""; }; EE7E7A774098C77B700C918B4B303354 /* BubbleTools.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleTools.swift; path = BTBubble/Classes/BubbleTools.swift; sourceTree = ""; }; EEAB8D6BB2A7369CCEF3D49B4BB21A9D /* CleanJSON-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CleanJSON-prefix.pch"; sourceTree = ""; }; @@ -591,6 +591,7 @@ 7E972BBD4D0CAB239B62B38A7CFE09A9 /* Support Files */, 0E4E1A9219322C33F239A78C7F5E2F3B /* SwiftSupport */, ); + name = FBSnapshotTestCase; path = FBSnapshotTestCase; sourceTree = ""; }; @@ -610,8 +611,9 @@ E190016CCA3DDEB92796FF25B0FE692A /* KeysMapper.swift */, 8A02695CA5BA14EF7D6013FAB142889E /* SmartJSONDecoder.swift */, 452E01D097B57F499E63BE4B112A9B16 /* SmartKeyDecodingStrategy.swift */, - 8B83E16BFCA5DB7295A460AD055215AC /* Impl */, + FE1D8520593E7B58A22292F3110C6F0F /* Impl */, ); + name = Decoder; path = Decoder; sourceTree = ""; }; @@ -694,6 +696,7 @@ B0CEE409E4A4D2FDA4F0F3586EBE7D61 /* SmartAny.swift */, 24969EF227BB11FD7DCCE6A7EED44FB8 /* SmartAnyImpl.swift */, ); + name = SmartAny; path = SmartAny; sourceTree = ""; }; @@ -738,6 +741,7 @@ 510325960A63C34B69B7173F76A69109 /* URLTransform.swift */, 37704050BE514436D26A3EB63D42197C /* Support Files */, ); + name = HandyJSON; path = HandyJSON; sourceTree = ""; }; @@ -748,6 +752,7 @@ 2743D2660B497CF9171B80049A6254B2 /* JSONSingleValueEncodingContainer.swift */, BD3AEF84831817C3EBACB964BD25C970 /* JSONUnkeyedEncodingContainer.swift */, ); + name = Container; path = Container; sourceTree = ""; }; @@ -764,6 +769,7 @@ EE7E7A774098C77B700C918B4B303354 /* BubbleTools.swift */, 8589C51E960CB6893CA744448B6E7B26 /* Support Files */, ); + name = BTBubble; path = BTBubble; sourceTree = ""; }; @@ -846,21 +852,10 @@ A3B7F1B152F0AA98FA2D2291E6EF4CDE /* Patcher+Provider.swift */, 60C75B0E1E9EBF948044BDE0F83EF802 /* Patcher+Transformer.swift */, ); + name = Patcher; path = Patcher; sourceTree = ""; }; - 8B83E16BFCA5DB7295A460AD055215AC /* Impl */ = { - isa = PBXGroup; - children = ( - CBABC1D2B764BCE255D5084938BB4CD3 /* JSONDecoderImpl.swift */, - 6B29101C55E4CA9FB1325266349CA58F /* JSONDecoderImpl+KeyedContainer.swift */, - 43D0D5E5E2D70AF1A76D21A758DE2445 /* JSONDecoderImpl+SingleValueContainer.swift */, - 4029C0B17EFBDE1152B5552BF24A06B7 /* JSONDecoderImpl+UnkeyedContainer.swift */, - DFAAAA2A05697972C00F916E0614A16D /* JSONDecoderImpl+Unwrap.swift */, - ); - path = Impl; - sourceTree = ""; - }; 8C894BD6D62C0C384C634AA90A2C0A2A /* JSONDecoder */ = { isa = PBXGroup; children = ( @@ -917,6 +912,7 @@ 1F7CB4AA09FC386F4AEA3F876318448C /* _SpecialTreatmentEncoder.swift */, A55888C63C71B327F88486B6AD7AB1E3 /* JSONEncoderImpl.swift */, ); + name = Impl; path = Impl; sourceTree = ""; }; @@ -1085,6 +1081,7 @@ 0F3C77A10532266D4C2017D4C5657D22 /* UILayoutSupport+Extensions.swift */, D5089C05AA8DF4AEE19DA89A217C7CD8 /* Support Files */, ); + name = SnapKit; path = SnapKit; sourceTree = ""; }; @@ -1095,6 +1092,7 @@ 7F9222551C78E09BFE29291610498A56 /* PrintFormat.swift */, 1EC73E5802EDCA8941212E2C0320FD68 /* Support Files */, ); + name = BTPrint; path = BTPrint; sourceTree = ""; }; @@ -1120,6 +1118,7 @@ 9121AADFDAA9E940775A36390D6DDBC7 /* ToJSON.swift */, 98C45354D057DFD460070868850871E7 /* Support Files */, ); + name = CleanJSON; path = CleanJSON; sourceTree = ""; }; @@ -1147,6 +1146,19 @@ name = Pods; sourceTree = ""; }; + FE1D8520593E7B58A22292F3110C6F0F /* Impl */ = { + isa = PBXGroup; + children = ( + ECA9FC7AECDB148E561AD475BE6D72FA /* JSONDecoderImpl.swift */, + 7ECBF15BCB3A93D6F21CAACA322E25AC /* JSONDecoderImpl+KeyedContainer.swift */, + AE3994DC269F18D22356B445B6E38226 /* JSONDecoderImpl+SingleValueContainer.swift */, + 0FFA4851C0DDF4854A55A23373789958 /* JSONDecoderImpl+UnkeyedContainer.swift */, + 95EBB31F2830BE27E38D4FE66F18EE90 /* JSONDecoderImpl+Unwrap.swift */, + ); + name = Impl; + path = Impl; + sourceTree = ""; + }; FE9C729707A5477C1EF6D1BFC9BB59FA /* Pods-SmartCodable_Tests */ = { isa = PBXGroup; children = ( @@ -1407,7 +1419,7 @@ buildConfigurationList = 3D41D1EC0DBBCD971749433A09E0C096 /* Build configuration list for PBXNativeTarget "SmartCodable" */; buildPhases = ( A2C67C1CF87AC4881ACC06C896907D6B /* Headers */, - A94DB4057C174A42DE64255B7013B24D /* Sources */, + B001559CAFD702A24EE60A950026E318 /* Sources */, 9C18EA5D22421596E9DECBB845DBA90A /* Frameworks */, 5BD56FAFF8C07097D963B5E3F72D2AE8 /* Resources */, ); @@ -1624,56 +1636,56 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A94DB4057C174A42DE64255B7013B24D /* Sources */ = { + B001559CAFD702A24EE60A950026E318 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5D4BF7EDFDD2F6E4AC31EE2ADB9787FE /* _SpecialTreatmentEncoder.swift in Sources */, - E4E36D1C05515586D3D26782E70F1123 /* Cachable.swift in Sources */, - 722BC49B2C163ED9937E3E835F3017AA /* ColorTransformer.swift in Sources */, - 7FF7C301E973711BB15A173BA3841A02 /* DataTransformer.swift in Sources */, - 8E3AFAAD71E3ED100F4D6BFED635F9A4 /* DateTransformer.swift in Sources */, - B072FADAB3182D32ECC2E2EC1C481319 /* DecodingCache.swift in Sources */, - 5CE268673ED7ADC58F037E0205EBC23B /* DecodingError+Extension.swift in Sources */, - 0F9B0D1B76623E11A3D6519C22B611CE /* EncodingCache.swift in Sources */, - BA35076EBF00D073715F34BD32B6076A /* IgnoredKey.swift in Sources */, - E680B6059CF8B9402E6486238DEC9063 /* JSONDecoderImpl.swift in Sources */, - 5CD636CB0F005E1DA2218C6D6E603B87 /* JSONDecoderImpl+KeyedContainer.swift in Sources */, - 159AB179614C943355E6E2AF0297264A /* JSONDecoderImpl+SingleValueContainer.swift in Sources */, - 33BA6D881AC5CF8F347D373109419FCA /* JSONDecoderImpl+UnkeyedContainer.swift in Sources */, - 3A0937ECAED04E938FE1E16DF0209E0D /* JSONDecoderImpl+Unwrap.swift in Sources */, - 07AC0FB4179F34F0A4ED051F601070ED /* JSONEncoderImpl.swift in Sources */, - BCA982DB8C443DDE87991F38CA23B41F /* JSONFuture.swift in Sources */, - D55A00068CBC6B09C12EBADC861C25A7 /* JSONKeyedEncodingContainer.swift in Sources */, - BC149C6146C6D9B298ABEEFBAE0F0175 /* JSONParser.swift in Sources */, - 24136790AF1DEE88A30D3BA6DE370E45 /* JSONSingleValueEncodingContainer.swift in Sources */, - 4493786E35DF7EA198671E0A821BD841 /* JSONUnkeyedEncodingContainer.swift in Sources */, - 2895ACE62FE1FA3E290D52004E37AB4D /* JSONValue.swift in Sources */, - 013C61C7AB20B02E2FCC1573F5A4DB71 /* JSONValue+Extension.swift in Sources */, - 60FC3739BB019E49B1A2DAD5B493B1B9 /* KeysMapper.swift in Sources */, - 3CF857EAB8F74243C4C7C38BD8954280 /* LogCache.swift in Sources */, - C6DF51292895C53276A7501A518C51E4 /* LogContainer.swift in Sources */, - A936311CD410E693911AA86F1CC40EDE /* LogItem.swift in Sources */, - 41DDA49D77D3CBB4415B586999AA4A00 /* Patcher.swift in Sources */, - 5328C0F4990000B52D862722F3B0CBD9 /* Patcher+Provider.swift in Sources */, - CBA14AB1E81568BFF759C46E62760699 /* Patcher+Transformer.swift in Sources */, - B80EA198906F5FB4D40311FB6DA2E681 /* SafeDictionary.swift in Sources */, - 6C5637F843D172A074ADF353C7819663 /* SmartAny.swift in Sources */, - 08CAB9B3C2F12E5DF90C17DB254E7FBC /* SmartAnyImpl.swift in Sources */, - E89F2710A991E624F43528D10DB1EDA4 /* SmartCaseDefaultable.swift in Sources */, - 371BFCDF9A11633A7CB4B2764A1221AF /* SmartCodable.swift in Sources */, - 2966B8EEA17158539FE30D293A39375C /* SmartCodable-dummy.m in Sources */, - B9A076CA02887462D9C6317A50A475A8 /* SmartColor.swift in Sources */, - 32F6DCA1F390EB6D2973DBF49C9EAA66 /* SmartDecodable.swift in Sources */, - 68EDC03B6FDD1617119919D1FA6064FC /* SmartEncodable.swift in Sources */, - 34CADE3C501DDDBC611372FFC47EB76B /* SmartFlat.swift in Sources */, - 8952579697D68D49CD78EE6D39A7B998 /* SmartJSONDecoder.swift in Sources */, - 2D2F2BAFE5611BB96976F2185EB03511 /* SmartJSONEncoder.swift in Sources */, - CD4787947762A757925270DF60081B63 /* SmartKeyDecodingStrategy.swift in Sources */, - FBBAE118D4BAAAB22EC72EFDADF8ABC6 /* SmartLog.swift in Sources */, - FAE2763308B515470AE80DC8217BC2BA /* SmartUpdater.swift in Sources */, - 4AFC95F0D6024931206B027D96162B85 /* Transformer.swift in Sources */, - C2D38C3C57566F2C7E5A9130A037CD8B /* URLTransformer.swift in Sources */, + 869B56CCB4CD42940E094F803B9E1491 /* _SpecialTreatmentEncoder.swift in Sources */, + A53DAC9DCF8CFC2D8132F358358A711A /* Cachable.swift in Sources */, + 46299168D10E2826AFE4033D4EB3D4E7 /* ColorTransformer.swift in Sources */, + E1A549288829A53454B5D0647E11E6DC /* DataTransformer.swift in Sources */, + 37DDC069AE25734DCDE5C45BD3E824CE /* DateTransformer.swift in Sources */, + 11890AF7730428D891E2A738069AA93D /* DecodingCache.swift in Sources */, + 4EC9F3D7BADE272E116CBB82C1B09733 /* DecodingError+Extension.swift in Sources */, + FB996AA9AD236E2D353B68BD10AAD59E /* EncodingCache.swift in Sources */, + 09C640A3D8D231523EA022E9C914914A /* IgnoredKey.swift in Sources */, + 2D9190CD7E6DD720A73A411AADC89BF1 /* JSONDecoderImpl.swift in Sources */, + C07B7B52652B21207EBE47F104F1DAF1 /* JSONDecoderImpl+KeyedContainer.swift in Sources */, + 3B9DCA7CD6FF36287D93FF80C2AC0BB1 /* JSONDecoderImpl+SingleValueContainer.swift in Sources */, + 8D3556BB6063CDEF78CD36FCE845A413 /* JSONDecoderImpl+UnkeyedContainer.swift in Sources */, + D5D2317CAD334B7F2E377833967C042A /* JSONDecoderImpl+Unwrap.swift in Sources */, + 8E8B1CA2D22EF1ED40C132088CAD5236 /* JSONEncoderImpl.swift in Sources */, + FDB88B71E230C8F3FC5565AC751F9549 /* JSONFuture.swift in Sources */, + F73487EF44E6F79E972B5335E573E01B /* JSONKeyedEncodingContainer.swift in Sources */, + E0F7FB86C184BE231F38E361118D95AC /* JSONParser.swift in Sources */, + 62A3A1BBFC4FE40DD36FD2DE8724AA08 /* JSONSingleValueEncodingContainer.swift in Sources */, + 254138EDA641C82997944A4ED0832F22 /* JSONUnkeyedEncodingContainer.swift in Sources */, + 946753DFD025B199BEDDC98243E0D938 /* JSONValue.swift in Sources */, + 7018DA48BBE5B5A36DD63AEF50AF8F16 /* JSONValue+Extension.swift in Sources */, + 24B8F3340BBB1B99480144E954E7BFF7 /* KeysMapper.swift in Sources */, + AC02F23C7A973408360250190ED04E4C /* LogCache.swift in Sources */, + 79DFFAFFF2E66C8B2353339AEB7C368C /* LogContainer.swift in Sources */, + E5841B5CDD395256F1E31D88D706583E /* LogItem.swift in Sources */, + 4061431910C9FF38677270D70B2D90A9 /* Patcher.swift in Sources */, + A46A4425E81D04C4BE4D35662090879A /* Patcher+Provider.swift in Sources */, + FD51EBCB0539A93F0FD84EBE4C24B4E6 /* Patcher+Transformer.swift in Sources */, + C0F572D6E53B27FE0055AA0E5AB84AF5 /* SafeDictionary.swift in Sources */, + 46A2608FE28FE830D89FF68BC66174F8 /* SmartAny.swift in Sources */, + A82CB75E0FBF78C93E1D221F306B1514 /* SmartAnyImpl.swift in Sources */, + 37AEE543E1F06554044E1CE36AA0B4BC /* SmartCaseDefaultable.swift in Sources */, + 9980AB0041C2B3A5040B03A139F8F9EC /* SmartCodable.swift in Sources */, + DC237D98BF3D52F611F16AB50B6358DD /* SmartCodable-dummy.m in Sources */, + 3700889891FFF72B524FD268347E6CB2 /* SmartColor.swift in Sources */, + 62294521012EBDF5183FB333DC5C0F1A /* SmartDecodable.swift in Sources */, + 9C271308C57ABF601FA728BDEF051CA2 /* SmartEncodable.swift in Sources */, + 856524D53848D8A483177D2AC503963D /* SmartFlat.swift in Sources */, + 299EB3042DC7AFAAB850F558532DE8F9 /* SmartJSONDecoder.swift in Sources */, + 170D20E76ED47F45049C0DCB695E6B3F /* SmartJSONEncoder.swift in Sources */, + AF083831A977430C74E2DD79239E9F70 /* SmartKeyDecodingStrategy.swift in Sources */, + ACF7FD0E2F1722FB2684CAD5F0F9754C /* SmartLog.swift in Sources */, + 2CCD17EC8A650B81A117878EBBCF4251 /* SmartUpdater.swift in Sources */, + 5CF8186504D6DF7D65E8AE96161A1633 /* Transformer.swift in Sources */, + BB5649AF1187F9EA6F90B983C2A1DC8E /* URLTransformer.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2273,7 +2285,8 @@ MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; SYMROOT = "${SRCROOT}/../build"; }; diff --git a/Example/Pods/Target Support Files/SmartCodable/SmartCodable-Info.plist b/Example/Pods/Target Support Files/SmartCodable/SmartCodable-Info.plist index 8985f2c..cbfa5f8 100644 --- a/Example/Pods/Target Support Files/SmartCodable/SmartCodable-Info.plist +++ b/Example/Pods/Target Support Files/SmartCodable/SmartCodable-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.1.6 + 4.1.7 CFBundleSignature ???? CFBundleVersion diff --git a/Example/SmartCodable/Test2ViewController.swift b/Example/SmartCodable/Test2ViewController.swift index 783ac2d..2f2c01f 100644 --- a/Example/SmartCodable/Test2ViewController.swift +++ b/Example/SmartCodable/Test2ViewController.swift @@ -16,22 +16,28 @@ class Test2ViewController: BaseViewController { let dict: [String: Any] = [ - "nick_name": "Mccc" + "error": "200", + "code": 400, + "data": [ + "code": "abc", + "lyricType": "9999999", + "expriryTime": "NaN" + ] ] - let option = SmartDecodingOption.key(.fromSnakeCase) - guard let model = Model.deserialize(from: dict, options: [option]) else { return } - - smartPrint(value: model) - - let string = model.toJSONString(useMappedKeys: false) - print(string) + guard let model = Model.deserialize(from: dict) else { return } + print(model) } - struct Model: SmartCodable { - var nickName: String = "" - - + var error: Int? + var code: Int? + var data: SubModel? + } + + struct SubModel: SmartCodable { + var code: Int? + var lyricType: Int? + var expriryTime: Int? } } diff --git a/SmartCodable.podspec b/SmartCodable.podspec index 5fa5455..c168551 100644 --- a/SmartCodable.podspec +++ b/SmartCodable.podspec @@ -12,7 +12,7 @@ Pod::Spec.new do |s| s.name = 'SmartCodable' - s.version = '4.1.6' + s.version = '4.1.7' s.summary = '数据解析库' s.homepage = 'https://github.com/intsig171' diff --git a/SmartCodable/Classes/JSONDecoder/Patcher/Patcher+Transformer.swift b/SmartCodable/Classes/JSONDecoder/Patcher/Patcher+Transformer.swift index 73eca14..9ec1b21 100644 --- a/SmartCodable/Classes/JSONDecoder/Patcher/Patcher+Transformer.swift +++ b/SmartCodable/Classes/JSONDecoder/Patcher/Patcher+Transformer.swift @@ -172,14 +172,14 @@ private func _fixedWidthInteger(from value: JSONValue) -> case .string(let string): if let integer = T(string) { return integer - } else if let float = Double(string) { - return T(float) + } else if let float = Double(string), float.isFinite, float >= Double(T.min) && float <= Double(T.max), let integer = T(exactly: float) { + return integer } case .number(let number): if let integer = T(number) { return integer - } else if let float = Double(number) { - return T(float) + } else if let float = Double(number), float.isFinite, float >= Double(T.min) && float <= Double(T.max), let integer = T(exactly: float) { + return integer } default: break