Skip to content

Commit

Permalink
baked
Browse files Browse the repository at this point in the history
  • Loading branch information
robertbastian committed Jul 3, 2024
1 parent 53620ec commit 551a444
Show file tree
Hide file tree
Showing 599 changed files with 6,001 additions and 1,192 deletions.
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions provider/baked/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ heck = { workspace = true, optional = true }
[dev-dependencies]
icu_provider = { path = "../core", features = ["export"] }
icu_datagen = { path = "../datagen" }
icu_locale = { path = "../../components/locale" }

[features]
export = [
Expand Down
40 changes: 38 additions & 2 deletions provider/baked/src/export.rs
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,7 @@ impl BakedExporter {
&self,
marker: DataMarkerInfo,
body: TokenStream,
dry_body: TokenStream,
iterable_body: TokenStream,
) -> Result<(), DataError> {
let marker_unqualified = bake_marker(marker).into_iter().last().unwrap().to_string();
Expand Down Expand Up @@ -333,8 +334,10 @@ impl BakedExporter {
const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO;
#body
};
($provider:ty, ITER) => {
#prefixed_macro_ident!($provider);
(DryDataProvider for $provider:ty) => {
#dry_body
}
(IterableDataProvider for $provider:ty) => {
#iterable_body
};
}
Expand Down Expand Up @@ -414,6 +417,17 @@ impl DataExporter for BakedExporter {
}
}
}
}, quote! {
#maybe_msrv
impl icu_provider::DryDataProvider<#marker_bake> for $provider {
#[inline]
fn dry_load(
&self,
req: icu_provider::DataRequest,
) -> Result<icu_provider::DataResponseMetadata, icu_provider::DataError> {
icu_provider::DataProvider::<#marker_bake>::load(self, req).map(|r| r.metadata)
}
}
}, quote! {
#maybe_msrv
impl icu_provider::IterableDataProvider<#marker_bake> for $provider {
Expand Down Expand Up @@ -449,6 +463,17 @@ impl DataExporter for BakedExporter {
Err(icu_provider::DataErrorKind::IdentifierNotFound.with_req(<#marker_bake as icu_provider::DataMarker>::INFO, req))
}
}
}, quote! {
#maybe_msrv
impl icu_provider::DryDataProvider<#marker_bake> for $provider {
#[inline]
fn dry_load(
&self,
req: icu_provider::DataRequest,
) -> Result<icu_provider::DataResponseMetadata, icu_provider::DataError> {
icu_provider::DataProvider::<#marker_bake>::load(self, req).map(|r| r.metadata)
}
}
},
quote! {
#maybe_msrv
Expand Down Expand Up @@ -564,6 +589,17 @@ impl DataExporter for BakedExporter {
})
}
}
}, quote! {
#maybe_msrv
impl icu_provider::DryDataProvider<#marker_bake> for $provider {
#[inline]
fn dry_load(
&self,
req: icu_provider::DataRequest,
) -> Result<icu_provider::DataResponseMetadata, icu_provider::DataError> {
icu_provider::DataProvider::<#marker_bake>::load(self, req).map(|r| r.metadata)
}
}
},
quote! {
#maybe_msrv
Expand Down
12 changes: 10 additions & 2 deletions provider/baked/tests/data/hello_world_v1_marker.rs.data
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,16 @@ macro_rules! __impl_hello_world_v1_marker {
}
}
};
($ provider : ty , ITER) => {
__impl_hello_world_v1_marker!($provider);
(DryDataProvider for $ provider : ty) => {
#[clippy::msrv = "1.70"]
impl icu_provider::DryDataProvider<icu_provider::hello_world::HelloWorldV1Marker> for $provider {
#[inline]
fn dry_load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponseMetadata, icu_provider::DataError> {
icu_provider::DataProvider::<icu_provider::hello_world::HelloWorldV1Marker>::load(self, req).map(|r| r.metadata)
}
}
};
(IterableDataProvider for $ provider : ty) => {
#[clippy::msrv = "1.70"]
impl icu_provider::IterableDataProvider<icu_provider::hello_world::HelloWorldV1Marker> for $provider {
fn iter_ids(&self) -> Result<std::collections::HashSet<icu_provider::DataIdentifierCow<'static>>, icu_provider::DataError> {
Expand Down
21 changes: 20 additions & 1 deletion provider/baked/tests/test-baked-source.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ const _: () = {
#[path = "data/mod.rs"]
mod baked_data;
baked_data::make_provider!(Baked);
baked_data::impl_hello_world_v1_marker!(Baked, ITER);
baked_data::impl_hello_world_v1_marker!(Baked);
baked_data::impl_hello_world_v1_marker!(DryDataProvider for Baked);
baked_data::impl_hello_world_v1_marker!(IterableDataProvider for Baked);
};

#[test]
Expand All @@ -40,3 +42,20 @@ fn load() {
assert_eq!(baked, expected);
}
}


#[test]
fn dry_load() {
use icu_provider::hello_world::HelloWorldProvider;
use icu_provider::prelude::*;

for id in HelloWorldProvider.iter_ids().unwrap().into_iter().chain([DataIdentifierCow::from_locale("foo".parse().unwrap())]) {
let req = DataRequest {
id: id.as_borrowed(),
..Default::default()
};
let expected = HelloWorldProvider.dry_load(req);
let baked = Baked.dry_load(req);
assert_eq!(baked, expected);
}
}
12 changes: 10 additions & 2 deletions provider/data/calendar/data/chinese_cache_v1_marker.rs.data

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 10 additions & 2 deletions provider/data/calendar/data/dangi_cache_v1_marker.rs.data

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 10 additions & 2 deletions provider/data/calendar/data/japanese_eras_v1_marker.rs.data

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 10 additions & 2 deletions provider/data/calendar/data/week_data_v1_marker.rs.data

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 10 additions & 2 deletions provider/data/calendar/data/week_data_v2_marker.rs.data

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 10 additions & 2 deletions provider/data/calendar/stubdata/chinese_cache_v1_marker.rs.data

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 10 additions & 2 deletions provider/data/calendar/stubdata/dangi_cache_v1_marker.rs.data

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 10 additions & 2 deletions provider/data/calendar/stubdata/japanese_eras_v1_marker.rs.data

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 551a444

Please sign in to comment.