@@ -17,6 +17,72 @@ pub use symbols::*;
17
17
18
18
size_test ! ( DateLengths , date_lengths_v1_size, 224 ) ;
19
19
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
+
20
86
/// Pattern data for dates.
21
87
#[ doc = date_lengths_v1_size ! ( ) ]
22
88
///
@@ -25,22 +91,7 @@ size_test!(DateLengths, date_lengths_v1_size, 224);
25
91
/// including in SemVer minor releases. While the serde representation of data structs is guaranteed
26
92
/// to be stable, their Rust representation might not be. Use with caution.
27
93
/// </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 ) ]
44
95
#[ cfg_attr( feature = "datagen" , derive( serde:: Serialize , databake:: Bake ) ) ]
45
96
#[ cfg_attr( feature = "datagen" , databake( path = icu_datetime:: provider:: calendar) ) ]
46
97
#[ cfg_attr( feature = "serde" , derive( serde:: Deserialize ) ) ]
@@ -54,6 +105,17 @@ pub struct DateLengths<'data> {
54
105
pub length_combinations : patterns:: GenericLengthPatterns < ' data > ,
55
106
}
56
107
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
+
57
119
size_test ! ( TimeLengths , time_lengths_v1_size, 264 ) ;
58
120
59
121
/// Pattern data for times.
@@ -64,8 +126,7 @@ size_test!(TimeLengths, time_lengths_v1_size, 264);
64
126
/// including in SemVer minor releases. While the serde representation of data structs is guaranteed
65
127
/// to be stable, their Rust representation might not be. Use with caution.
66
128
/// </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 ) ]
69
130
#[ cfg_attr( feature = "datagen" , derive( serde:: Serialize , databake:: Bake ) ) ]
70
131
#[ cfg_attr( feature = "datagen" , databake( path = icu_datetime:: provider:: calendar) ) ]
71
132
#[ cfg_attr( feature = "serde" , derive( serde:: Deserialize ) ) ]
@@ -86,6 +147,8 @@ pub struct TimeLengths<'data> {
86
147
pub preferred_hour_cycle : pattern:: CoarseHourCycle ,
87
148
}
88
149
150
+ icu_provider:: data_struct!( TimeLengths <' _>, #[ cfg( feature = "datagen" ) ] ) ;
151
+
89
152
/// Data structs for date / time patterns that store data corresponding to pattern lengths
90
153
/// and/or plural forms.
91
154
pub mod patterns {
@@ -157,22 +220,4 @@ pub mod patterns {
157
220
#[ cfg_attr( feature = "serde" , serde( borrow) ) ]
158
221
pub short : GenericPattern < ' data > ,
159
222
}
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
- ) ;
178
223
}
0 commit comments