LibWeb: Generate to_value_id() functions

This commit is contained in:
Sam Atkins 2022-04-13 20:00:06 +01:00 committed by Andreas Kling
parent 3cc6cba4fe
commit 9bf511caa3
Notes: sideshowbarker 2024-07-17 11:48:58 +09:00

View file

@ -76,6 +76,7 @@ enum class ValueID;
enum_generator.appendln("};");
enum_generator.appendln("Optional<@name:titlecase@> value_id_to_@name:snakecase@(ValueID);");
enum_generator.appendln("ValueID to_value_id(@name:titlecase@);");
enum_generator.append("\n");
});
@ -131,6 +132,30 @@ Optional<@name:titlecase@> value_id_to_@name:snakecase@(ValueID value_id)
return {};
}
}
)~~~");
enum_generator.append(R"~~~(
ValueID to_value_id(@name:titlecase@ @name:snakecase@_value)
{
switch (@name:snakecase@_value) {)~~~");
for (auto& member : members.values()) {
auto member_generator = enum_generator.fork();
auto member_name = member.to_string();
if (member_name.contains('='))
continue;
member_generator.set("member:titlecase", title_casify(member_name));
member_generator.append(R"~~~(
case @name:titlecase@::@member:titlecase@:
return ValueID::@member:titlecase@;)~~~");
}
enum_generator.append(R"~~~(
default:
VERIFY_NOT_REACHED();
}
}
)~~~");
});