GitHub
MetaCodable: расширение Codable с помощью метапрограммирования макросов
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(_:)и т.д.
-
Аналитика магазинов2 недели назадМобильный рынок Ближнего Востока: выручка растёт быстрее загрузок: исследование Bidease и Sensor Tower
-
Магазины приложений4 недели назадApple заявляет, что иск Epic не должен менять правила App Store для всех разработчиков
-
Новости4 недели назадВидео и подкасты о мобильной разработке 2026.22
-
Разработка4 недели назадПрекращаем использовать .onAppear для API-вызовов: осваиваем .task и конечный автомат
