Skip to main content

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