76 const char* base,
size_t base_length)
noexcept {
85 std::string_view(input, input_length), &base_out.value()));
93 const char* base,
size_t base_length)
noexcept {
94 std::string_view base_view(base, base_length);
95 return ada::can_parse(std::string_view(input, input_length), &base_view);
110 return r.has_value();
118 owned.
data =
nullptr;
122 std::string out = r->get_origin();
123 owned.
length = out.size();
125 memcpy((
void*)owned.
data, out.data(), owned.
length);
138 std::string_view out = r->get_href();
147 std::string_view out = r->get_username();
156 std::string_view out = r->get_password();
165 std::string_view out = r->get_port();
174 std::string_view out = r->get_hash();
183 std::string_view out = r->get_host();
192 std::string_view out = r->get_hostname();
201 std::string_view out = r->get_pathname();
210 std::string_view out = r->get_search();
219 std::string_view out = r->get_protocol();
244 return r->set_href(std::string_view(input, length));
252 return r->set_host(std::string_view(input, length));
256 size_t length)
noexcept {
261 return r->set_hostname(std::string_view(input, length));
265 size_t length)
noexcept {
270 return r->set_protocol(std::string_view(input, length));
274 size_t length)
noexcept {
279 return r->set_username(std::string_view(input, length));
283 size_t length)
noexcept {
288 return r->set_password(std::string_view(input, length));
296 return r->set_port(std::string_view(input, length));
300 size_t length)
noexcept {
305 return r->set_pathname(std::string_view(input, length));
318 r->set_search(std::string_view(input, length));
332 r->set_hash(std::string_view(input, length));
374 return r->has_credentials();
382 return r->has_empty_hostname();
390 return r->has_hostname();
398 return r->has_non_empty_username();
406 return r->has_non_empty_password();
414 return r->has_port();
422 return r->has_password();
430 return r->has_hash();
438 return r->has_search();
454 owned.
length = out.length();
456 memcpy((
void*)owned.
data, out.data(), owned.
length);
463 owned.
length = out.size();
465 memcpy((
void*)owned.
data, out.data(), owned.
length);
484 std::string out = r->to_string();
486 owned.
length = out.size();
488 memcpy((
void*)owned.
data, out.data(), owned.
length);
514 r->reset(std::string_view(input, length));
519 size_t key_length,
const char* value,
520 size_t value_length) {
524 r->append(std::string_view(key, key_length),
525 std::string_view(value, value_length));
530 size_t key_length,
const char* value,
531 size_t value_length) {
535 r->set(std::string_view(key, key_length),
536 std::string_view(value, value_length));
545 r->remove(std::string_view(key, key_length));
550 const char* key,
size_t key_length,
551 const char* value,
size_t value_length) {
555 r->remove(std::string_view(key, key_length),
556 std::string_view(value, value_length));
567 return r->has(std::string_view(key, key_length));
571 size_t key_length,
const char* value,
572 size_t value_length) {
578 return r->has(std::string_view(key, key_length),
579 std::string_view(value, value_length));
589 auto found = r->get(std::string_view(key, key_length));
590 if (!found.has_value()) {
597 const char* key,
size_t key_length) {
602 std::vector<std::string>());
605 r->get_all(std::string_view(key, key_length)));
659 std::string_view view = (*r)->at(index);
674 auto next = (*r)->next();
675 if (!next.has_value()) {
687 return (*r)->has_next();
702 auto next = (*r)->next();
703 if (!next.has_value()) {
715 return (*r)->has_next();
728 auto next = (*r)->next();
729 if (!next.has_value()) {
743 return (*r)->has_next();
ada_url_search_params ada_parse_search_params(const char *input, size_t length)
ada_string ada_get_search(ada_url result) noexcept
ada_strings ada_search_params_get_all(ada_url_search_params result, const char *key, size_t key_length)
uint8_t ada_get_scheme_type(ada_url result) noexcept
bool ada_has_search(ada_url result) noexcept
void ada_free_search_params_entries_iter(ada_url_search_params_entries_iter result)
bool ada_search_params_keys_iter_has_next(ada_url_search_params_keys_iter result)
ada_string ada_search_params_values_iter_next(ada_url_search_params_values_iter result)
void ada_free_search_params_keys_iter(ada_url_search_params_keys_iter result)
void ada_clear_hash(ada_url result) noexcept
bool ada_search_params_has_value(ada_url_search_params result, const char *key, size_t key_length, const char *value, size_t value_length)
void ada_free_strings(ada_strings result)
void ada_search_params_append(ada_url_search_params result, const char *key, size_t key_length, const char *value, size_t value_length)
ada_url_search_params_entries_iter ada_search_params_get_entries(ada_url_search_params result)
ada_string ada_search_params_get(ada_url_search_params result, const char *key, size_t key_length)
void ada_free(ada_url result) noexcept
bool ada_can_parse_with_base(const char *input, size_t input_length, const char *base, size_t base_length) noexcept
void ada_free_owned_string(ada_owned_string owned) noexcept
ada_url ada_parse(const char *input, size_t length) noexcept
const char * ada_get_version()
ada_version_components ada_get_version_components()
uint8_t ada_get_host_type(ada_url result) noexcept
ada_string ada_get_protocol(ada_url result) noexcept
void ada_search_params_sort(ada_url_search_params result)
bool ada_has_credentials(ada_url result) noexcept
bool ada_set_pathname(ada_url result, const char *input, size_t length) noexcept
ada_string ada_get_host(ada_url result) noexcept
bool ada_set_password(ada_url result, const char *input, size_t length) noexcept
ada_string ada_get_port(ada_url result) noexcept
ada_string ada_string_create(const char *data, size_t length)
ada::result< ada::url_aggregator > & get_instance(void *result) noexcept
ada_owned_string ada_idna_to_unicode(const char *input, size_t length)
ada_string ada_get_hash(ada_url result) noexcept
ada_owned_string ada_get_origin(ada_url result) noexcept
void ada_search_params_remove_value(ada_url_search_params result, const char *key, size_t key_length, const char *value, size_t value_length)
ada_string ada_get_hostname(ada_url result) noexcept
void ada_free_search_params(ada_url_search_params result)
bool ada_set_username(ada_url result, const char *input, size_t length) noexcept
bool ada_has_empty_hostname(ada_url result) noexcept
bool ada_has_hash(ada_url result) noexcept
ada_string ada_get_href(ada_url result) noexcept
ada_string ada_get_password(ada_url result) noexcept
bool ada_set_protocol(ada_url result, const char *input, size_t length) noexcept
bool ada_can_parse(const char *input, size_t length) noexcept
bool ada_is_valid(ada_url result) noexcept
ada_owned_string ada_search_params_to_string(ada_url_search_params result)
ada_string ada_strings_get(ada_strings result, size_t index)
void ada_set_search(ada_url result, const char *input, size_t length) noexcept
const ada_url_components * ada_get_components(ada_url result) noexcept
bool ada_search_params_entries_iter_has_next(ada_url_search_params_entries_iter result)
size_t ada_search_params_size(ada_url_search_params result)
ada_string ada_get_pathname(ada_url result) noexcept
void ada_free_search_params_values_iter(ada_url_search_params_values_iter result)
ada_url ada_parse_with_base(const char *input, size_t input_length, const char *base, size_t base_length) noexcept
ada_string ada_search_params_keys_iter_next(ada_url_search_params_keys_iter result)
void ada_clear_port(ada_url result) noexcept
bool ada_set_hostname(ada_url result, const char *input, size_t length) noexcept
bool ada_has_hostname(ada_url result) noexcept
ada_string_pair ada_search_params_entries_iter_next(ada_url_search_params_entries_iter result)
ada_url_search_params_keys_iter ada_search_params_get_keys(ada_url_search_params result)
ada_owned_string ada_idna_to_ascii(const char *input, size_t length)
bool ada_has_non_empty_password(ada_url result) noexcept
bool ada_set_href(ada_url result, const char *input, size_t length) noexcept
ada_url ada_copy(ada_url input) noexcept
bool ada_has_password(ada_url result) noexcept
bool ada_search_params_values_iter_has_next(ada_url_search_params_values_iter result)
bool ada_set_port(ada_url result, const char *input, size_t length) noexcept
bool ada_has_port(ada_url result) noexcept
void ada_search_params_set(ada_url_search_params result, const char *key, size_t key_length, const char *value, size_t value_length)
bool ada_set_host(ada_url result, const char *input, size_t length) noexcept
size_t ada_strings_size(ada_strings result)
ada_url_search_params_values_iter ada_search_params_get_values(ada_url_search_params result)
void ada_set_hash(ada_url result, const char *input, size_t length) noexcept
bool ada_search_params_has(ada_url_search_params result, const char *key, size_t key_length)
bool ada_has_non_empty_username(ada_url result) noexcept
void ada_search_params_reset(ada_url_search_params result, const char *input, size_t length)
void ada_search_params_remove(ada_url_search_params result, const char *key, size_t key_length)
void ada_clear_search(ada_url result) noexcept
ada_string ada_get_username(ada_url result) noexcept
void * ada_url_search_params_entries_iter
void * ada_url_search_params
void * ada_url_search_params_keys_iter
void * ada_url_search_params_values_iter
std::string to_ascii(std::string_view ut8_string)
std::string to_unicode(std::string_view input)
url_search_params_iter< std::string_view, url_search_params_iter_type::VALUES > url_search_params_values_iter
bool can_parse(std::string_view input, const std::string_view *base_input=nullptr)
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
tl::expected< result_type, ada::errors > result
ada_warn_unused ada::result< result_type > parse(std::string_view input, const result_type *base_url=nullptr)
Stores byte offsets for URL components within a buffer.
Class for parsing and manipulating URL query strings.
Inline functions for url aggregator.
Inline declarations for the URL Search Params.