-spec decode_bytes(binary()) -> {null, binary()} | {binary(), binary()}.
-spec decode_double(binary()) -> {float(), binary()}.
-spec decode_float(binary()) -> {float(), binary()}.
-spec decode_int(binary()) -> {integer(), binary()}.
-spec decode_long(binary()) -> {integer(), binary()}.
-spec decode_long_string(binary()) -> {binary(), binary()}.
-spec decode_long_string_set(binary()) -> {[binary()], binary()}.
-spec decode_number_list(binary()) -> {[integer()], binary()}.
-spec decode_short(binary()) -> {integer(), binary()}.
-spec decode_short_bytes(binary()) -> {binary(), binary()}.
-spec decode_string(binary()) -> {binary(), binary()}.
-spec decode_string_list(binary()) -> {[binary()], binary()}.
-spec decode_string_map(binary()) -> {[{binary(), binary()}], binary()}.
-spec decode_string_multimap(binary()) -> {[{binary(), [binary()]}], binary()}.
-spec decode_tinyint(binary()) -> {integer(), binary()}.
-spec decode_uuid(binary()) -> {binary(), binary()}.
-spec encode_boolean(boolean()) -> binary().
-spec encode_bytes(binary()) -> binary().
-spec encode_double(float()) -> binary().
-spec encode_float(float()) -> binary().
-spec encode_int(integer()) -> binary().
-spec encode_list([binary()]) -> binary().
-spec encode_long(integer()) -> binary().
-spec encode_long_string(binary()) -> binary().
-spec encode_short(integer()) -> binary().
-spec encode_short_bytes(binary()) -> binary().
-spec encode_string(binary()) -> binary().
-spec encode_string_list([binary()]) -> binary().
-spec encode_string_map([{binary(), binary()}]) -> binary().
-spec encode_string_multimap([{binary(), [binary()]}]) -> binary().
-spec encode_tinyint(integer()) -> binary().