HTTP.HTTP2.WireProfile (http_core v0.16.7)

Copy Markdown View Source

Versioned, finite HTTP/2 wire configuration.

A profile keeps wire-order-sensitive values as lists. compile/1 is the only boundary at which external maps are accepted; unknown keys and unsupported combinations are rejected instead of being silently ignored.

Summary

Types

t()

@type t() :: %HTTP.HTTP2.WireProfile{
  connection_initial_window: term(),
  default_user_agent: term(),
  evidence: term(),
  hpack: term(),
  id: term(),
  max_data_frame: term(),
  max_header_fragment: term(),
  padding: term(),
  priority: term(),
  pseudo_headers: term(),
  push: term(),
  receive_window_increment: term(),
  receive_window_target: term(),
  receive_window_threshold: term(),
  regular_headers: :input | :lexicographic | :reverse_input,
  revision: term(),
  settings: term(),
  source: term(),
  stream_initial_window: term()
}

Functions

compile(profile)

@spec compile(t() | map() | atom() | binary()) :: {:ok, t()} | {:error, term()}

digest(profile)

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

initial_window_increment(profile)

@spec initial_window_increment(t() | map()) ::
  {:ok, non_neg_integer()} | {:error, term()}

native_v1()

@spec native_v1() :: t()

order_headers(p, pseudo, regular, purpose \\ :request)

@spec order_headers(
  t(),
  [{String.t(), String.t()}],
  [{String.t(), String.t()}],
  :request | :extended_connect
) :: [{String.t(), String.t()}]

settings_defaults()

settings_payload(profile)

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

synthetic_test_v1()

@spec synthetic_test_v1() :: t()

synthetic_test_v2()

@spec synthetic_test_v2() :: t()

validate(p)

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