       {:ok, status, headers, %{pid: pid, stream: stream, opts: Enum.into(opts, [])}}
     end
 
+    @doc """
+    Reads chunk of the response body.
+    Returns `{:fin, binary()}` if all body received, otherwise returns `{:nofin, binary()}`.
+    """
     @spec read_chunk(pid(), reference(), keyword() | map()) ::
             {:fin, binary()} | {:nofin, binary()} | {:error, :timeout}
     def read_chunk(pid, stream, opts) do

if Code.ensure_loaded?(:gun) do
  defmodule Tesla.Adapter.Gun do
    @moduledoc """
    Adapter for [gun] https://github.com/ninenines/gun

    Remember to add `{:gun, "~> 1.3"}` to dependencies.
    In version 1.3 gun sends `host` header with port. Fixed in master branch.

      end
    end

    @doc """
    Brutally close the `gun` connection
    """
    @spec close(pid()) :: :ok
    def close(pid) do
      :gun.close(pid)
