@@ -13,7 +13,7 @@ pub struct KinesisEvent {
13
13
14
14
/// `KinesisTimeWindowEvent` represents an Amazon Dynamodb event when using time windows
15
15
/// ref. <https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-windows>
16
- #[ derive( Clone , Debug , Deserialize , Eq , PartialEq , Serialize ) ]
16
+ #[ derive( Clone , Debug , Default , Deserialize , Eq , PartialEq , Serialize ) ]
17
17
#[ serde( rename_all = "camelCase" ) ]
18
18
pub struct KinesisTimeWindowEvent {
19
19
#[ serde( rename = "KinesisEvent" ) ]
@@ -34,7 +34,7 @@ pub struct KinesisTimeWindowEventResponse {
34
34
// pub batch_item_failures: Vec<KinesisBatchItemFailure>,
35
35
}
36
36
37
- #[ derive( Clone , Debug , Deserialize , Eq , PartialEq , Serialize ) ]
37
+ #[ derive( Clone , Debug , Default , Deserialize , Eq , PartialEq , Serialize ) ]
38
38
#[ serde( rename_all = "camelCase" ) ]
39
39
pub struct KinesisEventRecord {
40
40
/// nolint: stylecheck
@@ -59,7 +59,7 @@ pub struct KinesisEventRecord {
59
59
pub kinesis : KinesisRecord ,
60
60
}
61
61
62
- #[ derive( Clone , Debug , Deserialize , Eq , PartialEq , Serialize ) ]
62
+ #[ derive( Clone , Debug , Default , Deserialize , Eq , PartialEq , Serialize ) ]
63
63
#[ serde( rename_all = "camelCase" ) ]
64
64
pub struct KinesisRecord {
65
65
pub approximate_arrival_timestamp : SecondTimestamp ,
@@ -110,10 +110,16 @@ mod test {
110
110
assert_eq ! ( parsed, reparsed) ;
111
111
}
112
112
113
+ /// `cargo lambda init` autogenerates code that relies on `Default` being implemented for event structs.
114
+ ///
115
+ /// This test validates that `Default` is implemented for each KinesisEvent struct.
113
116
#[ test]
114
117
#[ cfg( feature = "kinesis" ) ]
115
- fn default_kinesis_event ( ) {
116
- let event = KinesisEvent :: default ( ) ;
117
- assert_eq ! ( event. records, vec![ ] ) ;
118
+ fn test_ensure_default_implemented_for_structs ( ) {
119
+ let _kinesis_event = KinesisEvent :: default ( ) ;
120
+ let _kinesis_time_window_event = KinesisTimeWindowEvent :: default ( ) ;
121
+ let _kinesis_event_record = KinesisEventRecord :: default ( ) ;
122
+ let _kinesis_record = KinesisRecord :: default ( ) ;
123
+ let _kinesis_encryption_type = KinesisEncryptionType :: default ( ) ;
118
124
}
119
125
}
0 commit comments