QuicHttp3.Qpack (elixir_quic_http3 v0.16.0)

View Source

QPACK wire primitives for static and literal header fields.

Dynamic table state is bounded and opt-in. Encoder/decoder stream synchronization remains the responsibility of the HTTP/3 session layer.

Summary

Types

decode_result()

@type decode_result() :: {:ok, non_neg_integer(), binary()} | :more | {:error, term()}

dynamic_entry()

@type dynamic_entry() :: %{name: binary(), value: binary(), size: pos_integer()}

field()

@type field() :: {binary(), binary()}

t()

@type t() :: %QuicHttp3.Qpack{
  capacity: non_neg_integer(),
  entries: [dynamic_entry()],
  insert_count: non_neg_integer(),
  size: non_neg_integer()
}

Functions

decode_header_block(data, opts \\ [])

@spec decode_header_block(
  binary(),
  keyword()
) :: {:ok, [field()]} | :more | {:error, term()}

decode_integer(arg1, prefix_bits)

@spec decode_integer(binary(), 1..8) :: decode_result()

decode_string(data)

@spec decode_string(binary()) :: {:ok, binary(), binary()} | :more | {:error, term()}

dynamic(arg1, index)

@spec dynamic(t(), non_neg_integer()) ::
  {:ok, field()} | {:error, :invalid_dynamic_index}

encode_header_block(fields, opts \\ [])

@spec encode_header_block(
  [field()],
  keyword()
) :: {:ok, binary()} | {:error, term()}

encode_integer(value, prefix_bits, prefix)

@spec encode_integer(non_neg_integer(), 1..8, non_neg_integer()) ::
  {:ok, binary()} | {:error, term()}

encode_string(value)

@spec encode_string(binary()) :: {:ok, binary()} | {:error, term()}

encode_string(value, list)

insert(table, name, value)

@spec insert(t(), binary(), binary()) :: {:ok, t()} | {:error, term()}

new(opts \\ [])

@spec new(keyword()) :: t()

static(index)

@spec static(non_neg_integer()) :: {:ok, field()} | {:error, :invalid_static_index}