icu_provider_registry/
lib.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
// This file is part of ICU4X. For terms of use, please see the file
// called LICENSE at the top level of the ICU4X source tree
// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).

//! Exposes the list of all known `DataMarker`s.
//!
//! This is modeled as a macro that accepts a callback macro of the shape:
//!
//! ```
//! macro_rules! cb {
//!     ($($marker_ty:ty:$marker:ident,)+ #[experimental] $($emarker_ty:ty:$emarker:ident,)+) => {
//!         // Do something for each marker, or each experimental marker
//!     };
//! }
//! ```
//!
//! Calling this as `registry!(cb);` evaluates `cb` with the list of markers.

#[macro_export]
/// See the crate docs.
macro_rules! registry(
    ($cb:ident) => {
        cb!(
            icu::calendar::provider::CalendarChineseV1: CalendarChineseV1,
            icu::calendar::provider::CalendarDangiV1: CalendarDangiV1,
            icu::calendar::provider::CalendarJapaneseModernV1: CalendarJapaneseModernV1,
            icu::calendar::provider::CalendarHijriObservationalV1: CalendarHijriObservationalV1,
            icu::calendar::provider::CalendarHijriUmmalquraV1: CalendarHijriUmmalquraV1,
            icu::calendar::provider::CalendarJapaneseExtendedV1: CalendarJapaneseExtendedV1,
            icu::calendar::provider::CalendarWeekV1: CalendarWeekV1,
            icu::casemap::provider::CaseMapV1: CaseMapV1,
            icu::casemap::provider::CaseMapUnfoldV1: CaseMapUnfoldV1,
            icu::collator::provider::CollationRootV1: CollationRootV1,
            icu::collator::provider::CollationTailoringV1: CollationTailoringV1,
            icu::collator::provider::CollationDiacriticsV1: CollationDiacriticsV1,
            icu::collator::provider::CollationJamoV1: CollationJamoV1,
            icu::collator::provider::CollationMetadataV1: CollationMetadataV1,
            icu::collator::provider::CollationReorderingV1: CollationReorderingV1,
            icu::collator::provider::CollationSpecialPrimariesV1: CollationSpecialPrimariesV1,
            icu::datetime::provider::time_zones::LocationsV1: LocationsV1,
            icu::datetime::provider::time_zones::LocationsRootV1: LocationsRootV1,
            icu::datetime::provider::time_zones::ExemplarCitiesV1: ExemplarCitiesV1,
            icu::datetime::provider::time_zones::ExemplarCitiesRootV1: ExemplarCitiesRootV1,
            icu::datetime::provider::time_zones::MetazoneGenericNamesLongV1: MetazoneGenericNamesLongV1,
            icu::datetime::provider::time_zones::MetazoneStandardNamesLongV1: MetazoneStandardNamesLongV1,
            icu::datetime::provider::time_zones::MetazoneGenericNamesShortV1: MetazoneGenericNamesShortV1,
            icu::datetime::provider::time_zones::MetazonePeriodV1: MetazonePeriodV1,
            icu::datetime::provider::time_zones::MetazoneSpecificNamesLongV1: MetazoneSpecificNamesLongV1,
            icu::datetime::provider::time_zones::MetazoneSpecificNamesShortV1: MetazoneSpecificNamesShortV1,
            icu::datetime::provider::time_zones::TimeZoneEssentialsV1: TimeZoneEssentialsV1,
            icu::time::provider::TimeZoneOffsetsV1: TimeZoneOffsetsV1,
            icu::decimal::provider::DecimalDigitsV1: DecimalDigitsV1,
            icu::decimal::provider::DecimalSymbolsV1: DecimalSymbolsV1,
            icu::list::provider::ListAndV1: ListAndV1,
            icu::list::provider::ListOrV1: ListOrV1,
            icu::list::provider::ListUnitV1: ListUnitV1,
            icu::locale::provider::LocaleAliasesV1: LocaleAliasesV1,
            icu::locale::provider::LocaleExemplarCharactersAuxiliaryV1: LocaleExemplarCharactersAuxiliaryV1,
            icu::locale::provider::LocaleExemplarCharactersIndexV1: LocaleExemplarCharactersIndexV1,
            icu::locale::provider::LocaleExemplarCharactersMainV1: LocaleExemplarCharactersMainV1,
            icu::locale::provider::LocaleExemplarCharactersNumbersV1: LocaleExemplarCharactersNumbersV1,
            icu::locale::provider::LocaleExemplarCharactersPunctuationV1: LocaleExemplarCharactersPunctuationV1,
            icu::locale::provider::LocaleLikelySubtagsExtendedV1: LocaleLikelySubtagsExtendedV1,
            icu::locale::provider::LocaleLikelySubtagsLanguageV1: LocaleLikelySubtagsLanguageV1,
            icu::locale::provider::LocaleLikelySubtagsScriptRegionV1: LocaleLikelySubtagsScriptRegionV1,
            icu::locale::provider::LocaleParentsV1: LocaleParentsV1,
            icu::locale::provider::LocaleScriptDirectionV1: LocaleScriptDirectionV1,
            icu::normalizer::provider::NormalizerNfcV1: NormalizerNfcV1,
            icu::normalizer::provider::NormalizerNfdDataV1: NormalizerNfdDataV1,
            icu::normalizer::provider::NormalizerNfdTablesV1: NormalizerNfdTablesV1,
            icu::normalizer::provider::NormalizerNfkdDataV1: NormalizerNfkdDataV1,
            icu::normalizer::provider::NormalizerNfkdTablesV1: NormalizerNfkdTablesV1,
            icu::normalizer::provider::NormalizerNfdSupplementV1: NormalizerNfdSupplementV1,
            icu::normalizer::provider::NormalizerUts46DataV1: NormalizerUts46DataV1,
            icu::plurals::provider::PluralsCardinalV1: PluralsCardinalV1,
            icu::plurals::provider::PluralsOrdinalV1: PluralsOrdinalV1,
            icu::properties::provider::PropertyNameLongBidiClassV1: PropertyNameLongBidiClassV1,
            icu::properties::provider::PropertyNameLongCanonicalCombiningClassV1: PropertyNameLongCanonicalCombiningClassV1,
            icu::properties::provider::PropertyNameLongEastAsianWidthV1: PropertyNameLongEastAsianWidthV1,
            icu::properties::provider::PropertyNameLongGeneralCategoryV1: PropertyNameLongGeneralCategoryV1,
            icu::properties::provider::PropertyNameLongGraphemeClusterBreakV1: PropertyNameLongGraphemeClusterBreakV1,
            icu::properties::provider::PropertyNameLongHangulSyllableTypeV1: PropertyNameLongHangulSyllableTypeV1,
            icu::properties::provider::PropertyNameLongIndicSyllabicCategoryV1: PropertyNameLongIndicSyllabicCategoryV1,
            icu::properties::provider::PropertyNameLongJoiningTypeV1: PropertyNameLongJoiningTypeV1,
            icu::properties::provider::PropertyNameLongLineBreakV1: PropertyNameLongLineBreakV1,
            icu::properties::provider::PropertyNameLongScriptV1: PropertyNameLongScriptV1,
            icu::properties::provider::PropertyNameLongSentenceBreakV1: PropertyNameLongSentenceBreakV1,
            icu::properties::provider::PropertyNameLongWordBreakV1: PropertyNameLongWordBreakV1,
            icu::properties::provider::PropertyNameParseBidiClassV1: PropertyNameParseBidiClassV1,
            icu::properties::provider::PropertyNameParseCanonicalCombiningClassV1: PropertyNameParseCanonicalCombiningClassV1,
            icu::properties::provider::PropertyNameParseEastAsianWidthV1: PropertyNameParseEastAsianWidthV1,
            icu::properties::provider::PropertyNameParseGeneralCategoryMaskV1: PropertyNameParseGeneralCategoryMaskV1,
            icu::properties::provider::PropertyNameParseGeneralCategoryV1: PropertyNameParseGeneralCategoryV1,
            icu::properties::provider::PropertyNameParseGraphemeClusterBreakV1: PropertyNameParseGraphemeClusterBreakV1,
            icu::properties::provider::PropertyNameParseHangulSyllableTypeV1: PropertyNameParseHangulSyllableTypeV1,
            icu::properties::provider::PropertyNameParseIndicSyllabicCategoryV1: PropertyNameParseIndicSyllabicCategoryV1,
            icu::properties::provider::PropertyNameParseJoiningTypeV1: PropertyNameParseJoiningTypeV1,
            icu::properties::provider::PropertyNameParseLineBreakV1: PropertyNameParseLineBreakV1,
            icu::properties::provider::PropertyNameParseScriptV1: PropertyNameParseScriptV1,
            icu::properties::provider::PropertyNameParseSentenceBreakV1: PropertyNameParseSentenceBreakV1,
            icu::properties::provider::PropertyNameParseWordBreakV1: PropertyNameParseWordBreakV1,
            icu::properties::provider::PropertyNameShortBidiClassV1: PropertyNameShortBidiClassV1,
            icu::properties::provider::PropertyNameShortCanonicalCombiningClassV1: PropertyNameShortCanonicalCombiningClassV1,
            icu::properties::provider::PropertyNameShortEastAsianWidthV1: PropertyNameShortEastAsianWidthV1,
            icu::properties::provider::PropertyNameShortGeneralCategoryV1: PropertyNameShortGeneralCategoryV1,
            icu::properties::provider::PropertyNameShortGraphemeClusterBreakV1: PropertyNameShortGraphemeClusterBreakV1,
            icu::properties::provider::PropertyNameShortHangulSyllableTypeV1: PropertyNameShortHangulSyllableTypeV1,
            icu::properties::provider::PropertyNameShortIndicSyllabicCategoryV1: PropertyNameShortIndicSyllabicCategoryV1,
            icu::properties::provider::PropertyNameShortJoiningTypeV1: PropertyNameShortJoiningTypeV1,
            icu::properties::provider::PropertyNameShortLineBreakV1: PropertyNameShortLineBreakV1,
            icu::properties::provider::PropertyNameShortScriptV1: PropertyNameShortScriptV1,
            icu::properties::provider::PropertyNameShortSentenceBreakV1: PropertyNameShortSentenceBreakV1,
            icu::properties::provider::PropertyNameShortWordBreakV1: PropertyNameShortWordBreakV1,
            icu::properties::provider::PropertyBinaryAlnumV1: PropertyBinaryAlnumV1,
            icu::properties::provider::PropertyBinaryAlphabeticV1: PropertyBinaryAlphabeticV1,
            icu::properties::provider::PropertyBinaryAsciiHexDigitV1: PropertyBinaryAsciiHexDigitV1,
            icu::properties::provider::PropertyBinaryBidiControlV1: PropertyBinaryBidiControlV1,
            icu::properties::provider::PropertyBinaryBidiMirroredV1: PropertyBinaryBidiMirroredV1,
            icu::properties::provider::PropertyBinaryBlankV1: PropertyBinaryBlankV1,
            icu::properties::provider::PropertyBinaryCasedV1: PropertyBinaryCasedV1,
            icu::properties::provider::PropertyBinaryCaseIgnorableV1: PropertyBinaryCaseIgnorableV1,
            icu::properties::provider::PropertyBinaryCaseSensitiveV1: PropertyBinaryCaseSensitiveV1,
            icu::properties::provider::PropertyBinaryChangesWhenCasefoldedV1: PropertyBinaryChangesWhenCasefoldedV1,
            icu::properties::provider::PropertyBinaryChangesWhenCasemappedV1: PropertyBinaryChangesWhenCasemappedV1,
            icu::properties::provider::PropertyBinaryChangesWhenLowercasedV1: PropertyBinaryChangesWhenLowercasedV1,
            icu::properties::provider::PropertyBinaryChangesWhenNfkcCasefoldedV1: PropertyBinaryChangesWhenNfkcCasefoldedV1,
            icu::properties::provider::PropertyBinaryChangesWhenTitlecasedV1: PropertyBinaryChangesWhenTitlecasedV1,
            icu::properties::provider::PropertyBinaryChangesWhenUppercasedV1: PropertyBinaryChangesWhenUppercasedV1,
            icu::properties::provider::PropertyBinaryDashV1: PropertyBinaryDashV1,
            icu::properties::provider::PropertyBinaryDefaultIgnorableCodePointV1: PropertyBinaryDefaultIgnorableCodePointV1,
            icu::properties::provider::PropertyBinaryDeprecatedV1: PropertyBinaryDeprecatedV1,
            icu::properties::provider::PropertyBinaryDiacriticV1: PropertyBinaryDiacriticV1,
            icu::properties::provider::PropertyBinaryEmojiComponentV1: PropertyBinaryEmojiComponentV1,
            icu::properties::provider::PropertyBinaryEmojiModifierBaseV1: PropertyBinaryEmojiModifierBaseV1,
            icu::properties::provider::PropertyBinaryEmojiModifierV1: PropertyBinaryEmojiModifierV1,
            icu::properties::provider::PropertyBinaryEmojiPresentationV1: PropertyBinaryEmojiPresentationV1,
            icu::properties::provider::PropertyBinaryEmojiV1: PropertyBinaryEmojiV1,
            icu::properties::provider::PropertyBinaryExtendedPictographicV1: PropertyBinaryExtendedPictographicV1,
            icu::properties::provider::PropertyBinaryExtenderV1: PropertyBinaryExtenderV1,
            icu::properties::provider::PropertyBinaryFullCompositionExclusionV1: PropertyBinaryFullCompositionExclusionV1,
            icu::properties::provider::PropertyBinaryGraphemeBaseV1: PropertyBinaryGraphemeBaseV1,
            icu::properties::provider::PropertyBinaryGraphemeExtendV1: PropertyBinaryGraphemeExtendV1,
            icu::properties::provider::PropertyBinaryGraphemeLinkV1: PropertyBinaryGraphemeLinkV1,
            icu::properties::provider::PropertyBinaryGraphV1: PropertyBinaryGraphV1,
            icu::properties::provider::PropertyBinaryHexDigitV1: PropertyBinaryHexDigitV1,
            icu::properties::provider::PropertyBinaryHyphenV1: PropertyBinaryHyphenV1,
            icu::properties::provider::PropertyBinaryIdContinueV1: PropertyBinaryIdContinueV1,
            icu::properties::provider::PropertyBinaryIdeographicV1: PropertyBinaryIdeographicV1,
            icu::properties::provider::PropertyBinaryIdsBinaryOperatorV1: PropertyBinaryIdsBinaryOperatorV1,
            icu::properties::provider::PropertyBinaryIdStartV1: PropertyBinaryIdStartV1,
            icu::properties::provider::PropertyBinaryIdsTrinaryOperatorV1: PropertyBinaryIdsTrinaryOperatorV1,
            icu::properties::provider::PropertyBinaryJoinControlV1: PropertyBinaryJoinControlV1,
            icu::properties::provider::PropertyBinaryLogicalOrderExceptionV1: PropertyBinaryLogicalOrderExceptionV1,
            icu::properties::provider::PropertyBinaryLowercaseV1: PropertyBinaryLowercaseV1,
            icu::properties::provider::PropertyBinaryMathV1: PropertyBinaryMathV1,
            icu::properties::provider::PropertyBinaryNfcInertV1: PropertyBinaryNfcInertV1,
            icu::properties::provider::PropertyBinaryNfdInertV1: PropertyBinaryNfdInertV1,
            icu::properties::provider::PropertyBinaryNfkcInertV1: PropertyBinaryNfkcInertV1,
            icu::properties::provider::PropertyBinaryNfkdInertV1: PropertyBinaryNfkdInertV1,
            icu::properties::provider::PropertyBinaryNoncharacterCodePointV1: PropertyBinaryNoncharacterCodePointV1,
            icu::properties::provider::PropertyBinaryPatternSyntaxV1: PropertyBinaryPatternSyntaxV1,
            icu::properties::provider::PropertyBinaryPatternWhiteSpaceV1: PropertyBinaryPatternWhiteSpaceV1,
            icu::properties::provider::PropertyBinaryPrependedConcatenationMarkV1: PropertyBinaryPrependedConcatenationMarkV1,
            icu::properties::provider::PropertyBinaryPrintV1: PropertyBinaryPrintV1,
            icu::properties::provider::PropertyBinaryQuotationMarkV1: PropertyBinaryQuotationMarkV1,
            icu::properties::provider::PropertyBinaryRadicalV1: PropertyBinaryRadicalV1,
            icu::properties::provider::PropertyBinaryRegionalIndicatorV1: PropertyBinaryRegionalIndicatorV1,
            icu::properties::provider::PropertyBinarySegmentStarterV1: PropertyBinarySegmentStarterV1,
            icu::properties::provider::PropertyBinarySentenceTerminalV1: PropertyBinarySentenceTerminalV1,
            icu::properties::provider::PropertyBinarySoftDottedV1: PropertyBinarySoftDottedV1,
            icu::properties::provider::PropertyBinaryTerminalPunctuationV1: PropertyBinaryTerminalPunctuationV1,
            icu::properties::provider::PropertyBinaryUnifiedIdeographV1: PropertyBinaryUnifiedIdeographV1,
            icu::properties::provider::PropertyBinaryUppercaseV1: PropertyBinaryUppercaseV1,
            icu::properties::provider::PropertyBinaryVariationSelectorV1: PropertyBinaryVariationSelectorV1,
            icu::properties::provider::PropertyBinaryWhiteSpaceV1: PropertyBinaryWhiteSpaceV1,
            icu::properties::provider::PropertyBinaryXdigitV1: PropertyBinaryXdigitV1,
            icu::properties::provider::PropertyBinaryXidContinueV1: PropertyBinaryXidContinueV1,
            icu::properties::provider::PropertyBinaryXidStartV1: PropertyBinaryXidStartV1,
            icu::properties::provider::PropertyEnumBidiClassV1: PropertyEnumBidiClassV1,
            icu::properties::provider::PropertyEnumCanonicalCombiningClassV1: PropertyEnumCanonicalCombiningClassV1,
            icu::properties::provider::PropertyEnumEastAsianWidthV1: PropertyEnumEastAsianWidthV1,
            icu::properties::provider::PropertyEnumGeneralCategoryV1: PropertyEnumGeneralCategoryV1,
            icu::properties::provider::PropertyEnumGraphemeClusterBreakV1: PropertyEnumGraphemeClusterBreakV1,
            icu::properties::provider::PropertyEnumHangulSyllableTypeV1: PropertyEnumHangulSyllableTypeV1,
            icu::properties::provider::PropertyEnumIndicSyllabicCategoryV1: PropertyEnumIndicSyllabicCategoryV1,
            icu::properties::provider::PropertyEnumJoiningTypeV1: PropertyEnumJoiningTypeV1,
            icu::properties::provider::PropertyEnumLineBreakV1: PropertyEnumLineBreakV1,
            icu::properties::provider::PropertyEnumScriptV1: PropertyEnumScriptV1,
            icu::properties::provider::PropertyEnumSentenceBreakV1: PropertyEnumSentenceBreakV1,
            icu::properties::provider::PropertyEnumWordBreakV1: PropertyEnumWordBreakV1,
            icu::properties::provider::PropertyEnumBidiMirroringGlyphV1: PropertyEnumBidiMirroringGlyphV1,
            icu::properties::provider::PropertyBinaryBasicEmojiV1: PropertyBinaryBasicEmojiV1,
            icu::properties::provider::PropertyScriptWithExtensionsV1: PropertyScriptWithExtensionsV1,
            icu::segmenter::provider::SegmenterDictionaryExtendedV1: SegmenterDictionaryExtendedV1,
            icu::segmenter::provider::SegmenterDictionaryAutoV1: SegmenterDictionaryAutoV1,
            icu::segmenter::provider::SegmenterBreakGraphemeClusterV1: SegmenterBreakGraphemeClusterV1,
            icu::segmenter::provider::SegmenterBreakLineV1: SegmenterBreakLineV1,
            icu::segmenter::provider::SegmenterLstmAutoV1: SegmenterLstmAutoV1,
            icu::segmenter::provider::SegmenterBreakSentenceOverrideV1: SegmenterBreakSentenceOverrideV1,
            icu::segmenter::provider::SegmenterBreakSentenceV1: SegmenterBreakSentenceV1,
            icu::segmenter::provider::SegmenterBreakWordOverrideV1: SegmenterBreakWordOverrideV1,
            icu::segmenter::provider::SegmenterBreakWordV1: SegmenterBreakWordV1,
            icu::time::provider::iana::TimeZoneIanaNamesV1: TimeZoneIanaNamesV1,
            icu::time::provider::iana::TimeZoneIanaMapV1: TimeZoneIanaMapV1,
            icu::time::provider::windows::TimeZoneWindowsV1: TimeZoneWindowsV1,
            icu::datetime::provider::neo::WeekdayNamesV1: WeekdayNamesV1,
            icu::datetime::provider::neo::DayPeriodNamesV1: DayPeriodNamesV1,
            icu::datetime::provider::neo::GluePatternV1: GluePatternV1,
            icu::datetime::provider::neo::BuddhistYearNamesV1: BuddhistYearNamesV1,
            icu::datetime::provider::neo::ChineseYearNamesV1: ChineseYearNamesV1,
            icu::datetime::provider::neo::CopticYearNamesV1: CopticYearNamesV1,
            icu::datetime::provider::neo::DangiYearNamesV1: DangiYearNamesV1,
            icu::datetime::provider::neo::EthiopianYearNamesV1: EthiopianYearNamesV1,
            icu::datetime::provider::neo::GregorianYearNamesV1: GregorianYearNamesV1,
            icu::datetime::provider::neo::HebrewYearNamesV1: HebrewYearNamesV1,
            icu::datetime::provider::neo::IndianYearNamesV1: IndianYearNamesV1,
            icu::datetime::provider::neo::HijriYearNamesV1: HijriYearNamesV1,
            icu::datetime::provider::neo::JapaneseYearNamesV1: JapaneseYearNamesV1,
            icu::datetime::provider::neo::JapaneseExtendedYearNamesV1: JapaneseExtendedYearNamesV1,
            icu::datetime::provider::neo::PersianYearNamesV1: PersianYearNamesV1,
            icu::datetime::provider::neo::RocYearNamesV1: RocYearNamesV1,
            icu::datetime::provider::neo::BuddhistMonthNamesV1: BuddhistMonthNamesV1,
            icu::datetime::provider::neo::ChineseMonthNamesV1: ChineseMonthNamesV1,
            icu::datetime::provider::neo::CopticMonthNamesV1: CopticMonthNamesV1,
            icu::datetime::provider::neo::DangiMonthNamesV1: DangiMonthNamesV1,
            icu::datetime::provider::neo::EthiopianMonthNamesV1: EthiopianMonthNamesV1,
            icu::datetime::provider::neo::GregorianMonthNamesV1: GregorianMonthNamesV1,
            icu::datetime::provider::neo::HebrewMonthNamesV1: HebrewMonthNamesV1,
            icu::datetime::provider::neo::IndianMonthNamesV1: IndianMonthNamesV1,
            icu::datetime::provider::neo::HijriMonthNamesV1: HijriMonthNamesV1,
            icu::datetime::provider::neo::JapaneseMonthNamesV1: JapaneseMonthNamesV1,
            icu::datetime::provider::neo::JapaneseExtendedMonthNamesV1: JapaneseExtendedMonthNamesV1,
            icu::datetime::provider::neo::PersianMonthNamesV1: PersianMonthNamesV1,
            icu::datetime::provider::neo::RocMonthNamesV1: RocMonthNamesV1,
            icu::datetime::provider::BuddhistDateNeoSkeletonPatternsV1: BuddhistDateNeoSkeletonPatternsV1,
            icu::datetime::provider::ChineseDateNeoSkeletonPatternsV1: ChineseDateNeoSkeletonPatternsV1,
            icu::datetime::provider::CopticDateNeoSkeletonPatternsV1: CopticDateNeoSkeletonPatternsV1,
            icu::datetime::provider::DangiDateNeoSkeletonPatternsV1: DangiDateNeoSkeletonPatternsV1,
            icu::datetime::provider::EthiopianDateNeoSkeletonPatternsV1: EthiopianDateNeoSkeletonPatternsV1,
            icu::datetime::provider::GregorianDateNeoSkeletonPatternsV1: GregorianDateNeoSkeletonPatternsV1,
            icu::datetime::provider::HebrewDateNeoSkeletonPatternsV1: HebrewDateNeoSkeletonPatternsV1,
            icu::datetime::provider::IndianDateNeoSkeletonPatternsV1: IndianDateNeoSkeletonPatternsV1,
            icu::datetime::provider::HijriDateNeoSkeletonPatternsV1: HijriDateNeoSkeletonPatternsV1,
            icu::datetime::provider::JapaneseDateNeoSkeletonPatternsV1: JapaneseDateNeoSkeletonPatternsV1,
            icu::datetime::provider::JapaneseExtendedDateNeoSkeletonPatternsV1: JapaneseExtendedDateNeoSkeletonPatternsV1,
            icu::datetime::provider::PersianDateNeoSkeletonPatternsV1: PersianDateNeoSkeletonPatternsV1,
            icu::datetime::provider::RocDateNeoSkeletonPatternsV1: RocDateNeoSkeletonPatternsV1,
            icu::datetime::provider::TimeNeoSkeletonPatternsV1: TimeNeoSkeletonPatternsV1,
            #[experimental]
            icu::experimental::compactdecimal::provider::LongCompactDecimalFormatDataV1: LongCompactDecimalFormatDataV1,
            icu::experimental::compactdecimal::provider::ShortCompactDecimalFormatDataV1: ShortCompactDecimalFormatDataV1,
            icu::experimental::dimension::provider::currency_compact::ShortCurrencyCompactV1: ShortCurrencyCompactV1,
            icu::experimental::dimension::provider::currency_displayname::CurrencyDisplaynameV1: CurrencyDisplaynameV1,
            icu::experimental::dimension::provider::currency::CurrencyEssentialsV1: CurrencyEssentialsV1,
            icu::experimental::dimension::provider::currency_patterns::CurrencyPatternsDataV1: CurrencyPatternsDataV1,
            icu::experimental::dimension::provider::extended_currency::CurrencyExtendedDataV1: CurrencyExtendedDataV1,
            icu::experimental::dimension::provider::percent::PercentEssentialsV1: PercentEssentialsV1,
            icu::experimental::dimension::provider::units::UnitsDisplayNameV1: UnitsDisplayNameV1,
            icu::experimental::dimension::provider::units_essentials::UnitsEssentialsV1: UnitsEssentialsV1,
            icu::experimental::duration::provider::DigitalDurationDataV1: DigitalDurationDataV1,
            icu::experimental::displaynames::provider::RegionDisplayNamesV1: RegionDisplayNamesV1,
            icu::experimental::displaynames::provider::LanguageDisplayNamesV1: LanguageDisplayNamesV1,
            icu::experimental::displaynames::provider::LocaleDisplayNamesV1: LocaleDisplayNamesV1,
            icu::experimental::displaynames::provider::ScriptDisplayNamesV1: ScriptDisplayNamesV1,
            icu::experimental::displaynames::provider::VariantDisplayNamesV1: VariantDisplayNamesV1,
            icu::experimental::measure::provider::trie::UnitsTrieV1: UnitsTrieV1,
            icu::experimental::relativetime::provider::LongSecondRelativeV1: LongSecondRelativeV1,
            icu::experimental::relativetime::provider::ShortSecondRelativeV1: ShortSecondRelativeV1,
            icu::experimental::relativetime::provider::NarrowSecondRelativeV1: NarrowSecondRelativeV1,
            icu::experimental::relativetime::provider::LongMinuteRelativeV1: LongMinuteRelativeV1,
            icu::experimental::relativetime::provider::ShortMinuteRelativeV1: ShortMinuteRelativeV1,
            icu::experimental::relativetime::provider::NarrowMinuteRelativeV1: NarrowMinuteRelativeV1,
            icu::experimental::relativetime::provider::LongHourRelativeV1: LongHourRelativeV1,
            icu::experimental::relativetime::provider::ShortHourRelativeV1: ShortHourRelativeV1,
            icu::experimental::relativetime::provider::NarrowHourRelativeV1: NarrowHourRelativeV1,
            icu::experimental::relativetime::provider::LongDayRelativeV1: LongDayRelativeV1,
            icu::experimental::relativetime::provider::ShortDayRelativeV1: ShortDayRelativeV1,
            icu::experimental::relativetime::provider::NarrowDayRelativeV1: NarrowDayRelativeV1,
            icu::experimental::relativetime::provider::LongWeekRelativeV1: LongWeekRelativeV1,
            icu::experimental::relativetime::provider::ShortWeekRelativeV1: ShortWeekRelativeV1,
            icu::experimental::relativetime::provider::NarrowWeekRelativeV1: NarrowWeekRelativeV1,
            icu::experimental::relativetime::provider::LongMonthRelativeV1: LongMonthRelativeV1,
            icu::experimental::relativetime::provider::ShortMonthRelativeV1: ShortMonthRelativeV1,
            icu::experimental::relativetime::provider::NarrowMonthRelativeV1: NarrowMonthRelativeV1,
            icu::experimental::relativetime::provider::LongQuarterRelativeV1: LongQuarterRelativeV1,
            icu::experimental::relativetime::provider::ShortQuarterRelativeV1: ShortQuarterRelativeV1,
            icu::experimental::relativetime::provider::NarrowQuarterRelativeV1: NarrowQuarterRelativeV1,
            icu::experimental::relativetime::provider::LongYearRelativeV1: LongYearRelativeV1,
            icu::experimental::relativetime::provider::ShortYearRelativeV1: ShortYearRelativeV1,
            icu::experimental::relativetime::provider::NarrowYearRelativeV1: NarrowYearRelativeV1,
            icu::experimental::personnames::provider::PersonNamesFormatV1: PersonNamesFormatV1,
            icu::experimental::transliterate::provider::TransliteratorRulesV1: TransliteratorRulesV1,
            icu::experimental::units::provider::UnitsInfoV1: UnitsInfoV1,
            icu::plurals::provider::PluralsRangesV1: PluralsRangesV1,
        );
    }
);

macro_rules! cb {
    ($($marker_ty:ty:$marker:ident,)+ #[experimental] $($emarker_ty:ty:$emarker:ident,)+) => {
        #[test]
        fn no_marker_collisions() {
            use icu_provider::prelude::*;

            let mut map = std::collections::BTreeMap::new();
            let mut failed = false;
            for marker in [
                $(
                    <$marker_ty>::INFO,
                )+
                $(
                    <$emarker_ty>::INFO,
                )+
            ] {
                if let Some(colliding_marker) = map.insert(marker.id.hashed(), marker) {
                    println!(
                        "{:?} and {:?} collide at {:?}",
                        marker.id,
                        colliding_marker.id,
                        marker.id.hashed(),
                    );
                    failed = true;
                }
            }
            if failed {
                panic!();
            }
        }
    }
}

registry!(cb);