Skip to content

Commit 20207c3

Browse files
Remove icu_provider_macros (#6198)
#4991
1 parent a229fbf commit 20207c3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+1841
-1381
lines changed

.github/workflows/artifacts-build.yml

-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ jobs:
8383
--exclude icu_benchmark_macros
8484
--exclude icu_ffi_coverage
8585
--exclude md-tests
86-
--exclude icu_provider_macros
8786
--exclude databake-derive
8887
--exclude yoke-derive
8988
--exclude zerofrom-derive

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@
9191
- Add a checksum field to `DataResponseMetadata` (unicode-org#6046)
9292
- Remove data marker paths from release binaries (unicode-org#5981)
9393
- Add `MaybeAsVarULE` and `MaybeEncodeAsVarULE` with plumbing into `DataProvider::<ExportMarker>::tokenize_encoded_seq` (unicode-org#6133)
94+
- `icu_provider_macros`
95+
- Removed
9496
- `icu_provider_baked`
9597
- Change `DataStore` to return `DataPayload` (#6135)
9698
- `icu_provider_export`

Cargo.lock

-11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ members = [
4141
"provider/baked",
4242
"provider/source",
4343
"provider/blob",
44-
"provider/core/macros",
4544
"provider/export",
4645
"provider/fs",
4746
"provider/registry",
@@ -162,7 +161,6 @@ icu_capi = { version = "~2.0.0-dev", path = "ffi/capi", default-features = false
162161
# Provider
163162
icu_provider_export = { version = "~2.0.0-dev", path = "provider/export", default-features = false }
164163
icu_provider_source = { version = "~2.0.0-dev", path = "provider/source", default-features = false }
165-
icu_provider_macros = { version = "~2.0.0-dev", path = "provider/core/macros", default-features = false }
166164
icu_provider_adapters = { version = "~2.0.0-dev", path = "provider/adapters", default-features = false }
167165
icu_provider_baked = { version = "~2.0.0-dev", path = "provider/baked", default-features = false }
168166
icu_provider_blob = { version = "~2.0.0-dev", path = "provider/blob", default-features = false }

codecov.yml

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ ignore:
66
- "/*"
77
- "C:/*"
88
- "../*"
9-
- "components/locale_core/macros"
109
- "**/tests/**/*"
1110
- "**/benches/**/*"
1211
- "**/examples/**/*"

components/calendar/src/provider.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ pub struct JapaneseEras<'data> {
136136
pub dates_to_eras: ZeroVec<'data, (EraStartDate, TinyStr16)>,
137137
}
138138

139-
icu_provider::data_struct_new!(
139+
icu_provider::data_struct!(
140140
JapaneseEras<'_>,
141141
#[cfg(feature = "datagen")]
142142
);
@@ -164,7 +164,7 @@ pub struct WeekData {
164164
pub weekend: WeekdaySet,
165165
}
166166

167-
icu_provider::data_struct_new!(
167+
icu_provider::data_struct!(
168168
WeekData,
169169
#[cfg(feature = "datagen")]
170170
);

components/calendar/src/provider/chinese_based.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ pub struct ChineseBasedCache<'data> {
5252
pub data: ZeroVec<'data, PackedChineseBasedYearInfo>,
5353
}
5454

55-
icu_provider::data_struct_new!(
55+
icu_provider::data_struct!(
5656
ChineseBasedCache<'_>,
5757
#[cfg(feature = "datagen")]
5858
);

components/calendar/src/provider/islamic.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ pub struct IslamicCache<'data> {
5151
pub data: ZeroVec<'data, PackedIslamicYearInfo>,
5252
}
5353

54-
icu_provider::data_struct_new!(
54+
icu_provider::data_struct!(
5555
IslamicCache<'_>,
5656
#[cfg(feature = "datagen")]
5757
);

components/casemap/src/provider/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ pub struct CaseMap<'data> {
100100
pub exceptions: CaseMapExceptions<'data>,
101101
}
102102

103-
icu_provider::data_struct_new!(
103+
icu_provider::data_struct!(
104104
CaseMap<'_>,
105105
#[cfg(feature = "datagen")]
106106
);

components/casemap/src/provider/unfold.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ pub struct CaseMapUnfold<'data> {
2929
pub map: ZeroMap<'data, PotentialUtf8, str>,
3030
}
3131

32-
icu_provider::data_struct_new!(
32+
icu_provider::data_struct!(
3333
CaseMapUnfold<'_>,
3434
#[cfg(feature = "datagen")]
3535
);

components/collator/src/provider.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ pub struct CollationData<'data> {
202202
pub contexts: ZeroVec<'data, u16>,
203203
}
204204

205-
icu_provider::data_struct_new!(
205+
icu_provider::data_struct!(
206206
CollationData<'_>,
207207
#[cfg(feature = "datagen")]
208208
);
@@ -308,7 +308,7 @@ pub struct CollationDiacritics<'data> {
308308
pub secondaries: ZeroVec<'data, u16>,
309309
}
310310

311-
icu_provider::data_struct_new!(
311+
icu_provider::data_struct!(
312312
CollationDiacritics<'_>,
313313
#[cfg(feature = "datagen")]
314314
);
@@ -331,7 +331,7 @@ pub struct CollationJamo<'data> {
331331
pub ce32s: ZeroVec<'data, u32>,
332332
}
333333

334-
icu_provider::data_struct_new!(
334+
icu_provider::data_struct!(
335335
CollationJamo<'_>,
336336
#[cfg(feature = "datagen")]
337337
);
@@ -386,7 +386,7 @@ pub struct CollationReordering<'data> {
386386
pub reorder_ranges: ZeroVec<'data, u32>,
387387
}
388388

389-
icu_provider::data_struct_new!(
389+
icu_provider::data_struct!(
390390
CollationReordering<'_>,
391391
#[cfg(feature = "datagen")]
392392
);
@@ -449,7 +449,7 @@ pub struct CollationMetadata {
449449
pub bits: u32,
450450
}
451451

452-
icu_provider::data_struct_new!(
452+
icu_provider::data_struct!(
453453
CollationMetadata,
454454
#[cfg(feature = "datagen")]
455455
);
@@ -543,7 +543,7 @@ pub struct CollationSpecialPrimaries<'data> {
543543
pub numeric_primary: u8,
544544
}
545545

546-
icu_provider::data_struct_new!(
546+
icu_provider::data_struct!(
547547
CollationSpecialPrimaries<'_>,
548548
#[cfg(feature = "datagen")]
549549
);

components/datetime/Cargo.toml

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ icu_decimal = { workspace = true }
2828
icu_locale_core = { workspace = true }
2929
icu_pattern = { workspace = true, features = ["zerovec", "alloc"] }
3030
icu_plurals = { workspace = true }
31-
icu_provider = { workspace = true, features = ["macros"] }
31+
icu_provider = { workspace = true }
3232
icu_time = { workspace = true, features = ["alloc"] }
3333
smallvec = { workspace = true }
3434
tinystr = { workspace = true, features = ["alloc", "zerovec"] }
@@ -85,6 +85,7 @@ datagen = [
8585
"icu_pattern/databake",
8686
"icu_plurals/datagen",
8787
"icu_time/datagen",
88+
"icu_provider/export",
8889
"serde",
8990
]
9091
logging = ["icu_calendar/logging"]

components/datetime/src/provider/calendar/mod.rs

+81-36
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,72 @@ pub use symbols::*;
1717

1818
size_test!(DateLengths, date_lengths_v1_size, 224);
1919

20+
icu_provider::data_marker!(
21+
/// `BuddhistDateLengthsV1`
22+
BuddhistDateLengthsV1,
23+
DateLengths<'static>
24+
);
25+
icu_provider::data_marker!(
26+
/// `ChineseDateLengthsV1`
27+
ChineseDateLengthsV1,
28+
DateLengths<'static>
29+
);
30+
icu_provider::data_marker!(
31+
/// `CopticDateLengthsV1`
32+
CopticDateLengthsV1,
33+
DateLengths<'static>
34+
);
35+
icu_provider::data_marker!(
36+
/// `DangiDateLengthsV1`
37+
DangiDateLengthsV1,
38+
DateLengths<'static>
39+
);
40+
icu_provider::data_marker!(
41+
/// `EthiopianDateLengthsV1`
42+
EthiopianDateLengthsV1,
43+
DateLengths<'static>
44+
);
45+
icu_provider::data_marker!(
46+
/// `GregorianDateLengthsV1`
47+
GregorianDateLengthsV1,
48+
DateLengths<'static>
49+
);
50+
icu_provider::data_marker!(
51+
/// `HebrewDateLengthsV1`
52+
HebrewDateLengthsV1,
53+
DateLengths<'static>
54+
);
55+
icu_provider::data_marker!(
56+
/// `IndianDateLengthsV1`
57+
IndianDateLengthsV1,
58+
DateLengths<'static>
59+
);
60+
icu_provider::data_marker!(
61+
/// `IslamicDateLengthsV1`
62+
IslamicDateLengthsV1,
63+
DateLengths<'static>
64+
);
65+
icu_provider::data_marker!(
66+
/// `JapaneseDateLengthsV1`
67+
JapaneseDateLengthsV1,
68+
DateLengths<'static>
69+
);
70+
icu_provider::data_marker!(
71+
/// `JapaneseExtendedDateLengthsV1`
72+
JapaneseExtendedDateLengthsV1,
73+
DateLengths<'static>
74+
);
75+
icu_provider::data_marker!(
76+
/// `PersianDateLengthsV1`
77+
PersianDateLengthsV1,
78+
DateLengths<'static>
79+
);
80+
icu_provider::data_marker!(
81+
/// `RocDateLengthsV1`
82+
RocDateLengthsV1,
83+
DateLengths<'static>
84+
);
85+
2086
/// Pattern data for dates.
2187
#[doc = date_lengths_v1_size!()]
2288
///
@@ -25,22 +91,7 @@ size_test!(DateLengths, date_lengths_v1_size, 224);
2591
/// including in SemVer minor releases. While the serde representation of data structs is guaranteed
2692
/// to be stable, their Rust representation might not be. Use with caution.
2793
/// </div>
28-
#[icu_provider::data_struct(
29-
marker(BuddhistDateLengthsV1, "datetime/buddhist/datelengths@1"),
30-
marker(ChineseDateLengthsV1, "datetime/chinese/datelengths@1"),
31-
marker(CopticDateLengthsV1, "datetime/coptic/datelengths@1"),
32-
marker(DangiDateLengthsV1, "datetime/dangi/datelengths@1"),
33-
marker(EthiopianDateLengthsV1, "datetime/ethiopic/datelengths@1"),
34-
marker(GregorianDateLengthsV1, "datetime/gregory/datelengths@1"),
35-
marker(HebrewDateLengthsV1, "datetime/hebrew/datelengths@1"),
36-
marker(IndianDateLengthsV1, "datetime/indian/datelengths@1"),
37-
marker(IslamicDateLengthsV1, "datetime/islamic/datelengths@1"),
38-
marker(JapaneseDateLengthsV1, "datetime/japanese/datelengths@1"),
39-
marker(JapaneseExtendedDateLengthsV1, "datetime/japanext/datelengths@1"),
40-
marker(PersianDateLengthsV1, "datetime/persian/datelengths@1"),
41-
marker(RocDateLengthsV1, "datetime/roc/datelengths@1")
42-
)]
43-
#[derive(Debug, PartialEq, Clone, Default)]
94+
#[derive(Debug, PartialEq, Clone, Default, zerofrom::ZeroFrom, yoke::Yokeable)]
4495
#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
4596
#[cfg_attr(feature = "datagen", databake(path = icu_datetime::provider::calendar))]
4697
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
@@ -54,6 +105,17 @@ pub struct DateLengths<'data> {
54105
pub length_combinations: patterns::GenericLengthPatterns<'data>,
55106
}
56107

108+
icu_provider::data_struct!(
109+
DateLengths<'_>,
110+
#[cfg(feature = "datagen")]
111+
);
112+
113+
icu_provider::data_marker!(
114+
/// `TimeLengthsV1`
115+
TimeLengthsV1,
116+
TimeLengths<'static>
117+
);
118+
57119
size_test!(TimeLengths, time_lengths_v1_size, 264);
58120

59121
/// Pattern data for times.
@@ -64,8 +126,7 @@ size_test!(TimeLengths, time_lengths_v1_size, 264);
64126
/// including in SemVer minor releases. While the serde representation of data structs is guaranteed
65127
/// to be stable, their Rust representation might not be. Use with caution.
66128
/// </div>
67-
#[icu_provider::data_struct(marker(TimeLengthsV1, "datetime/timelengths@1",))]
68-
#[derive(Debug, PartialEq, Clone, Default)]
129+
#[derive(Debug, PartialEq, Clone, Default, yoke::Yokeable, zerofrom::ZeroFrom)]
69130
#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
70131
#[cfg_attr(feature = "datagen", databake(path = icu_datetime::provider::calendar))]
71132
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
@@ -86,6 +147,8 @@ pub struct TimeLengths<'data> {
86147
pub preferred_hour_cycle: pattern::CoarseHourCycle,
87148
}
88149

150+
icu_provider::data_struct!(TimeLengths<'_>, #[cfg(feature = "datagen")]);
151+
89152
/// Data structs for date / time patterns that store data corresponding to pattern lengths
90153
/// and/or plural forms.
91154
pub mod patterns {
@@ -157,22 +220,4 @@ pub mod patterns {
157220
#[cfg_attr(feature = "serde", serde(borrow))]
158221
pub short: GenericPattern<'data>,
159222
}
160-
161-
/// A general purpose pattern representation. Used for date-time glue patterns.
162-
///
163-
/// Expresses the formatting positions of other formatted elements (ex: the order
164-
/// and formatting of a date and a time within a date-time pattern).
165-
///
166-
/// <div class="stab unstable">
167-
/// 🚧 This code is considered unstable; it may change at any time, in breaking or non-breaking ways,
168-
/// including in SemVer minor releases. While the serde representation of data structs is guaranteed
169-
/// to be stable, their Rust representation might not be. Use with caution.
170-
/// </div>
171-
#[icu_provider::data_struct]
172-
#[derive(Debug, PartialEq, Clone, Default)]
173-
#[cfg_attr(feature = "datagen", derive(serde::Serialize))]
174-
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
175-
pub struct GenericPatternData<'data>(
176-
#[cfg_attr(feature = "serde", serde(borrow))] pub GenericPattern<'data>,
177-
);
178223
}

0 commit comments

Comments
 (0)