@@ -166,6 +166,150 @@ macro_rules! test_crate {
166
166
assert_eq!( value_with_same_layout, deserialized_value) ;
167
167
}
168
168
}
169
+
170
+ // Test attributes for value struct with name flavor
171
+ #[ derive(
172
+ _scylla:: macros:: DeserializeValue , _scylla:: macros:: SerializeValue , PartialEq , Debug ,
173
+ ) ]
174
+ #[ scylla( crate = _scylla) ]
175
+ struct TestStructByName {
176
+ a: :: core:: primitive:: i32 ,
177
+ #[ scylla( allow_missing) ]
178
+ b: :: core:: primitive:: i32 ,
179
+ #[ scylla( default_when_null) ]
180
+ c: :: core:: primitive:: i32 ,
181
+ #[ scylla( skip) ]
182
+ d: :: core:: primitive:: i32 ,
183
+ #[ scylla( rename = "f" ) ]
184
+ e: :: core:: primitive:: i32 ,
185
+ g: :: core:: primitive:: i32 ,
186
+ }
187
+
188
+ // Test attributes for value struct with strict name flavor
189
+ #[ derive(
190
+ _scylla:: macros:: DeserializeValue , _scylla:: macros:: SerializeValue , PartialEq , Debug ,
191
+ ) ]
192
+ #[ scylla( crate = _scylla, forbid_excess_udt_fields) ]
193
+ struct TestStructByNameStrict {
194
+ a: :: core:: primitive:: i32 ,
195
+ #[ scylla( allow_missing) ]
196
+ b: :: core:: primitive:: i32 ,
197
+ #[ scylla( default_when_null) ]
198
+ c: :: core:: primitive:: i32 ,
199
+ #[ scylla( skip) ]
200
+ d: :: core:: primitive:: i32 ,
201
+ #[ scylla( rename = "f" ) ]
202
+ e: :: core:: primitive:: i32 ,
203
+ g: :: core:: primitive:: i32 ,
204
+ }
205
+
206
+ // Test attributes for value struct with ordered flavor
207
+ #[ derive(
208
+ _scylla:: macros:: DeserializeValue , _scylla:: macros:: SerializeValue , PartialEq , Debug ,
209
+ ) ]
210
+ #[ scylla( crate = _scylla, flavor = "enforce_order" ) ]
211
+ struct TestStructOrdered {
212
+ a: :: core:: primitive:: i32 ,
213
+ #[ scylla( allow_missing) ]
214
+ b: :: core:: primitive:: i32 ,
215
+ #[ scylla( default_when_null) ]
216
+ c: :: core:: primitive:: i32 ,
217
+ #[ scylla( skip) ]
218
+ d: :: core:: primitive:: i32 ,
219
+ #[ scylla( rename = "f" ) ]
220
+ e: :: core:: primitive:: i32 ,
221
+ g: :: core:: primitive:: i32 ,
222
+ }
223
+
224
+ // Test attributes for value struct with strict ordered flavor
225
+ #[ derive(
226
+ _scylla:: macros:: DeserializeValue , _scylla:: macros:: SerializeValue , PartialEq , Debug ,
227
+ ) ]
228
+ #[ scylla( crate = _scylla, flavor = "enforce_order" , forbid_excess_udt_fields) ]
229
+ struct TestStructOrderedStrict {
230
+ a: :: core:: primitive:: i32 ,
231
+ #[ scylla( allow_missing) ]
232
+ b: :: core:: primitive:: i32 ,
233
+ #[ scylla( default_when_null) ]
234
+ c: :: core:: primitive:: i32 ,
235
+ #[ scylla( skip) ]
236
+ d: :: core:: primitive:: i32 ,
237
+ #[ scylla( rename = "f" ) ]
238
+ e: :: core:: primitive:: i32 ,
239
+ g: :: core:: primitive:: i32 ,
240
+ }
241
+
242
+ // Test attributes for value struct with ordered flavor and skipped name checks
243
+ #[ derive(
244
+ _scylla:: macros:: DeserializeValue , _scylla:: macros:: SerializeValue , PartialEq , Debug ,
245
+ ) ]
246
+ #[ scylla( crate = _scylla, flavor = "enforce_order" , skip_name_checks) ]
247
+ struct TestStructOrderedSkipped {
248
+ a: :: core:: primitive:: i32 ,
249
+ b: :: core:: primitive:: i32 ,
250
+ #[ scylla( default_when_null) ]
251
+ c: :: core:: primitive:: i32 ,
252
+ d: :: core:: primitive:: i32 ,
253
+ #[ scylla( skip) ]
254
+ e: :: core:: primitive:: i32 ,
255
+ #[ scylla( allow_missing) ]
256
+ g: :: core:: primitive:: i32 ,
257
+ }
258
+
259
+ // Test attributes for value struct with strict ordered flavor and skipped name checks
260
+ #[ derive(
261
+ _scylla:: macros:: DeserializeValue , _scylla:: macros:: SerializeValue , PartialEq , Debug ,
262
+ ) ]
263
+ #[ scylla( crate = _scylla, flavor = "enforce_order" , skip_name_checks, forbid_excess_udt_fields) ]
264
+ struct TestStructOrderedStrictSkipped {
265
+ a: :: core:: primitive:: i32 ,
266
+ b: :: core:: primitive:: i32 ,
267
+ #[ scylla( default_when_null) ]
268
+ c: :: core:: primitive:: i32 ,
269
+ d: :: core:: primitive:: i32 ,
270
+ #[ scylla( skip) ]
271
+ e: :: core:: primitive:: i32 ,
272
+ #[ scylla( allow_missing) ]
273
+ g: :: core:: primitive:: i32 ,
274
+ }
275
+
276
+ // Test attributes for row struct with name flavor
277
+ #[ derive(
278
+ _scylla:: macros:: DeserializeRow , _scylla:: macros:: SerializeRow , PartialEq , Debug ,
279
+ ) ]
280
+ #[ scylla( crate = _scylla) ]
281
+ struct TestRowByName {
282
+ #[ scylla( skip) ]
283
+ a: :: core:: primitive:: i32 ,
284
+ #[ scylla( rename = "f" ) ]
285
+ b: :: core:: primitive:: i32 ,
286
+ c: :: core:: primitive:: i32 ,
287
+ }
288
+
289
+ // Test attributes for row struct with ordered flavor
290
+ #[ derive(
291
+ _scylla:: macros:: DeserializeRow , _scylla:: macros:: SerializeRow , PartialEq , Debug ,
292
+ ) ]
293
+ #[ scylla( crate = _scylla, flavor = "enforce_order" ) ]
294
+ struct TestRowByOrder {
295
+ #[ scylla( skip) ]
296
+ a: :: core:: primitive:: i32 ,
297
+ #[ scylla( rename = "f" ) ]
298
+ b: :: core:: primitive:: i32 ,
299
+ c: :: core:: primitive:: i32 ,
300
+ }
301
+
302
+ // Test attributes for row struct with ordered flavor and skipped name checks
303
+ #[ derive(
304
+ _scylla:: macros:: DeserializeRow , _scylla:: macros:: SerializeRow , PartialEq , Debug ,
305
+ ) ]
306
+ #[ scylla( crate = _scylla, flavor = "enforce_order" , skip_name_checks) ]
307
+ struct TestRowByOrderSkipped {
308
+ #[ scylla( skip) ]
309
+ a: :: core:: primitive:: i32 ,
310
+ b: :: core:: primitive:: i32 ,
311
+ c: :: core:: primitive:: i32 ,
312
+ }
169
313
} ;
170
314
}
171
315
0 commit comments