@@ -58,17 +58,15 @@ where
5858}
5959
6060fn fmt_val ( f : & mut Formatter , opts : & PpOpts , level : usize , v : & Val ) -> fmt:: Result {
61+ let display = |s| FormatterFn ( move |f : & mut Formatter | fmt_str ( f, & escape ( s) ) ) ;
6162 match v {
6263 Val :: Null => span ( f, "null" , "null" ) ,
6364 Val :: Bool ( b) => span ( f, "boolean" , b) ,
6465 Val :: Int ( i) => span ( f, "number" , i) ,
6566 Val :: Float ( x) if x. is_finite ( ) => span_dbg ( f, "number" , x) ,
6667 Val :: Float ( _) => span ( f, "null" , "null" ) ,
6768 Val :: Num ( n) => span ( f, "number" , n) ,
68- Val :: Str ( s) => {
69- let display = FormatterFn ( |f : & mut Formatter | fmt_str ( f, & escape ( s) ) ) ;
70- span ( f, "string" , display)
71- }
69+ Val :: Str ( s) => span ( f, "string" , display ( s) ) ,
7270 Val :: Arr ( a) if a. is_empty ( ) => write ! ( f, "[]" ) ,
7371 Val :: Arr ( a) => {
7472 write ! ( f, "[" ) ?;
@@ -79,7 +77,7 @@ fn fmt_val(f: &mut Formatter, opts: &PpOpts, level: usize, v: &Val) -> fmt::Resu
7977 Val :: Obj ( o) => {
8078 write ! ( f, "{{" ) ?;
8179 fmt_seq ( f, opts, level, & * * o, |f, ( k, val) | {
82- span_dbg ( f, "key" , escape ( k) ) ?;
80+ span ( f, "key" , display ( k) ) ?;
8381 write ! ( f, ":" ) ?;
8482 if !opts. compact {
8583 write ! ( f, " " ) ?;
0 commit comments