   end
 
   defp parse_headers(buffer, options, headers \\ []) do
-    {:ok, line_length_limit} = Keyword.fetch(options, :line_length_limit)
-
-    case :erlang.decode_packet(:httph_bin, buffer, line_length: line_length_limit) do
+    {:ok, maximum_line_length} = Keyword.fetch(options, :maximum_line_length)
+
+    case :erlang.decode_packet(:httph_bin, buffer, line_length: maximum_line_length) do
       {:ok, :http_eoh, rest} ->
         {:ok, Enum.reverse(headers), rest}
 

      :ok

      iex> {:more, _} = "GET / HTTP/1.1\\r\\nhost: \#{String.duplicate("a", 1992)}\\r\\n"
      ...> |> Raxx.HTTP1.parse_request(scheme: :http, line_length_limit: 2000)
      ...> :ok
      :ok
  """

      :ok

      iex> {:more, _} = "HTTP/1.1 204 No Content\\r\\nfoo: \#{String.duplicate("a", 1993)}\\r\\n"
      ...> |> Raxx.HTTP1.parse_response(maximum_line_length: 2000)
      ...> :ok
      :ok

      # Test maximum number of headers is limited
  """
  @spec parse_response(binary, [option]) ::
          {:ok, {Raxx.Response.t(), connection_status, body_read_state, binary}}
          | {:error, term}
          | {:more, :undefined}
        when option: {:maximum_line_length, integer}
  def parse_response(buffer, options \\ []) do
    maximum_line_length = Keyword.get(options, :maximum_line_length, @maximum_line_length)

    case :erlang.decode_packet(:http_bin, buffer, line_length: maximum_line_length) do
      {:ok, {:http_response, {1, 1}, status, _reason_phrase}, rest} ->
        case parse_headers(rest, maximum_line_length: maximum_line_length) do
          {:ok, headers, rest2} ->
            {headers, body_present, body_read_state} = decode_payload(headers)

