Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This section describes how nullable structs will be serialized on the wire. The basic idea is to precede the nullable struct by a byte which represents whether the struct is null or present. The format is slightly different depending on whether the field is optional/tagger or not.

Note that non-nullable structs remain serialized as they are today.

...

We follow the current convention used by other nullable fields which uses -1 when the field is null.

INT8BYTES
-1 if null; 1 if not null.The bytes representing the struct.

Optional/Tagged Field

A unsigned variable integer (VARINT) representing whether the struct is present (1) or null (0), followed by the bytes (BYTES) of the struct.

We follow the current convention used by other nullable tagged fields which uses 0 when the field is null. In any cases, it will always use one byte.

VARINTBYTES
0 if null; 1 if not null.The bytes representing the struct.

Compatibility, Deprecation, and Migration Plan

...