/* * Copyright (c) 2025, Shannon Booth * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace URL::Pattern { PatternErrorOr canonicalize_a_protocol(String const&); String canonicalize_a_username(String const&); String canonicalize_a_password(String const&); PatternErrorOr canonicalize_a_hostname(String const&); PatternErrorOr canonicalize_an_ipv6_hostname(String const&); PatternErrorOr canonicalize_a_port(String const&, Optional const& protocol_value = {}); PatternErrorOr canonicalize_a_pathname(String const&); PatternErrorOr canonicalize_an_opaque_pathname(String const&); PatternErrorOr canonicalize_a_search(String const&); PatternErrorOr canonicalize_a_hash(String const&); }