Я пытаюсь реализовать кодек для формата PSQL COPY BINARY.Подробности в секции Tuple
Int, Bool, String поля кодируются как <4 byte length><var length payload>
Я реализовал их так:
val psqlUtf8: Codec[String] = variableSizeBytes(int32, utf8)
val psqlBool: Codec[Boolean] = variableSizeBytes(int32, byte).xmap[Boolean](_ == 1, v ⇒ if (v) 1 else 0)
val psqlInt: Codec[Int] = variableSizeBytes(int32, int32)
Нодля кодирования NULL они используют поле длины -1.
Не могли бы вы подсказать, как я могу реализовать кодек [Option [T]] для такой ситуации?