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(_:)
и т.д.
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
-
Интегрированные среды разработки2 недели назад
Лучшая работа с Android Studio: 5 советов
-
Новости4 недели назад
Видео и подкасты о мобильной разработке 2024.43
-
Новости3 недели назад
Видео и подкасты о мобильной разработке 2024.44
-
Исследования2 недели назад
Поможет ли новая архитектура React Native отобрать лидерство у Flutter в кроссплатформенной разработке?