QuicHttp3.Transport behaviour (elixir_quic_http3 v0.16.0)
View SourceNarrow transport contract consumed by the HTTP/3 session layer.
Implementations provide QUIC operations only. HTTP/3 frame parsing, QPACK,
control streams, and request streams remain in QuicHttp3.
Summary
Types
Callbacks
@callback capabilities() :: map()
@callback close(connection(), non_neg_integer(), binary(), options()) :: :ok | failure()
@callback connect(binary() | :inet.ip_address(), :inet.port_number(), options()) :: {:ok, connection()} | failure()
@callback events(connection(), pos_integer(), options()) :: {:ok, list()} | failure()
@callback open_stream(connection(), :bidi | :uni, options()) :: {:ok, stream()} | failure()
@callback read(stream(), pos_integer(), options()) :: {:ok, list()} | failure()
@callback read_datagrams(connection(), pos_integer(), options()) :: {:ok, [binary()]} | failure()
@callback ready(connection(), timeout()) :: :ready | :pending | failure()
@callback reset_stream(stream(), non_neg_integer(), options()) :: {:ok, reference()} | :ok | failure()
@callback send_datagram(connection(), binary(), options()) :: {:ok, reference()} | failure()
@callback stop_stream(stream(), non_neg_integer(), options()) :: {:ok, reference()} | :ok | failure()