11#ifndef ADA_URL_SEARCH_PARAMS_H
12#define ADA_URL_SEARCH_PARAMS_H
30template <
typename T, url_search_params_iter_type Type>
31struct url_search_params_iter;
81 [[nodiscard]]
inline size_t size() const noexcept;
89 inline
void append(std::string_view key, std::string_view value);
96 inline
void remove(std::string_view key);
103 inline
void remove(std::string_view key, std::string_view value);
111 inline std::optional<std::string_view>
get(std::string_view key);
119 inline std::vector<std::
string>
get_all(std::string_view key);
127 inline
bool has(std::string_view key) noexcept;
135 inline
bool has(std::string_view key, std::string_view value) noexcept;
143 inline
void set(std::string_view key, std::string_view value);
184 inline auto
begin()
const {
return params.begin(); }
185 inline auto end()
const {
return params.end(); }
186 inline auto front()
const {
return params.front(); }
187 inline auto back()
const {
return params.back(); }
188 inline auto operator[](
size_t index)
const {
return params[index]; }
196 void reset(std::string_view input);
199 typedef std::pair<std::string, std::string> key_value_pair;
200 std::vector<key_value_pair> params{};
206 void initialize(std::string_view init);
208 template <
typename T, url_search_params_iter_type Type>
223template <
typename T, url_search_params_iter_type Type>
237 inline std::optional<T>
next();
url_search_params_iter< std::string_view, url_search_params_iter_type::VALUES > url_search_params_values_iter
url_search_params_iter< key_value_view_pair, url_search_params_iter_type::ENTRIES > url_search_params_entries_iter
url_search_params_iter< std::string_view, url_search_params_iter_type::KEYS > url_search_params_keys_iter
url_search_params_iter_type
Iterator types for url_search_params iteration.
std::pair< std::string_view, std::string_view > key_value_view_pair
JavaScript-style iterator for url_search_params.
friend struct url_search_params
url_search_params_iter(const url_search_params_iter &u)=default
url_search_params_iter & operator=(url_search_params_iter &&u) noexcept=default
std::optional< T > next()
url_search_params_iter(url_search_params_iter &&u) noexcept=default
~url_search_params_iter()=default
url_search_params_iter & operator=(const url_search_params_iter &u)=default
Class for parsing and manipulating URL query strings.
void set(std::string_view key, std::string_view value)
std::vector< std::string > get_all(std::string_view key)
void remove(std::string_view key)
url_search_params(const url_search_params &u)=default
url_search_params(url_search_params &&u) noexcept=default
friend struct url_search_params_iter
auto operator[](size_t index) const
url_search_params_entries_iter get_entries()
url_search_params()=default
std::string to_string() const
url_search_params & operator=(url_search_params &&u) noexcept=default
url_search_params_keys_iter get_keys()
size_t size() const noexcept
url_search_params & operator=(const url_search_params &u)=default
void append(std::string_view key, std::string_view value)
url_search_params(const std::string_view input)
url_search_params_values_iter get_values()
~url_search_params()=default
std::optional< std::string_view > get(std::string_view key)
bool has(std::string_view key) noexcept