KiwiCodec.Wire.Varint (kiwi_codec v0.2.2)

Copy Markdown View Source

Kiwi integer wire encoding.

Kiwi uses unsigned LEB128 for uint/uint64 and ZigZag + unsigned LEB128 for int/int64. The actual LEB128/ZigZag mechanics are delegated to the varint package; this module keeps Kiwi-specific range checks and error normalization at the wire boundary.

Summary

Functions

decode_int64(binary)

@spec decode_int64(binary()) :: {integer(), binary()}

decode_int(binary)

@spec decode_int(binary()) :: {integer(), binary()}

decode_uint64(binary)

@spec decode_uint64(binary()) :: {non_neg_integer(), binary()}

decode_uint(binary)

@spec decode_uint(binary()) :: {non_neg_integer(), binary()}

encode_int64(value)

@spec encode_int64(integer()) :: binary()

encode_int(value)

@spec encode_int(integer()) :: binary()

encode_uint64(value)

@spec encode_uint64(non_neg_integer()) :: binary()

encode_uint(value)

@spec encode_uint(non_neg_integer()) :: binary()