nquic_varint (nquic v1.0.0)

View Source

Variable-length integer encoding per RFC 9000 Section 16.

QUIC uses a variable-length encoding for integers up to 2^62 - 1. The two most significant bits indicate the encoding length: 1, 2, 4, or 8 bytes.

Summary

Functions

Decode a variable-length integer from the head of a binary.

Encode an integer as a QUIC variable-length integer.

Encode with overflow checking. Returns {error, overflow} for values >= 2^62.

Return the encoded byte size of a variable-length integer (1, 2, 4, or 8).

Types

t()

-type t() :: 0..4611686018427387903.

Functions

decode/1

-spec decode(binary()) -> {ok, t(), binary()} | {error, incomplete_binary}.

Decode a variable-length integer from the head of a binary.

encode/1

-spec encode(t()) -> binary().

Encode an integer as a QUIC variable-length integer.

safe_encode/1

-spec safe_encode(integer()) -> {ok, binary()} | {error, overflow}.

Encode with overflow checking. Returns {error, overflow} for values >= 2^62.

size/1

-spec size(t()) -> 1 | 2 | 4 | 8.

Return the encoded byte size of a variable-length integer (1, 2, 4, or 8).