LibURL/Pattern: Add representation of a URL Pattern 'options' struct

These control how a pattern string is generated, which can vary for
different components and is also impacted by the 'ignoreCase' option
that can be provided in the URLPattern constructor.
This commit is contained in:
Shannon Booth 2025-03-17 16:25:50 +13:00 committed by Tim Flynn
parent 88bea4a717
commit f3679184cb
Notes: github-actions[bot] 2025-04-06 12:27:58 +00:00
3 changed files with 72 additions and 0 deletions

View file

@ -0,0 +1,41 @@
/*
* Copyright (c) 2025, Shannon Booth <shannon@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibURL/Pattern/Options.h>
namespace URL::Pattern {
// https://urlpattern.spec.whatwg.org/#default-options
Options Options::default_()
{
// The default options is an options struct with delimiter code point set to the empty string and prefix code point set to the empty string.
return {
.delimiter_code_point = {},
.prefix_code_point = {},
};
}
// https://urlpattern.spec.whatwg.org/#hostname-options
Options Options::hostname()
{
// The hostname options is an options struct with delimiter code point set "." and prefix code point set to the empty string.
return {
.delimiter_code_point = '.',
.prefix_code_point = {},
};
}
// https://urlpattern.spec.whatwg.org/#pathname-options
Options Options::pathname()
{
// The pathname options is an options struct with delimiter code point set "/" and prefix code point set to "/".
return {
.delimiter_code_point = '/',
.prefix_code_point = '/',
};
}
}