HTTP.HTTP2.WireProfile (http_core v0.15.0)

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: term(),
  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)

@spec order_headers(t(), [{String.t(), String.t()}], [{String.t(), String.t()}]) :: [
  {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()}