lib/safe_rpc/adapter/http/response.ex
defmodule SafeRPC.Adapter.HTTP.Response do
@moduledoc "Framework-neutral HTTP response envelope for SafeRPC adapters."
@type body :: :empty | {:full, iodata()}
@type header :: {String.t(), String.t()}
@type t :: %__MODULE__{status: pos_integer(), headers: [header()], body: body()}
defstruct [:status, headers: [], body: :empty]
def text(status, body, headers \\ []) do
%__MODULE__{status: status, headers: headers, body: {:full, body}}
end
end