icu_datetime/provider/
mod.rs1#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
7
8#[cfg(feature = "serde")]
19pub(crate) mod compat;
20pub mod fields;
21pub mod neo;
22pub(crate) mod packed_pattern;
23pub mod pattern;
24#[cfg(feature = "datagen")]
25pub mod skeleton;
26pub mod time_zones;
27
28pub use packed_pattern::*;
29
30pub(crate) type ErasedPackedPatterns = icu_provider::marker::ErasedMarker<PackedPatterns<'static>>;
31
32#[cfg(feature = "compiled_data")]
33#[derive(Debug)]
34pub struct Baked;
42
43#[cfg(feature = "compiled_data")]
44#[allow(unused_imports)]
45const _: () = {
46 use icu_datetime_data::*;
47 pub mod icu {
48 pub use crate as datetime;
49 pub use icu_locale as locale;
50 }
51 make_provider!(Baked);
52
53 impl_timezone_names_cities_override_v1!(Baked);
54 impl_timezone_names_cities_root_v1!(Baked);
55 impl_timezone_names_essentials_v1!(Baked);
56 impl_timezone_names_generic_long_v1!(Baked);
57 impl_timezone_names_generic_short_v1!(Baked);
58 impl_timezone_names_locations_override_v1!(Baked);
59 impl_timezone_names_locations_root_v1!(Baked);
60 impl_timezone_names_specific_long_v1!(Baked);
61 impl_timezone_names_specific_short_v1!(Baked);
62 impl_timezone_names_standard_long_v1!(Baked);
63
64 impl_datetime_patterns_glue_v1!(Baked);
65 impl_datetime_patterns_time_v1!(Baked);
66
67 impl_datetime_names_weekday_v1!(Baked);
68 impl_datetime_names_dayperiod_v1!(Baked);
69
70 impl_datetime_names_year_buddhist_v1!(Baked);
71 impl_datetime_names_year_chinese_v1!(Baked);
72 impl_datetime_names_year_coptic_v1!(Baked);
73 impl_datetime_names_year_dangi_v1!(Baked);
74 impl_datetime_names_year_ethiopian_v1!(Baked);
75 impl_datetime_names_year_gregorian_v1!(Baked);
76 impl_datetime_names_year_hebrew_v1!(Baked);
77 impl_datetime_names_year_indian_v1!(Baked);
78 impl_datetime_names_year_hijri_v1!(Baked);
79 impl_datetime_names_year_japanese_v1!(Baked);
80 impl_datetime_names_year_japanext_v1!(Baked);
81 impl_datetime_names_year_persian_v1!(Baked);
82 impl_datetime_names_year_roc_v1!(Baked);
83
84 impl_datetime_names_month_buddhist_v1!(Baked);
85 impl_datetime_names_month_chinese_v1!(Baked);
86 impl_datetime_names_month_coptic_v1!(Baked);
87 impl_datetime_names_month_dangi_v1!(Baked);
88 impl_datetime_names_month_ethiopian_v1!(Baked);
89 impl_datetime_names_month_gregorian_v1!(Baked);
90 impl_datetime_names_month_hebrew_v1!(Baked);
91 impl_datetime_names_month_indian_v1!(Baked);
92 impl_datetime_names_month_hijri_v1!(Baked);
93 impl_datetime_names_month_japanese_v1!(Baked);
94 impl_datetime_names_month_japanext_v1!(Baked);
95 impl_datetime_names_month_persian_v1!(Baked);
96 impl_datetime_names_month_roc_v1!(Baked);
97
98 impl_datetime_patterns_date_buddhist_v1!(Baked);
99 impl_datetime_patterns_date_chinese_v1!(Baked);
100 impl_datetime_patterns_date_coptic_v1!(Baked);
101 impl_datetime_patterns_date_dangi_v1!(Baked);
102 impl_datetime_patterns_date_ethiopian_v1!(Baked);
103 impl_datetime_patterns_date_gregorian_v1!(Baked);
104 impl_datetime_patterns_date_hebrew_v1!(Baked);
105 impl_datetime_patterns_date_indian_v1!(Baked);
106 impl_datetime_patterns_date_hijri_v1!(Baked);
107 impl_datetime_patterns_date_japanese_v1!(Baked);
108 impl_datetime_patterns_date_japanext_v1!(Baked);
109 impl_datetime_patterns_date_persian_v1!(Baked);
110 impl_datetime_patterns_date_roc_v1!(Baked);
111};
112
113#[cfg(feature = "compiled_data")]
114impl icu_provider::DataProvider<icu_time::provider::TimezonePeriodsV1> for Baked {
115 #[inline]
116 fn load(
117 &self,
118 req: icu_provider::DataRequest,
119 ) -> Result<
120 icu_provider::DataResponse<icu_time::provider::TimezonePeriodsV1>,
121 icu_provider::DataError,
122 > {
123 icu_time::provider::Baked.load(req)
124 }
125}
126
127#[cfg(feature = "datagen")]
128use icu_provider::prelude::*;
129
130#[cfg(feature = "datagen")]
131pub const MARKERS: &[DataMarkerInfo] = &[
133 time_zones::TimezoneNamesLocationsOverrideV1::INFO,
134 time_zones::TimezoneNamesLocationsRootV1::INFO,
135 time_zones::TimezoneNamesCitiesOverrideV1::INFO,
136 time_zones::TimezoneNamesCitiesRootV1::INFO,
137 time_zones::TimezoneNamesGenericLongV1::INFO,
138 time_zones::TimezoneNamesStandardLongV1::INFO,
139 time_zones::TimezoneNamesGenericShortV1::INFO,
140 time_zones::TimezoneNamesSpecificLongV1::INFO,
141 time_zones::TimezoneNamesSpecificShortV1::INFO,
142 time_zones::TimezoneNamesEssentialsV1::INFO,
143 neo::DatetimeNamesWeekdayV1::INFO,
144 neo::DatetimeNamesDayperiodV1::INFO,
145 neo::DatetimePatternsGlueV1::INFO,
146 DatetimePatternsTimeV1::INFO,
147 neo::DatetimeNamesYearBuddhistV1::INFO,
148 neo::DatetimeNamesYearChineseV1::INFO,
149 neo::DatetimeNamesYearCopticV1::INFO,
150 neo::DatetimeNamesYearDangiV1::INFO,
151 neo::DatetimeNamesYearEthiopianV1::INFO,
152 neo::DatetimeNamesYearGregorianV1::INFO,
153 neo::DatetimeNamesYearHebrewV1::INFO,
154 neo::DatetimeNamesYearIndianV1::INFO,
155 neo::DatetimeNamesYearHijriV1::INFO,
156 neo::DatetimeNamesYearJapaneseV1::INFO,
157 neo::DatetimeNamesYearJapanextV1::INFO,
158 neo::DatetimeNamesYearPersianV1::INFO,
159 neo::DatetimeNamesYearRocV1::INFO,
160 neo::DatetimeNamesMonthBuddhistV1::INFO,
161 neo::DatetimeNamesMonthChineseV1::INFO,
162 neo::DatetimeNamesMonthCopticV1::INFO,
163 neo::DatetimeNamesMonthDangiV1::INFO,
164 neo::DatetimeNamesMonthEthiopianV1::INFO,
165 neo::DatetimeNamesMonthGregorianV1::INFO,
166 neo::DatetimeNamesMonthHebrewV1::INFO,
167 neo::DatetimeNamesMonthIndianV1::INFO,
168 neo::DatetimeNamesMonthHijriV1::INFO,
169 neo::DatetimeNamesMonthJapaneseV1::INFO,
170 neo::DatetimeNamesMonthJapanextV1::INFO,
171 neo::DatetimeNamesMonthPersianV1::INFO,
172 neo::DatetimeNamesMonthRocV1::INFO,
173 DatetimePatternsDateBuddhistV1::INFO,
174 DatetimePatternsDateChineseV1::INFO,
175 DatetimePatternsDateCopticV1::INFO,
176 DatetimePatternsDateDangiV1::INFO,
177 DatetimePatternsDateEthiopianV1::INFO,
178 DatetimePatternsDateGregorianV1::INFO,
179 DatetimePatternsDateHebrewV1::INFO,
180 DatetimePatternsDateIndianV1::INFO,
181 DatetimePatternsDateHijriV1::INFO,
182 DatetimePatternsDateJapaneseV1::INFO,
183 DatetimePatternsDateJapanextV1::INFO,
184 DatetimePatternsDatePersianV1::INFO,
185 DatetimePatternsDateRocV1::INFO,
186];