Connect with us

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(_:) и т.д.
MetaCodable на GitHub: https://github.com/SwiftyLab/MetaCodable
Платформа: iOS
⭐️: 180
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.

Наши партнеры:

LEGALBET

Мобильные приложения для ставок на спорт
Хорошие новости

Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: