@@ -166,6 +166,150 @@ macro_rules! test_crate {
166166 assert_eq!( value_with_same_layout, deserialized_value) ;
167167 }
168168 }
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+ }
169313 } ;
170314}
171315
0 commit comments