Пример struct Person
, который нужно сериализовать:
struct Person {
let firstName: String
let lastName: String
}
Мы могли бы привести его в соответствие с протоколами Encodable
, Decodable
или Codable
. Я понимаю, что наш выбор между Encodable
и Decodable
зависит от варианта использования (например, если мы обращаемся к API и нам не нужно декодировать ответ, содержащий тот же тип), но мы также могли бы привести его в соответствие с Codable
, если структура должен использоваться как для кодирования, так и для декодирования.
Если нам нужна структура исключительно для кодирования или декодирования, но не для того и другого одновременно, не будет ли плохой идеей с точки зрения производительности просто использовать универсальный Codable
вместо указания Encodable
/Decodable
соответствие?
Очевидным недостатком использования Codable
вместо указания Encodable
/Decodable
является то, что другой программист может неправильно истолковать структуру как используемую для кодирования и декодирования, тогда как на самом деле происходит только одно из двух. Но что, если я строго заинтересован в производительности?