17#if ADA_INCLUDE_URL_PATTERN
18template <url_pattern_regex::regex_concept regex_prov
ider>
20 std::variant<std::string_view, url_pattern_init>&&
input,
26 if (std::holds_alternative<std::string_view>(
input)) {
29 url_pattern_helpers::constructor_string_parser<regex_provider>::parse(
30 std::get<std::string_view>(
input));
32 ada_log(
"constructor_string_parser::parse failed");
39 ada_log(
"base url is null and protocol is not set");
52 ada_log(
"base url is not null");
57 init = std::move(std::get<url_pattern_init>(
input));
63 url_pattern_init::process(
init, url_pattern_init::process_type::pattern);
65 ada_log(
"url_pattern_init::process failed for init and 'pattern'");
111 url_pattern_helpers::canonicalize_protocol,
112 url_pattern_compile_component_options::DEFAULT);
114 ada_log(
"url_pattern_component::compile failed for protocol ",
125 url_pattern_helpers::canonicalize_username,
126 url_pattern_compile_component_options::DEFAULT);
128 ada_log(
"url_pattern_component::compile failed for username ",
139 url_pattern_helpers::canonicalize_password,
140 url_pattern_compile_component_options::DEFAULT);
142 ada_log(
"url_pattern_component::compile failed for password ",
154 if (url_pattern_helpers::is_ipv6_address(
processed_init->hostname.value())) {
155 ada_log(
"processed_init->hostname is ipv6 address");
161 url_pattern_helpers::canonicalize_ipv6_hostname,
162 url_pattern_compile_component_options::DEFAULT);
164 ada_log(
"url_pattern_component::compile failed for ipv6 hostname ",
175 url_pattern_helpers::canonicalize_hostname,
176 url_pattern_compile_component_options::HOSTNAME);
178 ada_log(
"url_pattern_component::compile failed for hostname ",
187 auto port_component = url_pattern_component<regex_provider>::compile(
188 processed_init->port.value(), url_pattern_helpers::canonicalize_port,
189 url_pattern_compile_component_options::DEFAULT);
191 ada_log(
"url_pattern_component::compile failed for port ",
207 if (url_pattern_helpers::protocol_component_matches_special_scheme<
223 ada_log(
"url_pattern_component::compile failed for pathname ",
236 ada_log(
"url_pattern_component::compile failed for opaque pathname ",
246 processed_init->search.value(), url_pattern_helpers::canonicalize_search,
249 ada_log(
"url_pattern_component::compile failed for search ",
257 auto hash_component = url_pattern_component<regex_provider>::compile(
258 processed_init->hash.value(), url_pattern_helpers::canonicalize_hash,
261 ada_log(
"url_pattern_component::compile failed for hash ",