Я работаю над двоичным codeировщиком/деcodeером с протоколом Codable.
Одной из целей является обеспечение эффективности. То есть я хотел бы использовать специальную обработку случаев Data
/[UInt8]
, чтобы минимизировать количество выделений/копирований памяти.
Однако Codable и связанные с ним протоколы на самом деле не очень хорошо документированы, и есть много дополнительных методов, и я не уверен, нужно ли мне их реализовывать или нет. Например, UnkeyedEncodingContainer.encode(_ value: UInt8)
поставляется с реализацией по умолчанию. Но я хочу проверить, что он делает, чтобы решить, нужна ли мне пользовательская реализация.
Где я могу найти реализацию этих методов по умолчанию?
Где я могу найти реализацию Codable
для Data
/ Что мне нужно сделать, чтобы настроить двоичное codeирование для Data
?
Я нашел некоторые, но не все реализации по умолчанию https://github.com/swiftlang/swift/blob/4229a917cbfdb7cea16923c4e82f5b0369bfbdc5/stdlib/public/core/Codable.swift#L6735