summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibUnicode/DateTimeFormat.h
diff options
context:
space:
mode:
authorTimothy Flynn <trflynn89@pm.me>2021-12-07 08:40:06 -0500
committerLinus Groh <mail@linusgroh.de>2021-12-08 11:29:36 +0000
commit6ace4000bf9127c43fe1ce4c5c49015e0467deaa (patch)
tree76d7bbd732df394750d626406b1f874888ce2b99 /Userland/Libraries/LibUnicode/DateTimeFormat.h
parent80ea6e664d32522c6e2bfa3f638c669237d56c5b (diff)
downloadserenity-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.h36
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 {};