summaryrefslogtreecommitdiffstats
path: root/compiler/rustc_baked_icu_data/src/data/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/rustc_baked_icu_data/src/data/mod.rs')
-rw-r--r--compiler/rustc_baked_icu_data/src/data/mod.rs125
1 files changed, 17 insertions, 108 deletions
diff --git a/compiler/rustc_baked_icu_data/src/data/mod.rs b/compiler/rustc_baked_icu_data/src/data/mod.rs
index 943187808..465689f0c 100644
--- a/compiler/rustc_baked_icu_data/src/data/mod.rs
+++ b/compiler/rustc_baked_icu_data/src/data/mod.rs
@@ -1,122 +1,31 @@
// @generated
-#[clippy::msrv = "1.61"]
-mod fallback;
-#[clippy::msrv = "1.61"]
-mod list;
-#[clippy::msrv = "1.61"]
-use icu_provider::prelude::*;
-/// Implement [`DataProvider<M>`] on the given struct using the data
-/// hardcoded in this module. This allows the struct to be used with
-/// `icu`'s `_unstable` constructors.
-///
-/// This macro can only be called from its definition-site, i.e. right
-/// after `include!`-ing the generated module.
-///
-/// ```compile_fail
-/// struct MyDataProvider;
-/// include!("/path/to/generated/mod.rs");
-/// impl_data_provider(MyDataProvider);
-/// ```
-#[allow(unused_macros)]
+include!("macros.rs");
macro_rules! impl_data_provider {
- ($ provider : path) => {
- #[clippy::msrv = "1.61"]
- impl DataProvider<::icu_list::provider::AndListV1Marker> for $provider {
- fn load(&self, req: DataRequest) -> Result<DataResponse<::icu_list::provider::AndListV1Marker>, DataError> {
- list::and_v1::lookup(&req.locale)
- .map(zerofrom::ZeroFrom::zero_from)
- .map(DataPayload::from_owned)
- .map(|payload| DataResponse { metadata: Default::default(), payload: Some(payload) })
- .ok_or_else(|| DataErrorKind::MissingLocale.with_req(::icu_list::provider::AndListV1Marker::KEY, req))
- }
- }
- #[clippy::msrv = "1.61"]
- impl DataProvider<::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker> for $provider {
- fn load(
- &self,
- req: DataRequest,
- ) -> Result<DataResponse<::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker>, DataError> {
- fallback::supplement::co_v1::lookup(&req.locale)
- .map(zerofrom::ZeroFrom::zero_from)
- .map(DataPayload::from_owned)
- .map(|payload| DataResponse { metadata: Default::default(), payload: Some(payload) })
- .ok_or_else(|| {
- DataErrorKind::MissingLocale
- .with_req(::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker::KEY, req)
- })
- }
- }
- #[clippy::msrv = "1.61"]
- impl DataProvider<::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker> for $provider {
- fn load(
- &self,
- req: DataRequest,
- ) -> Result<DataResponse<::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker>, DataError> {
- fallback::likelysubtags_v1::lookup(&req.locale)
- .map(zerofrom::ZeroFrom::zero_from)
- .map(DataPayload::from_owned)
- .map(|payload| DataResponse { metadata: Default::default(), payload: Some(payload) })
- .ok_or_else(|| {
- DataErrorKind::MissingLocale
- .with_req(::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker::KEY, req)
- })
- }
- }
- #[clippy::msrv = "1.61"]
- impl DataProvider<::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker> for $provider {
- fn load(
- &self,
- req: DataRequest,
- ) -> Result<DataResponse<::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker>, DataError> {
- fallback::parents_v1::lookup(&req.locale)
- .map(zerofrom::ZeroFrom::zero_from)
- .map(DataPayload::from_owned)
- .map(|payload| DataResponse { metadata: Default::default(), payload: Some(payload) })
- .ok_or_else(|| {
- DataErrorKind::MissingLocale.with_req(::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker::KEY, req)
- })
- }
- }
+ ($ provider : ty) => {
+ make_provider!($provider);
+ impl_fallback_likelysubtags_v1!($provider);
+ impl_fallback_parents_v1!($provider);
+ impl_fallback_supplement_co_v1!($provider);
+ impl_list_and_v1!($provider);
};
}
-/// Implement [`AnyProvider`] on the given struct using the data
-/// hardcoded in this module. This allows the struct to be used with
-/// `icu`'s `_any` constructors.
-///
-/// This macro can only be called from its definition-site, i.e. right
-/// after `include!`-ing the generated module.
-///
-/// ```compile_fail
-/// struct MyAnyProvider;
-/// include!("/path/to/generated/mod.rs");
-/// impl_any_provider(MyAnyProvider);
-/// ```
#[allow(unused_macros)]
macro_rules! impl_any_provider {
- ($ provider : path) => {
- #[clippy::msrv = "1.61"]
- impl AnyProvider for $provider {
- fn load_any(&self, key: DataKey, req: DataRequest) -> Result<AnyResponse, DataError> {
- const ANDLISTV1MARKER: ::icu_provider::DataKeyHash = ::icu_list::provider::AndListV1Marker::KEY.hashed();
- const COLLATIONFALLBACKSUPPLEMENTV1MARKER: ::icu_provider::DataKeyHash =
- ::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker::KEY.hashed();
- const LOCALEFALLBACKLIKELYSUBTAGSV1MARKER: ::icu_provider::DataKeyHash =
- ::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker::KEY.hashed();
- const LOCALEFALLBACKPARENTSV1MARKER: ::icu_provider::DataKeyHash =
- ::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker::KEY.hashed();
+ ($ provider : ty) => {
+ #[clippy::msrv = "1.66"]
+ impl icu_provider::AnyProvider for $provider {
+ fn load_any(&self, key: icu_provider::DataKey, req: icu_provider::DataRequest) -> Result<icu_provider::AnyResponse, icu_provider::DataError> {
match key.hashed() {
- ANDLISTV1MARKER => list::and_v1::lookup(&req.locale).map(AnyPayload::from_static_ref),
- COLLATIONFALLBACKSUPPLEMENTV1MARKER => fallback::supplement::co_v1::lookup(&req.locale).map(AnyPayload::from_static_ref),
- LOCALEFALLBACKLIKELYSUBTAGSV1MARKER => fallback::likelysubtags_v1::lookup(&req.locale).map(AnyPayload::from_static_ref),
- LOCALEFALLBACKPARENTSV1MARKER => fallback::parents_v1::lookup(&req.locale).map(AnyPayload::from_static_ref),
- _ => return Err(DataErrorKind::MissingDataKey.with_req(key, req)),
+ h if h == <icu_locid_transform::provider::LocaleFallbackLikelySubtagsV1Marker as icu_provider::KeyedDataMarker>::KEY.hashed() => icu_provider::DataProvider::<icu_locid_transform::provider::LocaleFallbackLikelySubtagsV1Marker>::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response),
+ h if h == <icu_locid_transform::provider::LocaleFallbackParentsV1Marker as icu_provider::KeyedDataMarker>::KEY.hashed() => icu_provider::DataProvider::<icu_locid_transform::provider::LocaleFallbackParentsV1Marker>::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response),
+ h if h == <icu_locid_transform::provider::CollationFallbackSupplementV1Marker as icu_provider::KeyedDataMarker>::KEY.hashed() => icu_provider::DataProvider::<icu_locid_transform::provider::CollationFallbackSupplementV1Marker>::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response),
+ h if h == <icu_list::provider::AndListV1Marker as icu_provider::KeyedDataMarker>::KEY.hashed() => icu_provider::DataProvider::<icu_list::provider::AndListV1Marker>::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response),
+ _ => Err(icu_provider::DataErrorKind::MissingDataKey.with_req(key, req)),
}
- .map(|payload| AnyResponse { payload: Some(payload), metadata: Default::default() })
- .ok_or_else(|| DataErrorKind::MissingLocale.with_req(key, req))
}
}
};
}
-#[clippy::msrv = "1.61"]
+#[clippy::msrv = "1.66"]
pub struct BakedDataProvider;
impl_data_provider!(BakedDataProvider);