Skip to content

Commit f128c80

Browse files
authored
Make zoned formatters have more efficient storage (#6342)
1 parent 8bda6d9 commit f128c80

File tree

4 files changed

+28
-6
lines changed

4 files changed

+28
-6
lines changed

ffi/capi/src/datetime_helpers.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ where
4343
Zone: DateTimeMarkers + ZoneMarkers,
4444
<Zone as DateTimeMarkers>::Z: ZoneMarkers,
4545
Combo<DateFieldSet, Zone>: DateTimeNamesFrom<DateFieldSet>,
46-
CompositeFieldSet: DateTimeNamesFrom<Combo<DateFieldSet, Zone>>,
46+
Combo<DateFieldSet, ZoneFieldSet>: DateTimeNamesFrom<Combo<DateFieldSet, Zone>>,
4747
{
4848
let prefs = (&locale.0).into();
4949
let mut names = DateTimeNames::from_formatter(prefs, formatter.clone())
@@ -151,7 +151,7 @@ where
151151
Zone: DateTimeMarkers + ZoneMarkers,
152152
<Zone as DateTimeMarkers>::Z: ZoneMarkers,
153153
Combo<DateFieldSet, Zone>: DateTimeNamesFrom<DateFieldSet>,
154-
CompositeFieldSet: DateTimeNamesFrom<Combo<DateFieldSet, Zone>>,
154+
Combo<DateFieldSet, ZoneFieldSet>: DateTimeNamesFrom<Combo<DateFieldSet, Zone>>,
155155
{
156156
let prefs = (&locale.0).into();
157157
let mut names = FixedCalendarDateTimeNames::from_formatter(prefs, formatter.clone())

ffi/capi/src/zoned_date_formatter.rs

+8-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,10 @@ pub mod ffi {
3636
#[diplomat::rust_link(icu::datetime::DateTimeFormatter, Typedef)]
3737
pub struct ZonedDateFormatter(
3838
pub icu_datetime::DateTimeFormatter<
39-
icu_datetime::fieldsets::enums::CompositeFieldSet,
39+
icu_datetime::fieldsets::Combo<
40+
icu_datetime::fieldsets::enums::DateFieldSet,
41+
icu_datetime::fieldsets::enums::ZoneFieldSet,
42+
>
4043
>,
4144
);
4245

@@ -512,7 +515,10 @@ pub mod ffi {
512515
pub struct ZonedDateFormatterGregorian(
513516
pub icu_datetime::FixedCalendarDateTimeFormatter<
514517
Gregorian,
515-
icu_datetime::fieldsets::enums::CompositeFieldSet,
518+
icu_datetime::fieldsets::Combo<
519+
icu_datetime::fieldsets::enums::DateFieldSet,
520+
icu_datetime::fieldsets::enums::ZoneFieldSet,
521+
>
516522
>,
517523
);
518524

ffi/capi/src/zoned_time_formatter.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,10 @@ pub mod ffi {
3636
pub struct ZonedTimeFormatter(
3737
pub icu_datetime::FixedCalendarDateTimeFormatter<
3838
(),
39-
icu_datetime::fieldsets::enums::CompositeFieldSet,
39+
icu_datetime::fieldsets::Combo<
40+
icu_datetime::fieldsets::enums::TimeFieldSet,
41+
icu_datetime::fieldsets::enums::ZoneFieldSet,
42+
>
4043
>,
4144
);
4245

tools/make/codegen/templates/zoned_formatter.rs.jinja

+14-1
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,21 @@ pub mod ffi {
6767
{%- endif %}
6868
{%- if flavor.is_zone_only() %}
6969
icu_datetime::fieldsets::enums::ZoneFieldSet,
70+
{%- else if flavor.has_date() && flavor.has_time() %}
71+
icu_datetime::fieldsets::Combo<
72+
icu_datetime::fieldsets::enums::DateAndTimeFieldSet,
73+
icu_datetime::fieldsets::enums::ZoneFieldSet,
74+
>
75+
{%- else if flavor.has_date() %}
76+
icu_datetime::fieldsets::Combo<
77+
icu_datetime::fieldsets::enums::DateFieldSet,
78+
icu_datetime::fieldsets::enums::ZoneFieldSet,
79+
>
7080
{%- else %}
71-
icu_datetime::fieldsets::enums::CompositeFieldSet,
81+
icu_datetime::fieldsets::Combo<
82+
icu_datetime::fieldsets::enums::TimeFieldSet,
83+
icu_datetime::fieldsets::enums::ZoneFieldSet,
84+
>
7285
{%- endif %}
7386
>,
7487
);

0 commit comments

Comments
 (0)