MCPcopy Create free account
hub / github.com/ada-url/ada / parse_inputs_array

Function parse_inputs_array

tests/wpt_urlpattern_tests.cpp:559–600  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

557}
558
559std::tuple<std::variant<std::string, ada::url_pattern_init>,
560 std::optional<std::string>>
561parse_inputs_array(ondemand::array& inputs) {
562 std::cout << "inputs: " << inputs.raw_json().value() << std::endl;
563 inputs.reset();
564
565 std::variant<std::string, ada::url_pattern_init> first_param =
566 ada::url_pattern_init{};
567 std::optional<std::string> base_url{};
568
569 size_t index = 0;
570 for (auto input : inputs) {
571 if (index == 0) {
572 if (input.type() == ondemand::json_type::string) {
573 std::string_view value;
574 EXPECT_FALSE(input.get_string().get(value));
575 first_param = std::string(value);
576 index++;
577 continue;
578 }
579
580 ondemand::object attribute;
581 EXPECT_FALSE(input.get_object().get(attribute));
582 // We always know that this function is called with url pattern init.
583 auto parse_result = parse_init(attribute);
584 if (parse_result.has_value()) {
585 first_param = std::get<ada::url_pattern_init>(*parse_result);
586 }
587 // If parse_init returns nullopt (broken surrogates), keep default empty
588 // init
589 index++;
590 continue;
591 }
592
593 std::string_view value;
594 EXPECT_FALSE(input.get_string().get(value));
595 base_url = std::string(value);
596 index++;
597 }
598
599 return {first_param, base_url};
600}
601
602ada::url_pattern_component_result parse_component_result(
603 ondemand::object& component, bool& skip_test) {

Callers 1

TESTFunction · 0.85

Calls 4

parse_initFunction · 0.85
resetMethod · 0.80
getMethod · 0.80
has_valueMethod · 0.45

Tested by

no test coverage detected