mirror of
https://github.com/RGBCube/serenity
synced 2025-05-28 07:55:07 +00:00
LibUnicode: Generate available values for the keywords co, kf, kn, hc
This also ensures we only include values we actually support in the generated list of available values.
This commit is contained in:
parent
a660040806
commit
c2e5b20eb6
5 changed files with 53 additions and 7 deletions
|
@ -526,18 +526,20 @@ static constexpr Array<Span<@type@ const>, @size@> @name@ { {
|
|||
}
|
||||
|
||||
template<typename T>
|
||||
void generate_available_values(SourceGenerator& generator, StringView name, Vector<T> const& values, Vector<Alias> const& aliases = {})
|
||||
void generate_available_values(SourceGenerator& generator, StringView name, Vector<T> const& values, Vector<Alias> const& aliases = {}, Function<bool(StringView)> value_filter = {})
|
||||
{
|
||||
generator.set("name", name);
|
||||
generator.set("size", String::number(values.size()));
|
||||
|
||||
generator.append(R"~~~(
|
||||
Span<StringView const> @name@()
|
||||
{
|
||||
static constexpr Array<StringView, @size@> values { {)~~~");
|
||||
static constexpr auto values = Array {)~~~");
|
||||
|
||||
bool first = true;
|
||||
for (auto const& value : values) {
|
||||
if (value_filter && !value_filter(value))
|
||||
continue;
|
||||
|
||||
generator.append(first ? " "sv : ", "sv);
|
||||
first = false;
|
||||
|
||||
|
@ -547,7 +549,7 @@ Span<StringView const> @name@()
|
|||
generator.append(String::formatted("\"{}\"sv", value));
|
||||
}
|
||||
|
||||
generator.append(R"~~~( } };
|
||||
generator.append(R"~~~( };
|
||||
return values.span();
|
||||
}
|
||||
)~~~");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue