{"repo":"SwiftyLab/MetaCodable","free":true,"listed":false,"github":"https://github.com/SwiftyLab/MetaCodable","clone":"git clone https://github.com/SwiftyLab/MetaCodable.git","description":"Supercharge Swift's Codable implementations with macros meta-programming.","language":"Swift","stars":779,"topics":["codable","code-generation","macro","metaprogramming","no-boilerplate","swift","swift-codable","swift-macros","swift-package-manager","swift-package-manager-plugin"],"license":"MIT","category":"dev-tools","readme_excerpt":"MetaCodable Supercharge Swift 's Codable implementations with macros. Overview MetaCodable framework exposes custom macros which can be used to generate dynamic Codable implementations. The core of the framework is Codable(commonStrategies:) macro which generates the implementation aided by data provided with using other macros. MetaCodable aims to supercharge your Codable implementations by providing these inbox features: - Allows custom CodingKey value declaration per variable with CodedAt( :) passing single argument, instead of requiring you to write all the CodingKey values. - Allows to create flattened model for nested CodingKey values with CodedAt( :) and CodedIn( :) . - Allows to create composition of multiple Codable types with CodedAt( :) passing no arguments. - Allows to read data from additional fallback CodingKey s provided with CodedAs( : :) . - Allows to provide default value in case of decoding failures with Default( :) , or only in case of failures when missing value with Default(ifMissing:) . Different default values can also be used for value missing and other errors respectively with Default(ifMissing:forErrors:) . - Allows to create custom decoding/encoding strategies with HelperCoder and using them with CodedBy( :) , CodedBy( :properties:) or others. i.e. LossySequenceCoder etc. - Allows applying common strategies like ValueCoder to all properties of a type through the Codable(commonStrategies:) parameter, reducing the need for repetitive property annotat","default_branch":null,"files":null,"tree":[],"storefront":"/r/SwiftyLab","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/SwiftyLab/MetaCodable/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}