10#include <unordered_map> 
   12#include <userver/utils/impl/internal_tag_fwd.hpp> 
   13#include <userver/utils/str_icase.hpp> 
   15USERVER_NAMESPACE_BEGIN
 
   20[[deprecated(
"Use a more strict http::parser::UrlDecode instead")]] std::string
 
   24std::string 
UrlEncode(std::string_view input_string);
 
   26using Args = std::unordered_map<std::string, std::string, utils::StrCaseHash>;
 
   27using MultiArgs = std::multimap<std::string, std::string>;
 
   34    const std::unordered_map<std::string, std::string>& query_args);
 
   38    std::initializer_list<std::pair<std::string_view, std::string_view>>
 
   42std::string 
MakeUrl(std::string_view path, 
const Args& query_args);
 
   46    std::string_view path,
 
   47    const std::unordered_map<std::string, std::string>& query_args);
 
   50std::string 
MakeUrl(std::string_view path, 
const Args& query_args,
 
   51                    MultiArgs query_multiargs);
 
   55    std::string_view path,
 
   56    std::initializer_list<std::pair<std::string_view, std::string_view>>
 
   70std::string UrlDecode(utils::impl::InternalTag, std::string_view range);