1#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
7
8#[cfg(feature = "compiled_data")]
19#[derive(Debug)]
20pub struct Baked;
28
29#[cfg(feature = "compiled_data")]
30#[allow(unused_imports)]
31const _: () = {
32 use icu_locale_data::*;
33 pub mod icu {
34 pub use crate as locale;
35 pub use icu_collections as collections;
36 }
37 make_provider!(Baked);
38 impl_locale_aliases_v1!(Baked);
39 impl_locale_likely_subtags_extended_v1!(Baked);
40 impl_locale_likely_subtags_language_v1!(Baked);
41 impl_locale_likely_subtags_script_region_v1!(Baked);
42 impl_locale_parents_v1!(Baked);
43 impl_locale_script_direction_v1!(Baked);
44
45 impl_locale_exemplar_characters_auxiliary_v1!(Baked);
46 impl_locale_exemplar_characters_index_v1!(Baked);
47 impl_locale_exemplar_characters_main_v1!(Baked);
48 impl_locale_exemplar_characters_numbers_v1!(Baked);
49 impl_locale_exemplar_characters_punctuation_v1!(Baked);
50};
51
52icu_provider::data_marker!(
53 LocaleAliasesV1,
55 "locale/aliases/v1",
56 Aliases<'static>,
57 is_singleton = true
58);
59icu_provider::data_marker!(
60 LocaleLikelySubtagsLanguageV1,
62 "locale/likely/subtags/language/v1",
63 LikelySubtagsForLanguage<'static>,
64 is_singleton = true
65);
66icu_provider::data_marker!(
67 LocaleLikelySubtagsScriptRegionV1,
69 "locale/likely/subtags/script/region/v1",
70 LikelySubtagsForScriptRegion<'static>,
71 is_singleton = true
72);
73icu_provider::data_marker!(
74 LocaleLikelySubtagsExtendedV1,
76 "locale/likely/subtags/extended/v1",
77 LikelySubtagsExtended<'static>,
78 is_singleton = true
79);
80icu_provider::data_marker!(
81 LocaleParentsV1,
83 "locale/parents/v1",
84 Parents<'static>,
85 is_singleton = true
86);
87
88icu_provider::data_marker!(
89 LocaleScriptDirectionV1,
91 "locale/script/direction/v1",
92 ScriptDirection<'static>,
93 is_singleton = true
94);
95
96icu_provider::data_marker!(
97 LocaleExemplarCharactersAuxiliaryV1,
99 "locale/exemplar/characters/auxiliary/v1",
100 ExemplarCharactersData<'static>,
101);
102icu_provider::data_marker!(
103 LocaleExemplarCharactersIndexV1,
105 "locale/exemplar/characters/index/v1",
106 ExemplarCharactersData<'static>,
107);
108icu_provider::data_marker!(
109 LocaleExemplarCharactersMainV1,
111 "locale/exemplar/characters/main/v1",
112 ExemplarCharactersData<'static>,
113);
114icu_provider::data_marker!(
115 LocaleExemplarCharactersNumbersV1,
117 "locale/exemplar/characters/numbers/v1",
118 ExemplarCharactersData<'static>,
119);
120icu_provider::data_marker!(
121 LocaleExemplarCharactersPunctuationV1,
123 "locale/exemplar/characters/punctuation/v1",
124 ExemplarCharactersData<'static>,
125);
126
127#[cfg(feature = "datagen")]
128pub const MARKERS: &[DataMarkerInfo] = &[
130 LocaleAliasesV1::INFO,
131 LocaleExemplarCharactersAuxiliaryV1::INFO,
132 LocaleExemplarCharactersIndexV1::INFO,
133 LocaleExemplarCharactersMainV1::INFO,
134 LocaleExemplarCharactersNumbersV1::INFO,
135 LocaleExemplarCharactersPunctuationV1::INFO,
136 LocaleLikelySubtagsExtendedV1::INFO,
137 LocaleLikelySubtagsLanguageV1::INFO,
138 LocaleLikelySubtagsScriptRegionV1::INFO,
139 LocaleParentsV1::INFO,
140 LocaleScriptDirectionV1::INFO,
141];
142
143use alloc::borrow::Cow;
144use icu_collections::codepointinvliststringlist::CodePointInversionListAndStringList;
145use icu_locale_core::subtags::{Language, Region, Script, Variant};
146use icu_provider::prelude::*;
147use potential_utf::PotentialUtf8;
148use tinystr::{TinyAsciiStr, UnvalidatedTinyAsciiStr};
149use zerovec::{VarZeroVec, ZeroMap, ZeroSlice, ZeroVec};
150
151type UnvalidatedLanguage = UnvalidatedTinyAsciiStr<3>;
156type UnvalidatedScript = UnvalidatedTinyAsciiStr<4>;
157type UnvalidatedRegion = UnvalidatedTinyAsciiStr<3>;
158type UnvalidatedVariant = UnvalidatedTinyAsciiStr<8>;
159type UnvalidatedSubdivision = UnvalidatedTinyAsciiStr<7>;
160type SemivalidatedSubdivision = TinyAsciiStr<7>;
161
162type UnvalidatedLanguageIdentifier = str;
165type UnvalidatedLanguageIdentifierPair = StrStrPairVarULE;
166type UnvalidatedLanguageVariantsPair = LanguageStrStrPairVarULE;
167
168#[zerovec::make_varule(StrStrPairVarULE)]
169#[zerovec::derive(Debug)]
170#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Debug)]
171#[cfg_attr(
172 feature = "serde",
173 derive(serde::Deserialize),
174 zerovec::derive(Deserialize)
175)]
176#[cfg_attr(
177 feature = "datagen",
178 derive(serde::Serialize, databake::Bake),
179 zerovec::derive(Serialize),
180 databake(path = icu_locale::provider),
181)]
182pub struct StrStrPair<'a>(
190 #[cfg_attr(feature = "serde", serde(borrow))] pub Cow<'a, str>,
191 #[cfg_attr(feature = "serde", serde(borrow))] pub Cow<'a, str>,
192);
193
194#[zerovec::make_varule(LanguageStrStrPairVarULE)]
195#[zerovec::derive(Debug)]
196#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Debug)]
197#[cfg_attr(
198 feature = "serde",
199 derive(serde::Deserialize),
200 zerovec::derive(Deserialize)
201)]
202#[cfg_attr(
203 feature = "datagen",
204 derive(serde::Serialize, databake::Bake),
205 zerovec::derive(Serialize),
206 databake(path = icu_locale::provider),
207)]
208pub struct LanguageStrStrPair<'a>(
210 pub Language,
211 #[cfg_attr(feature = "serde", serde(borrow))] pub Cow<'a, str>,
212 #[cfg_attr(feature = "serde", serde(borrow))] pub Cow<'a, str>,
213);
214
215#[derive(PartialEq, Clone, Default, yoke::Yokeable, zerofrom::ZeroFrom)]
216#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
217#[cfg_attr(feature = "datagen", databake(path = icu_locale::provider))]
218#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
219#[yoke(prove_covariance_manually)]
220#[derive(Debug)]
244pub struct Aliases<'data> {
245 #[cfg_attr(feature = "serde", serde(borrow))]
248 pub language_variants: VarZeroVec<'data, UnvalidatedLanguageVariantsPair>,
249 #[cfg_attr(feature = "serde", serde(borrow))]
251 pub sgn_region: ZeroMap<'data, UnvalidatedRegion, Language>,
252 #[cfg_attr(feature = "serde", serde(borrow))]
254 pub language_len2: ZeroMap<'data, UnvalidatedTinyAsciiStr<2>, UnvalidatedLanguageIdentifier>,
255 #[cfg_attr(feature = "serde", serde(borrow))]
257 pub language_len3: ZeroMap<'data, UnvalidatedLanguage, UnvalidatedLanguageIdentifier>,
258 #[cfg_attr(feature = "serde", serde(borrow))]
261 pub language: VarZeroVec<'data, UnvalidatedLanguageIdentifierPair>,
262
263 #[cfg_attr(feature = "serde", serde(borrow))]
265 pub script: ZeroMap<'data, UnvalidatedScript, Script>,
266
267 #[cfg_attr(feature = "serde", serde(borrow))]
269 pub region_alpha: ZeroMap<'data, UnvalidatedTinyAsciiStr<2>, Region>,
270 #[cfg_attr(feature = "serde", serde(borrow))]
272 pub region_num: ZeroMap<'data, UnvalidatedRegion, Region>,
273
274 #[cfg_attr(feature = "serde", serde(borrow))]
276 pub complex_region: ZeroMap<'data, UnvalidatedRegion, ZeroSlice<Region>>,
277
278 #[cfg_attr(feature = "serde", serde(borrow))]
280 pub variant: ZeroMap<'data, UnvalidatedVariant, Variant>,
281
282 #[cfg_attr(feature = "serde", serde(borrow))]
284 pub subdivision: ZeroMap<'data, UnvalidatedSubdivision, SemivalidatedSubdivision>,
285}
286
287icu_provider::data_struct!(
288 Aliases<'_>,
289 #[cfg(feature = "datagen")]
290);
291
292#[derive(Debug, PartialEq, Clone, yoke::Yokeable, zerofrom::ZeroFrom)]
293#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
294#[cfg_attr(feature = "datagen", databake(path = icu_locale::provider))]
295#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
296#[yoke(prove_covariance_manually)]
319pub struct LikelySubtagsForLanguage<'data> {
320 #[cfg_attr(feature = "serde", serde(borrow))]
322 pub language_script: ZeroMap<'data, (UnvalidatedLanguage, UnvalidatedScript), Region>,
323 #[cfg_attr(feature = "serde", serde(borrow))]
325 pub language_region: ZeroMap<'data, (UnvalidatedLanguage, UnvalidatedRegion), Script>,
326 #[cfg_attr(feature = "serde", serde(borrow))]
328 pub language: ZeroMap<'data, UnvalidatedLanguage, (Script, Region)>,
329 pub und: (Language, Script, Region),
331}
332
333icu_provider::data_struct!(
334 LikelySubtagsForLanguage<'_>,
335 #[cfg(feature = "datagen")]
336);
337
338#[derive(Debug, PartialEq, Clone, yoke::Yokeable, zerofrom::ZeroFrom)]
339#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
340#[cfg_attr(feature = "datagen", databake(path = icu_locale::provider))]
341#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
342#[yoke(prove_covariance_manually)]
365pub struct LikelySubtagsForScriptRegion<'data> {
366 #[cfg_attr(feature = "serde", serde(borrow))]
368 pub script_region: ZeroMap<'data, (UnvalidatedScript, UnvalidatedRegion), Language>,
369 #[cfg_attr(feature = "serde", serde(borrow))]
371 pub script: ZeroMap<'data, UnvalidatedScript, (Language, Region)>,
372 #[cfg_attr(feature = "serde", serde(borrow))]
374 pub region: ZeroMap<'data, UnvalidatedRegion, (Language, Script)>,
375}
376
377icu_provider::data_struct!(
378 LikelySubtagsForScriptRegion<'_>,
379 #[cfg(feature = "datagen")]
380);
381
382#[derive(Debug, PartialEq, Clone, yoke::Yokeable, zerofrom::ZeroFrom)]
383#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
384#[cfg_attr(feature = "datagen", databake(path = icu_locale::provider))]
385#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
386#[yoke(prove_covariance_manually)]
395pub struct LikelySubtagsExtended<'data> {
396 #[cfg_attr(feature = "serde", serde(borrow))]
398 pub language_script: ZeroMap<'data, (UnvalidatedLanguage, UnvalidatedScript), Region>,
399 #[cfg_attr(feature = "serde", serde(borrow))]
401 pub language_region: ZeroMap<'data, (UnvalidatedLanguage, UnvalidatedRegion), Script>,
402 #[cfg_attr(feature = "serde", serde(borrow))]
404 pub language: ZeroMap<'data, UnvalidatedLanguage, (Script, Region)>,
405 #[cfg_attr(feature = "serde", serde(borrow))]
407 pub script_region: ZeroMap<'data, (UnvalidatedScript, UnvalidatedRegion), Language>,
408 #[cfg_attr(feature = "serde", serde(borrow))]
410 pub script: ZeroMap<'data, UnvalidatedScript, (Language, Region)>,
411 #[cfg_attr(feature = "serde", serde(borrow))]
413 pub region: ZeroMap<'data, UnvalidatedRegion, (Language, Script)>,
414}
415
416icu_provider::data_struct!(
417 LikelySubtagsExtended<'_>,
418 #[cfg(feature = "datagen")]
419);
420
421#[derive(Default, Clone, PartialEq, Debug, yoke::Yokeable, zerofrom::ZeroFrom)]
423#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
424#[cfg_attr(feature = "datagen", databake(path = icu_locale::provider))]
425#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
426#[yoke(prove_covariance_manually)]
427pub struct Parents<'data> {
428 #[cfg_attr(feature = "serde", serde(borrow))]
431 pub parents: ZeroMap<'data, PotentialUtf8, (Language, Option<Script>, Option<Region>)>,
432}
433
434icu_provider::data_struct!(
435 Parents<'_>,
436 #[cfg(feature = "datagen")]
437);
438
439#[derive(Debug, PartialEq, Clone, yoke::Yokeable, zerofrom::ZeroFrom)]
440#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
441#[cfg_attr(feature = "datagen", databake(path = icu_locale::provider))]
442#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
443#[yoke(prove_covariance_manually)]
451pub struct ScriptDirection<'data> {
452 #[cfg_attr(feature = "serde", serde(borrow))]
454 pub rtl: ZeroVec<'data, UnvalidatedScript>,
455 #[cfg_attr(feature = "serde", serde(borrow))]
457 pub ltr: ZeroVec<'data, UnvalidatedScript>,
458}
459
460icu_provider::data_struct!(
461 ScriptDirection<'_>,
462 #[cfg(feature = "datagen")]
463);
464
465#[derive(Debug, Eq, PartialEq, Clone, yoke::Yokeable, zerofrom::ZeroFrom)]
473#[cfg_attr(
474 feature = "datagen",
475 derive(serde::Serialize, databake::Bake),
476 databake(path = icu_locale::provider),
477)]
478#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
479pub struct ExemplarCharactersData<'data>(
480 #[cfg_attr(feature = "serde", serde(borrow))] pub CodePointInversionListAndStringList<'data>,
481);
482
483icu_provider::data_struct!(
484 ExemplarCharactersData<'_>,
485 #[cfg(feature = "datagen")]
486);