mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 09:48:11 +00:00
Lagom/CodeGenerators: Use HashMap::try_ensure_capacity
This commit is contained in:
parent
a3a5d2b27d
commit
6debd967ba
4 changed files with 53 additions and 39 deletions
|
@ -8,6 +8,7 @@
|
|||
#include <AK/AllOf.h>
|
||||
#include <AK/CharacterTypes.h>
|
||||
#include <AK/DeprecatedString.h>
|
||||
#include <AK/Error.h>
|
||||
#include <AK/Find.h>
|
||||
#include <AK/Format.h>
|
||||
#include <AK/GenericLexer.h>
|
||||
|
@ -1991,9 +1992,9 @@ static constexpr Array<@type@, @size@> @name@ { {)~~~");
|
|||
append_mapping(cldr.weekend_end_regions, cldr.weekend_end, "u8"sv, "s_weekend_end"sv, [](auto weekend_end) { return to_underlying(weekend_end); });
|
||||
generator.append("\n");
|
||||
|
||||
auto append_from_string = [&](StringView enum_title, StringView enum_snake, auto const& values, Vector<Alias> const& aliases = {}) {
|
||||
auto append_from_string = [&](StringView enum_title, StringView enum_snake, auto const& values, Vector<Alias> const& aliases = {}) -> ErrorOr<void> {
|
||||
HashValueMap<DeprecatedString> hashes;
|
||||
hashes.ensure_capacity(values.size());
|
||||
TRY(hashes.try_ensure_capacity(values.size()));
|
||||
|
||||
for (auto const& value : values)
|
||||
hashes.set(value.hash(), format_identifier(enum_title, value));
|
||||
|
@ -2001,13 +2002,15 @@ static constexpr Array<@type@, @size@> @name@ { {)~~~");
|
|||
hashes.set(alias.alias.hash(), format_identifier(enum_title, alias.alias));
|
||||
|
||||
generate_value_from_string(generator, "{}_from_string"sv, enum_title, enum_snake, move(hashes));
|
||||
|
||||
return {};
|
||||
};
|
||||
|
||||
append_from_string("HourCycleRegion"sv, "hour_cycle_region"sv, cldr.hour_cycle_regions);
|
||||
append_from_string("MinimumDaysRegion"sv, "minimum_days_region"sv, cldr.minimum_days_regions);
|
||||
append_from_string("FirstDayRegion"sv, "first_day_region"sv, cldr.first_day_regions);
|
||||
append_from_string("WeekendStartRegion"sv, "weekend_start_region"sv, cldr.weekend_start_regions);
|
||||
append_from_string("WeekendEndRegion"sv, "weekend_end_region"sv, cldr.weekend_end_regions);
|
||||
TRY(append_from_string("HourCycleRegion"sv, "hour_cycle_region"sv, cldr.hour_cycle_regions));
|
||||
TRY(append_from_string("MinimumDaysRegion"sv, "minimum_days_region"sv, cldr.minimum_days_regions));
|
||||
TRY(append_from_string("FirstDayRegion"sv, "first_day_region"sv, cldr.first_day_regions));
|
||||
TRY(append_from_string("WeekendStartRegion"sv, "weekend_start_region"sv, cldr.weekend_start_regions));
|
||||
TRY(append_from_string("WeekendEndRegion"sv, "weekend_end_region"sv, cldr.weekend_end_regions));
|
||||
|
||||
generator.append(R"~~~(
|
||||
static Optional<Calendar> keyword_to_calendar(KeywordCalendar keyword)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue