@@ -67,13 +67,17 @@ impl<'de> Deserialize<'de> for AwsLogs {
6767 where
6868 V : MapAccess < ' de > ,
6969 {
70+ use base64:: Engine ;
71+
7072 let mut data = None ;
7173 while let Some ( key) = map. next_key ( ) ? {
7274 match key {
7375 "data" => {
74- let bytes = map
75- . next_value :: < String > ( )
76- . and_then ( |string| base64:: decode ( string) . map_err ( Error :: custom) ) ?;
76+ let bytes = map. next_value :: < String > ( ) . and_then ( |string| {
77+ base64:: engine:: general_purpose:: STANDARD
78+ . decode ( string)
79+ . map_err ( Error :: custom)
80+ } ) ?;
7781
7882 let bytes = flate2:: read:: GzDecoder :: new ( & bytes[ ..] ) ;
7983 let mut de = serde_json:: Deserializer :: from_reader ( BufReader :: new ( bytes) ) ;
@@ -98,7 +102,7 @@ impl Serialize for AwsLogs {
98102 where
99103 S : Serializer ,
100104 {
101- let base = base64:: write:: EncoderWriter :: new ( Vec :: new ( ) , base64:: STANDARD_NO_PAD ) ;
105+ let base = base64:: write:: EncoderWriter :: new ( Vec :: new ( ) , & base64:: engine :: general_purpose :: STANDARD_NO_PAD ) ;
102106 let mut gzip = flate2:: write:: GzEncoder :: new ( base, flate2:: Compression :: default ( ) ) ;
103107
104108 serde_json:: to_writer ( & mut gzip, & self . data ) . map_err ( SeError :: custom) ?;
@@ -125,7 +129,8 @@ mod test {
125129 }
126130}"# ;
127131 let event: LogsEvent = serde_json:: from_str ( json) . expect ( "failed to deserialize" ) ;
128- let data = event. aws_logs . data . clone ( ) ;
132+
133+ let data = event. clone ( ) . aws_logs . data ;
129134 assert_eq ! ( "DATA_MESSAGE" , data. message_type) ;
130135 assert_eq ! ( "123456789012" , data. owner) ;
131136 assert_eq ! ( "/aws/lambda/echo-nodejs" , data. log_group) ;
@@ -140,7 +145,7 @@ mod test {
140145 assert_eq ! ( 1552518348220 , data. log_events[ 0 ] . timestamp) ;
141146 assert_eq ! ( "REPORT RequestId: 6234bffe-149a-b642-81ff-2e8e376d8aff\t Duration: 46.84 ms\t Billed Duration: 47 ms \t Memory Size: 192 MB\t Max Memory Used: 72 MB\t \n " , data. log_events[ 0 ] . message) ;
142147
143- let new_json = serde_json:: to_string_pretty ( & event) . unwrap ( ) ;
148+ let new_json: String = serde_json:: to_string_pretty ( & event) . unwrap ( ) ;
144149 let new_event: LogsEvent = serde_json:: from_str ( & new_json) . expect ( "failed to deserialize" ) ;
145150 assert_eq ! ( new_event, event) ;
146151 }
0 commit comments