Skip to content

Commit caa8799

Browse files
authored
CldrCalendar should be bound on UnstableSealed not private::Sealed (#6475)
1 parent 6a013d3 commit caa8799

File tree

1 file changed

+1
-21
lines changed

1 file changed

+1
-21
lines changed

components/datetime/src/scaffold/calendar.rs

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,6 @@ use icu_time::{
2222
DateTime, Time, TimeZoneInfo, ZonedDateTime,
2323
};
2424

25-
mod private {
26-
pub trait Sealed {}
27-
}
28-
2925
/// A calendar that can be found in CLDR.
3026
///
3127
/// New implementors of this trait will likely also wish to modify `get_era_code_map()`
@@ -35,7 +31,7 @@ mod private {
3531
/// 🚫 This trait is sealed; it cannot be implemented by user code. If an API requests an item that implements this
3632
/// trait, please consider using a type from the implementors listed below.
3733
/// </div>
38-
pub trait CldrCalendar: private::Sealed {
34+
pub trait CldrCalendar: UnstableSealed {
3935
/// The data marker for loading year symbols for this calendar.
4036
type YearNamesV1: DataMarker<DataStruct = YearNames<'static>>;
4137

@@ -46,112 +42,96 @@ pub trait CldrCalendar: private::Sealed {
4642
type SkeletaV1: DataMarker<DataStruct = PackedPatterns<'static>>;
4743
}
4844

49-
impl private::Sealed for () {}
5045
impl CldrCalendar for () {
5146
type YearNamesV1 = NeverMarker<YearNames<'static>>;
5247
type MonthNamesV1 = NeverMarker<MonthNames<'static>>;
5348
type SkeletaV1 = NeverMarker<PackedPatterns<'static>>;
5449
}
5550

56-
impl private::Sealed for Buddhist {}
5751
impl CldrCalendar for Buddhist {
5852
type YearNamesV1 = DatetimeNamesYearBuddhistV1;
5953
type MonthNamesV1 = DatetimeNamesMonthBuddhistV1;
6054
type SkeletaV1 = DatetimePatternsDateBuddhistV1;
6155
}
6256

63-
impl private::Sealed for Chinese {}
6457
impl CldrCalendar for Chinese {
6558
type YearNamesV1 = DatetimeNamesYearChineseV1;
6659
type MonthNamesV1 = DatetimeNamesMonthChineseV1;
6760
type SkeletaV1 = DatetimePatternsDateChineseV1;
6861
}
6962

70-
impl private::Sealed for Coptic {}
7163
impl CldrCalendar for Coptic {
7264
type YearNamesV1 = DatetimeNamesYearCopticV1;
7365
type MonthNamesV1 = DatetimeNamesMonthCopticV1;
7466
type SkeletaV1 = DatetimePatternsDateCopticV1;
7567
}
7668

77-
impl private::Sealed for Dangi {}
7869
impl CldrCalendar for Dangi {
7970
type YearNamesV1 = DatetimeNamesYearDangiV1;
8071
type MonthNamesV1 = DatetimeNamesMonthDangiV1;
8172
type SkeletaV1 = DatetimePatternsDateDangiV1;
8273
}
8374

84-
impl private::Sealed for Ethiopian {}
8575
impl CldrCalendar for Ethiopian {
8676
type YearNamesV1 = DatetimeNamesYearEthiopianV1;
8777
type MonthNamesV1 = DatetimeNamesMonthEthiopianV1;
8878
type SkeletaV1 = DatetimePatternsDateEthiopianV1;
8979
}
9080

91-
impl private::Sealed for Gregorian {}
9281
impl CldrCalendar for Gregorian {
9382
type YearNamesV1 = DatetimeNamesYearGregorianV1;
9483
type MonthNamesV1 = DatetimeNamesMonthGregorianV1;
9584
type SkeletaV1 = DatetimePatternsDateGregorianV1;
9685
}
9786

98-
impl private::Sealed for Hebrew {}
9987
impl CldrCalendar for Hebrew {
10088
type YearNamesV1 = DatetimeNamesYearHebrewV1;
10189
type MonthNamesV1 = DatetimeNamesMonthHebrewV1;
10290
type SkeletaV1 = DatetimePatternsDateHebrewV1;
10391
}
10492

105-
impl private::Sealed for Indian {}
10693
impl CldrCalendar for Indian {
10794
type YearNamesV1 = DatetimeNamesYearIndianV1;
10895
type MonthNamesV1 = DatetimeNamesMonthIndianV1;
10996
type SkeletaV1 = DatetimePatternsDateIndianV1;
11097
}
11198

112-
impl private::Sealed for HijriTabular {}
11399
impl CldrCalendar for HijriTabular {
114100
type YearNamesV1 = DatetimeNamesYearHijriV1;
115101
type MonthNamesV1 = DatetimeNamesMonthHijriV1;
116102
type SkeletaV1 = DatetimePatternsDateHijriV1;
117103
}
118104

119-
impl private::Sealed for HijriSimulated {}
120105
impl CldrCalendar for HijriSimulated {
121106
type YearNamesV1 = DatetimeNamesYearHijriV1;
122107
type MonthNamesV1 = DatetimeNamesMonthHijriV1;
123108
type SkeletaV1 = DatetimePatternsDateHijriV1;
124109
}
125110

126-
impl private::Sealed for HijriUmmAlQura {}
127111
impl CldrCalendar for HijriUmmAlQura {
128112
type YearNamesV1 = DatetimeNamesYearHijriV1;
129113
type MonthNamesV1 = DatetimeNamesMonthHijriV1;
130114
type SkeletaV1 = DatetimePatternsDateHijriV1;
131115
}
132116

133-
impl private::Sealed for Japanese {}
134117
impl CldrCalendar for Japanese {
135118
type YearNamesV1 = DatetimeNamesYearJapaneseV1;
136119
type MonthNamesV1 = DatetimeNamesMonthJapaneseV1;
137120
type SkeletaV1 = DatetimePatternsDateJapaneseV1;
138121
}
139122

140-
impl private::Sealed for JapaneseExtended {}
141123
impl CldrCalendar for JapaneseExtended {
142124
type YearNamesV1 = DatetimeNamesYearJapanextV1;
143125
type MonthNamesV1 = DatetimeNamesMonthJapanextV1;
144126
type SkeletaV1 = DatetimePatternsDateJapanextV1;
145127
}
146128

147-
impl private::Sealed for Persian {}
148129
impl CldrCalendar for Persian {
149130
type YearNamesV1 = DatetimeNamesYearPersianV1;
150131
type MonthNamesV1 = DatetimeNamesMonthPersianV1;
151132
type SkeletaV1 = DatetimePatternsDatePersianV1;
152133
}
153134

154-
impl private::Sealed for Roc {}
155135
impl CldrCalendar for Roc {
156136
type YearNamesV1 = DatetimeNamesYearRocV1;
157137
type MonthNamesV1 = DatetimeNamesMonthRocV1;

0 commit comments

Comments
 (0)