mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:08:11 +00:00
LibTimeZone: Add method to convert a time zone to a string
This commit is contained in:
parent
14535fb67a
commit
1c2c98ac5d
5 changed files with 51 additions and 2 deletions
|
@ -363,6 +363,36 @@ Optional<@return_type@> @method_name@(StringView key)
|
|||
)~~~");
|
||||
}
|
||||
|
||||
template<typename IdentifierFormatter>
|
||||
void generate_value_to_string(SourceGenerator& generator, StringView method_name_format, StringView value_type, StringView value_name, IdentifierFormatter&& format_identifier, Span<String const> values)
|
||||
{
|
||||
generator.set("method_name", String::formatted(method_name_format, value_name));
|
||||
generator.set("value_type", value_type);
|
||||
generator.set("value_name", value_name);
|
||||
|
||||
generator.append(R"~~~(
|
||||
StringView @method_name@(@value_type@ @value_name@)
|
||||
{
|
||||
using enum @value_type@;
|
||||
|
||||
switch (@value_name@) {)~~~");
|
||||
|
||||
for (auto const& value : values) {
|
||||
generator.set("enum_value", format_identifier(value_type, value));
|
||||
generator.set("string_value", value);
|
||||
generator.append(R"~~~(
|
||||
case @enum_value@:
|
||||
return "@string_value@"sv;)~~~");
|
||||
}
|
||||
|
||||
generator.append(R"~~~(
|
||||
}
|
||||
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
)~~~");
|
||||
}
|
||||
|
||||
template<typename IdentifierFormatter>
|
||||
void generate_enum(SourceGenerator& generator, IdentifierFormatter&& format_identifier, StringView name, StringView default_, Vector<String>& values, Vector<Alias> aliases = {})
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue