       ...> |> Raxx.HTTP1.parse_request(scheme: :http)
       {:more, "GET /path?qs HT"}
 
-      iex> "GET /path?qs HTTP/1.1\\r\\nhost: exa"
-      ...> |> Raxx.HTTP1.parse_request(scheme: :http)
-      {:more, "GET /path?qs HTTP/1.1\\r\\nhost: exa"}
+      iex> "GET /path?qs HTTP/1.1\r\nhost: exa"
+      ...> |> Raxx.HTTP1.parse_request(scheme: :http)
+      {:more, "GET /path?qs HTTP/1.1\r\nhost: exa"}
 
       # Missing host header
-      iex> "GET /path?qs HTTP/1.1\\r\\naccept: text/plain\\r\\n\\r\\n"
+      iex> "GET /path?qs HTTP/1.1\r\naccept: text/plain\r\n\r\n"
       ...> |> Raxx.HTTP1.parse_request(scheme: :http)
       {:error, :no_host_header}
 
       # Invalid start line
-      iex> "!!!BAD_REQUEST_LINE\\r\\n"
-      ...> |> Raxx.HTTP1.parse_request(scheme: :http)
-      {:error, {:invalid_line, "!!!BAD_REQUEST_LINE\\r\\n"}}
+      iex> "!!!BAD_REQUEST_LINE\r\n"
+      ...> |> Raxx.HTTP1.parse_request(scheme: :http)
+      {:error, {:invalid_line, "!!!BAD_REQUEST_LINE\r\n"}}
 
       # Invalid header line
-      iex> "GET / HTTP/1.1\\r\\n!!!BAD_HEADER\\r\\n\\r\\n"
-      ...> |> Raxx.HTTP1.parse_request(scheme: :http)
-      {:error, {:invalid_line, "!!!BAD_HEADER\\r\\n"}}
+      iex> "GET / HTTP/1.1\r\n!!!BAD_HEADER\r\n\r\n"
+      ...> |> Raxx.HTTP1.parse_request(scheme: :http)
+      {:error, {:invalid_line, "!!!BAD_HEADER\r\n"}}
 
       # Test connection status is extracted
-      iex> "GET /path?qs HTTP/1.1\\r\\nhost: example.com\\r\\nconnection: close\\r\\naccept: text/plain\\r\\n\\r\\n"
+      iex> "GET /path?qs HTTP/1.1\r\nhost: example.com\r\nconnection: close\r\naccept: text/plain\r\n\r\n"
       ...> |> Raxx.HTTP1.parse_request(scheme: :http)
       {:ok,
        {%Raxx.Request{

        }, :keepalive, {:complete, ""}, ""}}

      # Test line_length is limited
      # "GET /" +  "HTTP/1.1\\r\\n" = 15
      iex> path = "/" <> String.duplicate("a", 985)
      ...> "GET \#{path} HTTP/1.1\\r\\n"
      ...> |> Raxx.HTTP1.parse_request(scheme: :http)
      {:error, {:line_length_limit_exceeded, :request_line}}

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

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

      iex> "GET / HTTP/1.1\\r\\nhost: \#{String.duplicate("a", 993)}\\r\\n"
      ...> |> Raxx.HTTP1.parse_request(scheme: :http)
      {:error, {:line_length_limit_exceeded, :header_line}}

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

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

      ...> |> Raxx.set_header("accept", "text/plain")
      ...> {head, _body} =  Raxx.HTTP1.serialize_request(request, connection: :close)
      ...> :erlang.iolist_to_binary(head)
      "GET / HTTP/1.1\r\nhost: example.com\r\nconnection: close\r\naccept: text/plain\r\n\r\n"

      iex> request = Raxx.request(:GET, "http://example.com/")
      ...> |> Raxx.set_header("accept", "text/plain")
      ...> {head, _body} =  Raxx.HTTP1.serialize_request(request, connection: :keepalive)
      ...> :erlang.iolist_to_binary(head)
      "GET / HTTP/1.1\r\nhost: example.com\r\nconnection: keep-alive\r\naccept: text/plain\r\n\r\n"
  """
  @spec serialize_request(Raxx.Request.t(), [{:connection, connection_status}]) ::
          {iodata, body_read_state}
