1- /* auto-generated on 2023-09-30 20:34:30  -0400. Do not edit! */
1+ /* auto-generated on 2023-10-22 19:50:50  -0400. Do not edit! */
22/* begin file src/ada.cpp */
33#include "ada.h"
44/* begin file src/checkers.cpp */
@@ -11674,10 +11674,9 @@ ada_really_inline void url::parse_path(std::string_view input) {
1167411674      path = "/";
1167511675    }
1167611676  }
11677-   return;
1167811677}
1167911678
11680- std::string url::to_string() const {
11679+ [[nodiscard]]  std::string url::to_string() const {
1168111680  if (!is_valid) {
1168211681    return "null";
1168311682  }
@@ -11797,7 +11796,7 @@ namespace ada {
1179711796  return host.value_or("");
1179811797}
1179911798
11800- [[nodiscard]] const  std::string_view url::get_pathname() const noexcept {
11799+ [[nodiscard]] std::string_view url::get_pathname() const noexcept {
1180111800  return path;
1180211801}
1180311802
@@ -12983,7 +12982,7 @@ template url_aggregator parse_url<url_aggregator>(
1298312982
1298412983namespace ada {
1298512984
12986- bool url_components::check_offset_consistency() const noexcept {
12985+ [[nodiscard]]  bool url_components::check_offset_consistency() const noexcept {
1298712986  /**
1298812987   * https://user:
[email protected] :1234/foo/bar?baz#quux
1298912988   *       |     |    |          | ^^^^|       |   |
@@ -13059,7 +13058,7 @@ bool url_components::check_offset_consistency() const noexcept {
1305913058  return true;
1306013059}
1306113060
13062- std::string url_components::to_string() const {
13061+ [[nodiscard]]  std::string url_components::to_string() const {
1306313062  std::string answer;
1306413063  auto back = std::back_insert_iterator(answer);
1306513064  answer.append("{\n");
@@ -13847,7 +13846,7 @@ bool url_aggregator::set_hostname(const std::string_view input) {
1384713846  return helpers::substring(buffer, 0, components.protocol_end);
1384813847}
1384913848
13850- std::string ada::url_aggregator::to_string() const {
13849+ [[nodiscard]]  std::string ada::url_aggregator::to_string() const {
1385113850  ada_log("url_aggregator::to_string buffer:", buffer, "[", buffer.size(),
1385213851          " bytes]");
1385313852  if (!is_valid) {
@@ -14292,7 +14291,7 @@ bool url_aggregator::parse_opaque_host(std::string_view input) {
1429214291  return true;
1429314292}
1429414293
14295- std::string url_aggregator::to_diagram() const {
14294+ [[nodiscard]]  std::string url_aggregator::to_diagram() const {
1429614295  if (!is_valid) {
1429714296    return "invalid";
1429814297  }
@@ -14449,7 +14448,7 @@ std::string url_aggregator::to_diagram() const {
1444914448  return answer;
1445014449}
1445114450
14452- bool url_aggregator::validate() const noexcept {
14451+ [[nodiscard]]  bool url_aggregator::validate() const noexcept {
1445314452  if (!is_valid) {
1445414453    return true;
1445514454  }
@@ -14817,6 +14816,11 @@ ada::result<ada::url_aggregator>& get_instance(void* result) noexcept {
1481714816
1481814817extern "C" {
1481914818typedef void* ada_url;
14819+ typedef void* ada_url_search_params;
14820+ typedef void* ada_strings;
14821+ typedef void* ada_url_search_params_keys_iter;
14822+ typedef void* ada_url_search_params_values_iter;
14823+ typedef void* ada_url_search_params_entries_iter;
1482014824
1482114825struct ada_string {
1482214826  const char* data;
@@ -14828,6 +14832,11 @@ struct ada_owned_string {
1482814832  size_t length;
1482914833};
1483014834
14835+ struct ada_string_pair {
14836+   ada_string key;
14837+   ada_string value;
14838+ };
14839+ 
1483114840ada_string ada_string_create(const char* data, size_t length) {
1483214841  ada_string out{};
1483314842  out.data = data;
@@ -15267,6 +15276,256 @@ ada_owned_string ada_idna_to_ascii(const char* input, size_t length) {
1526715276  return owned;
1526815277}
1526915278
15279+ ada_url_search_params ada_parse_search_params(const char* input,
15280+                                               size_t length) {
15281+   return new ada::result<ada::url_search_params>(
15282+       ada::url_search_params(std::string_view(input, length)));
15283+ }
15284+ 
15285+ void ada_free_search_params(ada_url_search_params result) {
15286+   ada::result<ada::url_search_params>* r =
15287+       (ada::result<ada::url_search_params>*)result;
15288+   delete r;
15289+ }
15290+ 
15291+ ada_owned_string ada_search_params_to_string(ada_url_search_params result) {
15292+   ada::result<ada::url_search_params>& r =
15293+       *(ada::result<ada::url_search_params>*)result;
15294+   if (!r) return ada_owned_string{NULL, 0};
15295+   std::string out = r->to_string();
15296+   ada_owned_string owned{};
15297+   owned.length = out.size();
15298+   owned.data = new char[owned.length];
15299+   memcpy((void*)owned.data, out.data(), owned.length);
15300+   return owned;
15301+ }
15302+ 
15303+ size_t ada_search_params_size(ada_url_search_params result) {
15304+   ada::result<ada::url_search_params>& r =
15305+       *(ada::result<ada::url_search_params>*)result;
15306+   if (!r) return 0;
15307+   return r->size();
15308+ }
15309+ 
15310+ void ada_search_params_sort(ada_url_search_params result) {
15311+   ada::result<ada::url_search_params>& r =
15312+       *(ada::result<ada::url_search_params>*)result;
15313+   if (r) r->sort();
15314+ }
15315+ 
15316+ void ada_search_params_append(ada_url_search_params result, const char* key,
15317+                               size_t key_length, const char* value,
15318+                               size_t value_length) {
15319+   ada::result<ada::url_search_params>& r =
15320+       *(ada::result<ada::url_search_params>*)result;
15321+   if (r) {
15322+     r->append(std::string_view(key, key_length),
15323+               std::string_view(value, value_length));
15324+   }
15325+ }
15326+ 
15327+ void ada_search_params_set(ada_url_search_params result, const char* key,
15328+                            size_t key_length, const char* value,
15329+                            size_t value_length) {
15330+   ada::result<ada::url_search_params>& r =
15331+       *(ada::result<ada::url_search_params>*)result;
15332+   if (r) {
15333+     r->set(std::string_view(key, key_length),
15334+            std::string_view(value, value_length));
15335+   }
15336+ }
15337+ 
15338+ void ada_search_params_remove(ada_url_search_params result, const char* key,
15339+                               size_t key_length) {
15340+   ada::result<ada::url_search_params>& r =
15341+       *(ada::result<ada::url_search_params>*)result;
15342+   if (r) {
15343+     r->remove(std::string_view(key, key_length));
15344+   }
15345+ }
15346+ 
15347+ void ada_search_params_remove_value(ada_url_search_params result,
15348+                                     const char* key, size_t key_length,
15349+                                     const char* value, size_t value_length) {
15350+   ada::result<ada::url_search_params>& r =
15351+       *(ada::result<ada::url_search_params>*)result;
15352+   if (r) {
15353+     r->remove(std::string_view(key, key_length),
15354+               std::string_view(value, value_length));
15355+   }
15356+ }
15357+ 
15358+ bool ada_search_params_has(ada_url_search_params result, const char* key,
15359+                            size_t key_length) {
15360+   ada::result<ada::url_search_params>& r =
15361+       *(ada::result<ada::url_search_params>*)result;
15362+   if (!r) return false;
15363+   return r->has(std::string_view(key, key_length));
15364+ }
15365+ 
15366+ bool ada_search_params_has_value(ada_url_search_params result, const char* key,
15367+                                  size_t key_length, const char* value,
15368+                                  size_t value_length) {
15369+   ada::result<ada::url_search_params>& r =
15370+       *(ada::result<ada::url_search_params>*)result;
15371+   if (!r) return false;
15372+   return r->has(std::string_view(key, key_length),
15373+                 std::string_view(value, value_length));
15374+ }
15375+ 
15376+ ada_string ada_search_params_get(ada_url_search_params result, const char* key,
15377+                                  size_t key_length) {
15378+   ada::result<ada::url_search_params>& r =
15379+       *(ada::result<ada::url_search_params>*)result;
15380+   if (!r) return ada_string_create(NULL, 0);
15381+   auto found = r->get(std::string_view(key, key_length));
15382+   if (!found.has_value()) return ada_string_create(NULL, 0);
15383+   return ada_string_create(found->data(), found->length());
15384+ }
15385+ 
15386+ ada_strings ada_search_params_get_all(ada_url_search_params result,
15387+                                       const char* key, size_t key_length) {
15388+   ada::result<ada::url_search_params>& r =
15389+       *(ada::result<ada::url_search_params>*)result;
15390+   if (!r) {
15391+     return new ada::result<std::vector<std::string>>(
15392+         std::vector<std::string>());
15393+   }
15394+   return new ada::result<std::vector<std::string>>(
15395+       r->get_all(std::string_view(key, key_length)));
15396+ }
15397+ 
15398+ ada_url_search_params_keys_iter ada_search_params_get_keys(
15399+     ada_url_search_params result) {
15400+   ada::result<ada::url_search_params>& r =
15401+       *(ada::result<ada::url_search_params>*)result;
15402+   if (!r) {
15403+     return new ada::result<ada::url_search_params_keys_iter>(
15404+         ada::url_search_params_keys_iter());
15405+   }
15406+   return new ada::result<ada::url_search_params_keys_iter>(r->get_keys());
15407+ }
15408+ 
15409+ ada_url_search_params_values_iter ada_search_params_get_values(
15410+     ada_url_search_params result) {
15411+   ada::result<ada::url_search_params>& r =
15412+       *(ada::result<ada::url_search_params>*)result;
15413+   if (!r) {
15414+     return new ada::result<ada::url_search_params_values_iter>(
15415+         ada::url_search_params_values_iter());
15416+   }
15417+   return new ada::result<ada::url_search_params_values_iter>(r->get_values());
15418+ }
15419+ 
15420+ ada_url_search_params_entries_iter ada_search_params_get_entries(
15421+     ada_url_search_params result) {
15422+   ada::result<ada::url_search_params>& r =
15423+       *(ada::result<ada::url_search_params>*)result;
15424+   if (!r) {
15425+     return new ada::result<ada::url_search_params_entries_iter>(
15426+         ada::url_search_params_entries_iter());
15427+   }
15428+   return new ada::result<ada::url_search_params_entries_iter>(r->get_entries());
15429+ }
15430+ 
15431+ void ada_free_strings(ada_strings result) {
15432+   ada::result<std::vector<std::string>>* r =
15433+       (ada::result<std::vector<std::string>>*)result;
15434+   delete r;
15435+ }
15436+ 
15437+ size_t ada_strings_size(ada_strings result) {
15438+   ada::result<std::vector<std::string>>* r =
15439+       (ada::result<std::vector<std::string>>*)result;
15440+   if (!r) return 0;
15441+   return (*r)->size();
15442+ }
15443+ 
15444+ ada_string ada_strings_get(ada_strings result, size_t index) {
15445+   ada::result<std::vector<std::string>>* r =
15446+       (ada::result<std::vector<std::string>>*)result;
15447+   if (!r) return ada_string_create(NULL, 0);
15448+   std::string_view view = (*r)->at(index);
15449+   return ada_string_create(view.data(), view.length());
15450+ }
15451+ 
15452+ void ada_free_search_params_keys_iter(ada_url_search_params_keys_iter result) {
15453+   ada::result<ada::url_search_params_keys_iter>* r =
15454+       (ada::result<ada::url_search_params_keys_iter>*)result;
15455+   delete r;
15456+ }
15457+ 
15458+ ada_string ada_search_params_keys_iter_next(
15459+     ada_url_search_params_keys_iter result) {
15460+   ada::result<ada::url_search_params_keys_iter>* r =
15461+       (ada::result<ada::url_search_params_keys_iter>*)result;
15462+   if (!r) return ada_string_create(NULL, 0);
15463+   auto next = (*r)->next();
15464+   if (!next.has_value()) return ada_string_create(NULL, 0);
15465+   return ada_string_create(next->data(), next->length());
15466+ }
15467+ 
15468+ bool ada_search_params_keys_iter_has_next(
15469+     ada_url_search_params_keys_iter result) {
15470+   ada::result<ada::url_search_params_keys_iter>* r =
15471+       (ada::result<ada::url_search_params_keys_iter>*)result;
15472+   if (!r) return false;
15473+   return (*r)->has_next();
15474+ }
15475+ 
15476+ void ada_free_search_params_values_iter(
15477+     ada_url_search_params_values_iter result) {
15478+   ada::result<ada::url_search_params_values_iter>* r =
15479+       (ada::result<ada::url_search_params_values_iter>*)result;
15480+   delete r;
15481+ }
15482+ 
15483+ ada_string ada_search_params_values_iter_next(
15484+     ada_url_search_params_values_iter result) {
15485+   ada::result<ada::url_search_params_values_iter>* r =
15486+       (ada::result<ada::url_search_params_values_iter>*)result;
15487+   if (!r) return ada_string_create(NULL, 0);
15488+   auto next = (*r)->next();
15489+   if (!next.has_value()) return ada_string_create(NULL, 0);
15490+   return ada_string_create(next->data(), next->length());
15491+ }
15492+ 
15493+ bool ada_search_params_values_iter_has_next(
15494+     ada_url_search_params_values_iter result) {
15495+   ada::result<ada::url_search_params_values_iter>* r =
15496+       (ada::result<ada::url_search_params_values_iter>*)result;
15497+   if (!r) return false;
15498+   return (*r)->has_next();
15499+ }
15500+ 
15501+ void ada_free_search_params_entries_iter(
15502+     ada_url_search_params_entries_iter result) {
15503+   ada::result<ada::url_search_params_entries_iter>* r =
15504+       (ada::result<ada::url_search_params_entries_iter>*)result;
15505+   delete r;
15506+ }
15507+ 
15508+ ada_string_pair ada_search_params_entries_iter_next(
15509+     ada_url_search_params_entries_iter result) {
15510+   ada::result<ada::url_search_params_entries_iter>* r =
15511+       (ada::result<ada::url_search_params_entries_iter>*)result;
15512+   if (!r) return {ada_string_create(NULL, 0), ada_string_create(NULL, 0)};
15513+   auto next = (*r)->next();
15514+   if (!next.has_value())
15515+     return {ada_string_create(NULL, 0), ada_string_create(NULL, 0)};
15516+   return ada_string_pair{
15517+       ada_string_create(next->first.data(), next->first.length()),
15518+       ada_string_create(next->second.data(), next->second.length())};
15519+ }
15520+ 
15521+ bool ada_search_params_entries_iter_has_next(
15522+     ada_url_search_params_entries_iter result) {
15523+   ada::result<ada::url_search_params_entries_iter>* r =
15524+       (ada::result<ada::url_search_params_entries_iter>*)result;
15525+   if (!r) return false;
15526+   return (*r)->has_next();
15527+ }
15528+ 
1527015529}  // extern "C"
1527115530/* end file src/ada_c.cpp */
1527215531/* end file src/ada.cpp */
0 commit comments