@@ -119,7 +119,7 @@ impl Default for CsvSerializerOptions {
119
119
double_quote : true ,
120
120
escape : b'"' ,
121
121
quote_style : QuoteStyle :: Necessary ,
122
- fields : vec ! [ ]
122
+ fields : vec ! [ ] ,
123
123
}
124
124
}
125
125
}
@@ -130,15 +130,15 @@ impl CsvSerializerOptions {
130
130
QuoteStyle :: Always => csv:: QuoteStyle :: Always ,
131
131
QuoteStyle :: NonNumeric => csv:: QuoteStyle :: NonNumeric ,
132
132
QuoteStyle :: Never => csv:: QuoteStyle :: Never ,
133
- _ => csv:: QuoteStyle :: Necessary
133
+ _ => csv:: QuoteStyle :: Necessary ,
134
134
}
135
135
}
136
136
}
137
137
138
138
/// Serializer that converts an `Event` to bytes using the CSV format.
139
139
#[ derive( Debug , Clone ) ]
140
140
pub struct CsvSerializer {
141
- config : CsvSerializerConfig
141
+ config : CsvSerializerConfig ,
142
142
}
143
143
144
144
impl CsvSerializer {
@@ -160,11 +160,9 @@ impl Encoder<Event> for CsvSerializer {
160
160
. double_quote ( self . config . csv . double_quote )
161
161
. escape ( self . config . csv . escape )
162
162
. quote_style ( self . config . csv . csv_quote_style ( ) )
163
-
164
- // TODO: this is wanted after https://github.com/BurntSushi/rust-csv/pull/332 got merged
165
- // .terminator(csv::Terminator::NONE)
166
-
167
163
. from_writer ( buffer. writer ( ) ) ;
164
+ // TODO: this is wanted after https://github.com/BurntSushi/rust-csv/pull/332 got merged
165
+ // .terminator(csv::Terminator::NONE)
168
166
169
167
for field in & self . config . csv . fields {
170
168
match log. get ( field) {
@@ -223,7 +221,6 @@ mod tests {
223
221
"bool" => Value :: from( true ) ,
224
222
"other" => Value :: from( "data" ) ,
225
223
} ) ) ;
226
-
227
224
let fields = vec ! [
228
225
ConfigTargetPath :: try_from( "foo" . to_string( ) ) . unwrap( ) ,
229
226
ConfigTargetPath :: try_from( "int" . to_string( ) ) . unwrap( ) ,
@@ -236,9 +233,10 @@ mod tests {
236
233
ConfigTargetPath :: try_from( "bool" . to_string( ) ) . unwrap( ) ,
237
234
] ;
238
235
239
- let mut opts = CsvSerializerOptions :: default ( ) ;
240
- opts. fields = fields;
241
-
236
+ let opts = CsvSerializerOptions {
237
+ fields,
238
+ ..Default :: default ( )
239
+ } ;
242
240
let config = CsvSerializerConfig :: new ( opts) ;
243
241
let mut serializer = config. build ( ) . unwrap ( ) ;
244
242
let mut bytes = BytesMut :: new ( ) ;
@@ -267,12 +265,14 @@ mod tests {
267
265
ConfigTargetPath :: try_from( "field3" . to_string( ) ) . unwrap( ) ,
268
266
ConfigTargetPath :: try_from( "field2" . to_string( ) ) . unwrap( ) ,
269
267
] ;
270
- let mut opts = CsvSerializerOptions :: default ( ) ;
271
- opts. fields = fields;
272
-
268
+ let opts = CsvSerializerOptions {
269
+ fields,
270
+ ..Default :: default ( )
271
+ } ;
273
272
let config = CsvSerializerConfig :: new ( opts) ;
274
273
let mut serializer = config. build ( ) . unwrap ( ) ;
275
274
let mut bytes = BytesMut :: new ( ) ;
275
+
276
276
serializer. encode ( event, & mut bytes) . unwrap ( ) ;
277
277
278
278
assert_eq ! (
@@ -289,15 +289,15 @@ mod tests {
289
289
// "field1" => Value::from("foo\"bar"),
290
290
"field1" => Value :: from( "foo bar" ) ,
291
291
} ) ) ;
292
- let fields = vec ! [
293
- ConfigTargetPath :: try_from( "field1" . to_string( ) ) . unwrap( ) ,
294
- ] ;
295
- let mut opts = CsvSerializerOptions :: default ( ) ;
296
- opts. fields = fields;
297
-
292
+ let fields = vec ! [ ConfigTargetPath :: try_from( "field1" . to_string( ) ) . unwrap( ) ] ;
293
+ let opts = CsvSerializerOptions {
294
+ fields,
295
+ ..Default :: default ( )
296
+ } ;
298
297
let config = CsvSerializerConfig :: new ( opts) ;
299
298
let mut serializer = config. build ( ) . unwrap ( ) ;
300
299
let mut bytes = BytesMut :: new ( ) ;
300
+
301
301
serializer. encode ( event, & mut bytes) . unwrap ( ) ;
302
302
303
303
assert_eq ! (
@@ -318,19 +318,18 @@ mod tests {
318
318
ConfigTargetPath :: try_from( "field1" . to_string( ) ) . unwrap( ) ,
319
319
ConfigTargetPath :: try_from( "field2" . to_string( ) ) . unwrap( ) ,
320
320
] ;
321
- let mut opts = CsvSerializerOptions :: default ( ) ;
322
- opts. fields = fields;
323
- opts. delimiter = b'\t' ;
324
-
321
+ let opts = CsvSerializerOptions {
322
+ fields,
323
+ delimiter : b'\t' ,
324
+ ..Default :: default ( )
325
+ } ;
325
326
let config = CsvSerializerConfig :: new ( opts) ;
326
327
let mut serializer = config. build ( ) . unwrap ( ) ;
327
328
let mut bytes = BytesMut :: new ( ) ;
329
+
328
330
serializer. encode ( event, & mut bytes) . unwrap ( ) ;
329
331
330
- assert_eq ! (
331
- bytes. freeze( ) ,
332
- b"value1\t value2" . as_slice( )
333
- ) ;
332
+ assert_eq ! ( bytes. freeze( ) , b"value1\t value2" . as_slice( ) ) ;
334
333
}
335
334
336
335
#[ test]
@@ -346,42 +345,38 @@ mod tests {
346
345
ConfigTargetPath :: try_from( "field1" . to_string( ) ) . unwrap( ) ,
347
346
ConfigTargetPath :: try_from( "field2" . to_string( ) ) . unwrap( ) ,
348
347
] ;
349
- let mut opts = CsvSerializerOptions :: default ( ) ;
350
- opts. fields = fields;
351
- opts. double_quote = false ;
352
- opts. escape = b'\\' ;
353
-
348
+ let opts = CsvSerializerOptions {
349
+ fields,
350
+ double_quote : false ,
351
+ escape : b'\\' ,
352
+ ..Default :: default ( )
353
+ } ;
354
354
let config = CsvSerializerConfig :: new ( opts) ;
355
355
let mut serializer = config. build ( ) . unwrap ( ) ;
356
356
let mut bytes = BytesMut :: new ( ) ;
357
+
357
358
serializer. encode ( event, & mut bytes) . unwrap ( ) ;
358
359
359
- assert_eq ! (
360
- bytes. freeze( ) ,
361
- b"\" foo\\ \" bar\" ,baz" . as_slice( )
362
- ) ;
360
+ assert_eq ! ( bytes. freeze( ) , b"\" foo\\ \" bar\" ,baz" . as_slice( ) ) ;
363
361
}
364
362
365
363
#[ test]
366
364
fn custom_quote_style ( ) {
367
365
let event = Event :: Log ( LogEvent :: from ( btreemap ! {
368
366
"field1" => Value :: from( "foo\" bar" ) ,
369
367
} ) ) ;
370
- let fields = vec ! [
371
- ConfigTargetPath :: try_from( "field1" . to_string( ) ) . unwrap( ) ,
372
- ] ;
373
- let mut opts = CsvSerializerOptions :: default ( ) ;
374
- opts. fields = fields;
375
- opts. quote_style = QuoteStyle :: Never ;
376
-
368
+ let fields = vec ! [ ConfigTargetPath :: try_from( "field1" . to_string( ) ) . unwrap( ) ] ;
369
+ let opts = CsvSerializerOptions {
370
+ fields,
371
+ quote_style : QuoteStyle :: Never ,
372
+ ..Default :: default ( )
373
+ } ;
377
374
let config = CsvSerializerConfig :: new ( opts) ;
378
375
let mut serializer = config. build ( ) . unwrap ( ) ;
379
376
let mut bytes = BytesMut :: new ( ) ;
377
+
380
378
serializer. encode ( event, & mut bytes) . unwrap ( ) ;
381
379
382
- assert_eq ! (
383
- bytes. freeze( ) ,
384
- b"foo\" bar" . as_slice( )
385
- ) ;
380
+ assert_eq ! ( bytes. freeze( ) , b"foo\" bar" . as_slice( ) ) ;
386
381
}
387
382
}
0 commit comments