# `HTTP.HTTP2.Connection`
[🔗](https://github.com/gsmlg-dev/http_fetch/blob/v0.21.16/apps/http_core/lib/http/http2/connection.ex#L1)

Pure HTTP/2 connection state and protocol effects.

# `t`

```elixir
@type t() :: %HTTP.HTTP2.Connection{
  committed: term(),
  connection_receive_window: term(),
  connection_send_window: term(),
  connection_unacknowledged: term(),
  decoder: term(),
  encoder: term(),
  encoder_options: term(),
  goaway_last_stream_id: term(),
  header_block: term(),
  local: term(),
  max_streams: term(),
  next_stream_id: term(),
  peer: term(),
  pending_headers: term(),
  priorities: term(),
  promised: term(),
  state: term(),
  streams: term()
}
```

# `accept_new_stream?`

# `acknowledge_data`

Restores receive credit after wire bytes have been consumed or safely buffered.

# `acknowledge_settings`

# `cancel_headers`

# `commit_headers`

Commits a complete header block as one non-interleavable effect batch.

# `goaway`

# `handle_priority`

# `new`

# `open_stream`

# `priority_update`

# `put_stream`

# `receive_data`

Consumes inbound DATA wire credit without replenishing it.

# `receive_goaway`

# `reject_push`

# `remove_stream`

# `send_data`

Consumes connection and stream send credit and returns one DATA effect.

# `send_data_prefix`

Sends at most the currently eligible DATA prefix and returns the remainder.

# `send_trailers`

Commits bounded request trailers using the connection encoder and closes the send half.

# `stream`

# `update_local_settings`

# `update_peer_settings`

# `update_receive_window`

# `update_send_window`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
