MetaCodable — расширение возможностей реализации Codable в Swift с помощью макросов. Фреймворк предоставляет пользовательские макросы, которые могут быть использованы для генерации динамических реализаций Codable. Ядром фреймворка является макрос Codable(), который генерирует реализацию на основе данных, предоставляемых с помощью других макросов.
MetaCodable нацелен на повышение эффективности ваших реализаций Codable, предоставляя следующие возможности:
- Позволяет объявлять пользовательские значения
CodingKeyдля каждой переменной, вместо того чтобы писать все значенияCodingKeyс помощьюCodedAt(_:), передавая один аргумент. - Позволяет создавать плоскую модель для вложенных значений
CodingKeyсCodedAt(_:)иCodedIn(_:). - Позволяет создавать композицию из нескольких типов
Codableс помощьюCodedAt(_:), не передавая никаких аргументов. - Позволяет предоставлять значение по умолчанию в случае сбоев декодирования с помощью
Default(_:). - Позволяет создавать пользовательские стратегии декодирования/кодирования с помощью
HelperCoderи использовать их с помощьюCodedBy(_:), т.е.LossySequenceCoderи т.д. - Позволяет игнорировать определенные свойства при декодировании/кодировании с помощью
IgnoreCoding(),IgnoreDecoding()и@IgnoreEncoding(). - Позволяет игнорировать все инициализированные свойства типа при декодировании/кодировании с помощью функции
IgnoreCodingInitialized(), если они явно не запрошены для декодирования/кодирования путем добавления каких-либо атрибутов кодирования, т.е.CodedIn(_:),CodedAt(_:),CodedBy(_:),Default(_:)и т.д.

