-ifndef(LIVERY_HRL).
-define(LIVERY_HRL, true).
-record(livery_req, {
protocol = h1 :: h1 | h2 | h3,
method = <<"GET">> :: binary(),
scheme = <<"http">> :: binary(),
authority = <<>> :: binary(),
path = <<"/">> :: binary(),
raw_query = <<>> :: binary(),
bindings = #{} :: #{binary() => binary()},
headers = [] :: [{binary(), binary()}],
peer = undefined :: {inet:ip_address(), inet:port_number()} | undefined,
tls = undefined :: undefined | map(),
body = empty ::
empty
| {buffered, iodata()}
| {stream, term()},
adapter = undefined :: module() | undefined,
stream = undefined :: term(),
engine_pid = undefined :: pid() | undefined,
notifier_pid = undefined :: pid() | undefined,
disc_ref = undefined :: reference() | undefined,
req_id = <<>> :: binary(),
started_at = undefined :: integer() | undefined,
meta = #{} :: map(),
config = undefined :: term()
}).
-record(livery_resp, {
status = 200 :: 100..599,
headers = [] :: [{binary(), binary()}],
body = {full, <<>>} ::
{full, iodata()}
| {chunked, fun((term()) -> ok | {error, term()})}
| {sse, fun((term()) -> ok | {error, term()})}
| {deferred, fun(() -> term())}
| {file, file:name_all(), undefined | {non_neg_integer(), non_neg_integer() | eof}}
| {upgrade, ws | wt, term()}
| empty
| taken_over,
trailers ::
undefined
| [{binary(), binary()}]
| fun(() -> [{binary(), binary()}]),
%% Early-response inbound-drain budget for HTTP/1.1. When a handler
%% commits this response before the request body is fully read, h1
%% drains the leftover inbound body before closing so the client
%% reads the response. `default' uses the listener budget; `none'
%% disables the drain (close immediately); `{MaxBytes, MaxMs}' (either
%% component `infinity') bounds it for this response only. Honored on
%% full responses; streaming responses use the listener budget.
early_response_drain = default ::
default
| none
| {non_neg_integer() | infinity, non_neg_integer() | infinity}
}).
-endif.