@@ -189,7 +189,7 @@ mod kv {
189189 value : log:: kv:: Value < ' kvs > ,
190190 ) -> Result < ( ) , log:: kv:: Error > {
191191 self . 0
192- . serialize_entry ( key. as_str ( ) , & value. to_string ( ) )
192+ . serialize_entry ( key. as_str ( ) , & value)
193193 . map_err ( |e| log:: kv:: Error :: boxed ( e. to_string ( ) ) ) ?;
194194 Ok ( ( ) )
195195 }
@@ -213,7 +213,7 @@ mod kv {
213213mod test {
214214 #[ cfg( feature = "chrono" ) ]
215215 use chrono:: { DateTime , Local } ;
216- use log:: Level ;
216+ use log:: { Level , Record } ;
217217
218218 use super :: * ;
219219 use crate :: encode:: writer:: simple:: SimpleWriter ;
@@ -232,6 +232,15 @@ mod test {
232232 let thread = "encode::json::test::default" ;
233233 log_mdc:: insert ( "foo" , "bar" ) ;
234234
235+ #[ cfg( feature = "log_kv" ) ]
236+ #[ derive( serde:: Serialize ) ]
237+ struct SerdeValue {
238+ id : u32 ,
239+ }
240+
241+ #[ cfg( feature = "log_kv" ) ]
242+ let serde_value = SerdeValue { id : 42 } ;
243+
235244 let encoder = JsonEncoder :: new ( ) ;
236245
237246 let mut record_builder = Record :: builder ( ) ;
@@ -243,19 +252,25 @@ mod test {
243252 . line ( Some ( line) ) ;
244253
245254 #[ cfg( feature = "log_kv" ) ]
246- record_builder. key_values ( & [ ( "log_foo" , "log_bar" ) ] ) ;
255+ let kvs = [
256+ ( "log_foo" , log:: kv:: Value :: from ( "log_bar" ) ) ,
257+ ( "serde_val" , log:: kv:: Value :: from_serde ( & serde_value) ) ,
258+ ] ;
259+ #[ cfg( feature = "log_kv" ) ]
260+ record_builder. key_values ( & kvs) ;
247261
248262 let mut buf = vec ! [ ] ;
249263 encoder
250264 . encode_inner (
251265 & mut SimpleWriter ( & mut buf) ,
252266 time,
253- & record_builder. args ( format_args ! ( "{}" , message ) ) . build ( ) ,
267+ & record_builder. args ( format_args ! ( "{message}" ) ) . build ( ) ,
254268 )
255269 . unwrap ( ) ;
256270
257271 #[ cfg( feature = "log_kv" ) ]
258- let expected_attributes = ",\" attributes\" :{\" log_foo\" :\" log_bar\" }" ;
272+ let expected_attributes =
273+ ",\" attributes\" :{\" log_foo\" :\" log_bar\" ,\" serde_val\" :{\" id\" :42}}" ;
259274 #[ cfg( not( feature = "log_kv" ) ) ]
260275 let expected_attributes = "" ;
261276
0 commit comments