@@ -31,6 +31,7 @@ use slog::{FnValue, PushFnValue};
3131use slog:: { OwnedKVList , KV , SendSyncRefUnwindSafeKV } ;
3232use slog:: Record ;
3333use std:: { io, result, fmt} ;
34+ use slog:: Key ;
3435
3536use std:: cell:: RefCell ;
3637use std:: fmt:: Write ;
@@ -70,7 +71,8 @@ impl<S: serde::Serializer> SerdeSerializer<S> {
7071
7172macro_rules! impl_m(
7273 ( $s: expr, $key: expr, $val: expr) => ( {
73- try!( $s. ser_map. serialize_entry( $key, $val)
74+ let k_s: & str = $key. as_ref( ) ;
75+ try!( $s. ser_map. serialize_entry( k_s, $val)
7476 . map_err( |_| io:: Error :: new( io:: ErrorKind :: Other , "serde serialization error" ) ) ) ;
7577 Ok ( ( ) )
7678 } ) ;
@@ -79,63 +81,63 @@ macro_rules! impl_m(
7981impl < S > slog:: Serializer for SerdeSerializer < S >
8082 where S : serde:: Serializer
8183{
82- fn emit_bool ( & mut self , key : & str , val : bool ) -> slog:: Result {
84+ fn emit_bool ( & mut self , key : Key , val : bool ) -> slog:: Result {
8385 impl_m ! ( self , key, & val)
8486 }
8587
86- fn emit_unit ( & mut self , key : & str ) -> slog:: Result {
88+ fn emit_unit ( & mut self , key : Key ) -> slog:: Result {
8789 impl_m ! ( self , key, & ( ) )
8890 }
8991
90- fn emit_char ( & mut self , key : & str , val : char ) -> slog:: Result {
92+ fn emit_char ( & mut self , key : Key , val : char ) -> slog:: Result {
9193 impl_m ! ( self , key, & val)
9294 }
9395
94- fn emit_none ( & mut self , key : & str ) -> slog:: Result {
96+ fn emit_none ( & mut self , key : Key ) -> slog:: Result {
9597 let val: Option < ( ) > = None ;
9698 impl_m ! ( self , key, & val)
9799 }
98- fn emit_u8 ( & mut self , key : & str , val : u8 ) -> slog:: Result {
100+ fn emit_u8 ( & mut self , key : Key , val : u8 ) -> slog:: Result {
99101 impl_m ! ( self , key, & val)
100102 }
101- fn emit_i8 ( & mut self , key : & str , val : i8 ) -> slog:: Result {
103+ fn emit_i8 ( & mut self , key : Key , val : i8 ) -> slog:: Result {
102104 impl_m ! ( self , key, & val)
103105 }
104- fn emit_u16 ( & mut self , key : & str , val : u16 ) -> slog:: Result {
106+ fn emit_u16 ( & mut self , key : Key , val : u16 ) -> slog:: Result {
105107 impl_m ! ( self , key, & val)
106108 }
107- fn emit_i16 ( & mut self , key : & str , val : i16 ) -> slog:: Result {
109+ fn emit_i16 ( & mut self , key : Key , val : i16 ) -> slog:: Result {
108110 impl_m ! ( self , key, & val)
109111 }
110- fn emit_usize ( & mut self , key : & str , val : usize ) -> slog:: Result {
112+ fn emit_usize ( & mut self , key : Key , val : usize ) -> slog:: Result {
111113 impl_m ! ( self , key, & val)
112114 }
113- fn emit_isize ( & mut self , key : & str , val : isize ) -> slog:: Result {
115+ fn emit_isize ( & mut self , key : Key , val : isize ) -> slog:: Result {
114116 impl_m ! ( self , key, & val)
115117 }
116- fn emit_u32 ( & mut self , key : & str , val : u32 ) -> slog:: Result {
118+ fn emit_u32 ( & mut self , key : Key , val : u32 ) -> slog:: Result {
117119 impl_m ! ( self , key, & val)
118120 }
119- fn emit_i32 ( & mut self , key : & str , val : i32 ) -> slog:: Result {
121+ fn emit_i32 ( & mut self , key : Key , val : i32 ) -> slog:: Result {
120122 impl_m ! ( self , key, & val)
121123 }
122- fn emit_f32 ( & mut self , key : & str , val : f32 ) -> slog:: Result {
124+ fn emit_f32 ( & mut self , key : Key , val : f32 ) -> slog:: Result {
123125 impl_m ! ( self , key, & val)
124126 }
125- fn emit_u64 ( & mut self , key : & str , val : u64 ) -> slog:: Result {
127+ fn emit_u64 ( & mut self , key : Key , val : u64 ) -> slog:: Result {
126128 impl_m ! ( self , key, & val)
127129 }
128- fn emit_i64 ( & mut self , key : & str , val : i64 ) -> slog:: Result {
130+ fn emit_i64 ( & mut self , key : Key , val : i64 ) -> slog:: Result {
129131 impl_m ! ( self , key, & val)
130132 }
131- fn emit_f64 ( & mut self , key : & str , val : f64 ) -> slog:: Result {
133+ fn emit_f64 ( & mut self , key : Key , val : f64 ) -> slog:: Result {
132134 impl_m ! ( self , key, & val)
133135 }
134- fn emit_str ( & mut self , key : & str , val : & str ) -> slog:: Result {
136+ fn emit_str ( & mut self , key : Key , val : & str ) -> slog:: Result {
135137 impl_m ! ( self , key, & val)
136138 }
137139 fn emit_arguments ( & mut self ,
138- key : & str ,
140+ key : Key ,
139141 val : & fmt:: Arguments )
140142 -> slog:: Result {
141143
@@ -153,7 +155,7 @@ impl<S> slog::Serializer for SerdeSerializer<S>
153155 }
154156
155157 #[ cfg( feature = "nested-values" ) ]
156- fn emit_serde ( & mut self , key : & str , value : & slog:: SerdeValue ) -> slog:: Result {
158+ fn emit_serde ( & mut self , key : Key , value : & slog:: SerdeValue ) -> slog:: Result {
157159 impl_m ! ( self , key, value. as_serde( ) )
158160 }
159161}
0 commit comments