├── .gitignore ├── .swiftpm └── xcode │ └── package.xcworkspace │ └── contents.xcworkspacedata ├── HappyCodable.podspec ├── LICENSE ├── Package.swift ├── Package@swift-5.9.swift ├── Package@swift-5.swift ├── Plugins └── Lint │ ├── CommonBuildToolPlugin.swift │ ├── LintPlugin.swift │ └── swiftlint.yaml ├── README.cn.md ├── README.md ├── Sources ├── HappyCodable.podspec ├── HappyCodable │ ├── extension │ │ ├── Array+Extension.swift │ │ ├── Decodable.swift │ │ ├── Encodable.swift │ │ ├── KeyedDecodingContainer.swift │ │ ├── KeyedEncodingContainer.swift │ │ └── String+CodingKey.swift │ ├── interface │ │ ├── HappyCodable+Helper.swift │ │ ├── HappyCodable+Macro.swift │ │ └── HappyCodable.swift │ └── types │ │ ├── AnyCodable.swift │ │ ├── Datable.swift │ │ ├── DecodeError.swift │ │ └── ThreadLocalStorage.swift ├── HappyCodablePlugin │ ├── Macros.swift │ ├── Plugin.swift │ ├── extension │ │ ├── LabeledExprListSyntax.swift │ │ └── SyntaxStringInterpolation.swift │ └── types │ │ ├── CodableItem.swift │ │ ├── DeclSyntaxProtocolHelper.swift │ │ └── SimpleDiagnosticMessage.swift └── HappyCodableShared │ └── Warnings.swift └── Tests ├── HappyCodablePluginTests └── HappyCodableTests.swift ├── HappyCodableTests ├── ArrayNullTest.swift ├── ArrayTest.swift ├── AttributesTest.swift ├── CodingKeysExistTests.swift ├── CommonTests.swift ├── DataStrategyTest.swift ├── DateStrategyTest.swift ├── DynamicDefaultTest.swift ├── Info.plist ├── KeyedDecodingContainerTests.swift ├── NonConformingFloatStrategyTest.swift ├── TestObjects │ ├── Class.swift │ ├── CodingKeysExist.swift │ ├── DataStrategy.swift │ ├── DateStrategy.swift │ ├── DynamicDefault.swift │ ├── ForKeyedDecodingContainer.swift │ ├── HappyCodable.swift │ ├── NonConformingFloatStrategy.swift │ ├── Struct.swift │ ├── Uncoding.swift │ └── WithAttribute.swift ├── TypeMismatchTests.swift └── UncodingTest.swift └── Migration ├── .gitignore ├── Package.swift └── Sources └── main.swift /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/.gitignore -------------------------------------------------------------------------------- /.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /HappyCodable.podspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/HappyCodable.podspec -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/LICENSE -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Package.swift -------------------------------------------------------------------------------- /Package@swift-5.9.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Package@swift-5.9.swift -------------------------------------------------------------------------------- /Package@swift-5.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Package@swift-5.swift -------------------------------------------------------------------------------- /Plugins/Lint/CommonBuildToolPlugin.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Plugins/Lint/CommonBuildToolPlugin.swift -------------------------------------------------------------------------------- /Plugins/Lint/LintPlugin.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Plugins/Lint/LintPlugin.swift -------------------------------------------------------------------------------- /Plugins/Lint/swiftlint.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Plugins/Lint/swiftlint.yaml -------------------------------------------------------------------------------- /README.cn.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/README.cn.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/README.md -------------------------------------------------------------------------------- /Sources/HappyCodable.podspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodable.podspec -------------------------------------------------------------------------------- /Sources/HappyCodable/extension/Array+Extension.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodable/extension/Array+Extension.swift -------------------------------------------------------------------------------- /Sources/HappyCodable/extension/Decodable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodable/extension/Decodable.swift -------------------------------------------------------------------------------- /Sources/HappyCodable/extension/Encodable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodable/extension/Encodable.swift -------------------------------------------------------------------------------- /Sources/HappyCodable/extension/KeyedDecodingContainer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodable/extension/KeyedDecodingContainer.swift -------------------------------------------------------------------------------- /Sources/HappyCodable/extension/KeyedEncodingContainer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodable/extension/KeyedEncodingContainer.swift -------------------------------------------------------------------------------- /Sources/HappyCodable/extension/String+CodingKey.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodable/extension/String+CodingKey.swift -------------------------------------------------------------------------------- /Sources/HappyCodable/interface/HappyCodable+Helper.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodable/interface/HappyCodable+Helper.swift -------------------------------------------------------------------------------- /Sources/HappyCodable/interface/HappyCodable+Macro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodable/interface/HappyCodable+Macro.swift -------------------------------------------------------------------------------- /Sources/HappyCodable/interface/HappyCodable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodable/interface/HappyCodable.swift -------------------------------------------------------------------------------- /Sources/HappyCodable/types/AnyCodable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodable/types/AnyCodable.swift -------------------------------------------------------------------------------- /Sources/HappyCodable/types/Datable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodable/types/Datable.swift -------------------------------------------------------------------------------- /Sources/HappyCodable/types/DecodeError.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodable/types/DecodeError.swift -------------------------------------------------------------------------------- /Sources/HappyCodable/types/ThreadLocalStorage.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodable/types/ThreadLocalStorage.swift -------------------------------------------------------------------------------- /Sources/HappyCodablePlugin/Macros.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodablePlugin/Macros.swift -------------------------------------------------------------------------------- /Sources/HappyCodablePlugin/Plugin.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodablePlugin/Plugin.swift -------------------------------------------------------------------------------- /Sources/HappyCodablePlugin/extension/LabeledExprListSyntax.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodablePlugin/extension/LabeledExprListSyntax.swift -------------------------------------------------------------------------------- /Sources/HappyCodablePlugin/extension/SyntaxStringInterpolation.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodablePlugin/extension/SyntaxStringInterpolation.swift -------------------------------------------------------------------------------- /Sources/HappyCodablePlugin/types/CodableItem.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodablePlugin/types/CodableItem.swift -------------------------------------------------------------------------------- /Sources/HappyCodablePlugin/types/DeclSyntaxProtocolHelper.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodablePlugin/types/DeclSyntaxProtocolHelper.swift -------------------------------------------------------------------------------- /Sources/HappyCodablePlugin/types/SimpleDiagnosticMessage.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodablePlugin/types/SimpleDiagnosticMessage.swift -------------------------------------------------------------------------------- /Sources/HappyCodableShared/Warnings.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Sources/HappyCodableShared/Warnings.swift -------------------------------------------------------------------------------- /Tests/HappyCodablePluginTests/HappyCodableTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodablePluginTests/HappyCodableTests.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/ArrayNullTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/ArrayNullTest.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/ArrayTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/ArrayTest.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/AttributesTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/AttributesTest.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/CodingKeysExistTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/CodingKeysExistTests.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/CommonTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/CommonTests.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/DataStrategyTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/DataStrategyTest.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/DateStrategyTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/DateStrategyTest.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/DynamicDefaultTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/DynamicDefaultTest.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/Info.plist -------------------------------------------------------------------------------- /Tests/HappyCodableTests/KeyedDecodingContainerTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/KeyedDecodingContainerTests.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/NonConformingFloatStrategyTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/NonConformingFloatStrategyTest.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/TestObjects/Class.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/TestObjects/Class.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/TestObjects/CodingKeysExist.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/TestObjects/CodingKeysExist.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/TestObjects/DataStrategy.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/TestObjects/DataStrategy.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/TestObjects/DateStrategy.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/TestObjects/DateStrategy.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/TestObjects/DynamicDefault.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/TestObjects/DynamicDefault.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/TestObjects/ForKeyedDecodingContainer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/TestObjects/ForKeyedDecodingContainer.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/TestObjects/HappyCodable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/TestObjects/HappyCodable.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/TestObjects/NonConformingFloatStrategy.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/TestObjects/NonConformingFloatStrategy.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/TestObjects/Struct.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/TestObjects/Struct.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/TestObjects/Uncoding.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/TestObjects/Uncoding.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/TestObjects/WithAttribute.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/TestObjects/WithAttribute.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/TypeMismatchTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/TypeMismatchTests.swift -------------------------------------------------------------------------------- /Tests/HappyCodableTests/UncodingTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/HappyCodableTests/UncodingTest.swift -------------------------------------------------------------------------------- /Tests/Migration/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/Migration/.gitignore -------------------------------------------------------------------------------- /Tests/Migration/Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/Migration/Package.swift -------------------------------------------------------------------------------- /Tests/Migration/Sources/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miku1958/HappyCodable/HEAD/Tests/Migration/Sources/main.swift --------------------------------------------------------------------------------