diff options
author | Timothy Flynn <trflynn89@pm.me> | 2021-12-07 08:40:06 -0500 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2021-12-08 11:29:36 +0000 |
commit | 6ace4000bf9127c43fe1ce4c5c49015e0467deaa (patch) | |
tree | 76d7bbd732df394750d626406b1f874888ce2b99 /Userland/Libraries/LibUnicode/DateTimeFormat.h | |
parent | 80ea6e664d32522c6e2bfa3f638c669237d56c5b (diff) | |
download | serenity-6ace4000bf9127c43fe1ce4c5c49015e0467deaa.zip |
LibJS+LibUnicode: Supply field type in CalendarPattern's for-each method
Some callers will want different behavior depending on what field is
being provided to the callback.
Diffstat (limited to 'Userland/Libraries/LibUnicode/DateTimeFormat.h')
-rw-r--r-- | Userland/Libraries/LibUnicode/DateTimeFormat.h | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/Userland/Libraries/LibUnicode/DateTimeFormat.h b/Userland/Libraries/LibUnicode/DateTimeFormat.h index 37209de79c..25c2453c85 100644 --- a/Userland/Libraries/LibUnicode/DateTimeFormat.h +++ b/Userland/Libraries/LibUnicode/DateTimeFormat.h @@ -31,20 +31,34 @@ enum class CalendarPatternStyle : u8 { }; struct CalendarPattern { + enum class Field { + Era, + Year, + Month, + Weekday, + Day, + DayPeriod, + Hour, + Minute, + Second, + FractionalSecondDigits, + TimeZoneName, + }; + template<typename Callback> void for_each_calendar_field_zipped_with(CalendarPattern const& other, Callback&& callback) { - callback(era, other.era); - callback(year, other.year); - callback(month, other.month); - callback(weekday, other.weekday); - callback(day, other.day); - callback(day_period, other.day_period); - callback(hour, other.hour); - callback(minute, other.minute); - callback(second, other.second); - callback(fractional_second_digits, other.fractional_second_digits); - callback(time_zone_name, other.time_zone_name); + callback(era, other.era, Field::Era); + callback(year, other.year, Field::Year); + callback(month, other.month, Field::Month); + callback(weekday, other.weekday, Field::Weekday); + callback(day, other.day, Field::Day); + callback(day_period, other.day_period, Field::DayPeriod); + callback(hour, other.hour, Field::Hour); + callback(minute, other.minute, Field::Minute); + callback(second, other.second, Field::Second); + callback(fractional_second_digits, other.fractional_second_digits, Field::FractionalSecondDigits); + callback(time_zone_name, other.time_zone_name, Field::TimeZoneName); } String pattern {}; |