@@ -11,7 +11,7 @@ impl<'a> PadAdapter<'a> {
1111 fmt. wrap_buf ( move |buf| {
1212 * slot = Some ( PadAdapter {
1313 buf,
14- on_newline : false ,
14+ on_newline : true ,
1515 } ) ;
1616 slot. as_mut ( ) . unwrap ( )
1717 } )
@@ -128,22 +128,21 @@ impl<'a, 'b: 'a> DebugStruct<'a, 'b> {
128128 #[ stable( feature = "debug_builders" , since = "1.2.0" ) ]
129129 pub fn field ( & mut self , name : & str , value : & dyn fmt:: Debug ) -> & mut DebugStruct < ' a , ' b > {
130130 self . result = self . result . and_then ( |_| {
131- let prefix = if self . has_fields {
132- ","
133- } else {
134- " {"
135- } ;
136-
137131 if self . is_pretty ( ) {
132+ if !self . has_fields {
133+ self . fmt . write_str ( " {\n " ) ?;
134+ }
138135 let mut slot = None ;
139136 let mut writer = PadAdapter :: wrap ( & mut self . fmt , & mut slot) ;
140- writer. write_str ( prefix) ?;
141- writer. write_str ( "\n " ) ?;
142137 writer. write_str ( name) ?;
143138 writer. write_str ( ": " ) ?;
144- value. fmt ( & mut writer)
139+ value. fmt ( & mut writer) ?;
140+ writer. write_str ( ",\n " )
145141 } else {
146- write ! ( self . fmt, "{} {}: " , prefix, name) ?;
142+ let prefix = if self . has_fields { ", " } else { " { " } ;
143+ self . fmt . write_str ( prefix) ?;
144+ self . fmt . write_str ( name) ?;
145+ self . fmt . write_str ( ": " ) ?;
147146 value. fmt ( self . fmt )
148147 }
149148 } ) ;
@@ -184,7 +183,7 @@ impl<'a, 'b: 'a> DebugStruct<'a, 'b> {
184183 if self . has_fields {
185184 self . result = self . result . and_then ( |_| {
186185 if self . is_pretty ( ) {
187- self . fmt . write_str ( "\n }" )
186+ self . fmt . write_str ( "}" )
188187 } else {
189188 self . fmt . write_str ( " }" )
190189 }
@@ -275,21 +274,17 @@ impl<'a, 'b: 'a> DebugTuple<'a, 'b> {
275274 #[ stable( feature = "debug_builders" , since = "1.2.0" ) ]
276275 pub fn field ( & mut self , value : & dyn fmt:: Debug ) -> & mut DebugTuple < ' a , ' b > {
277276 self . result = self . result . and_then ( |_| {
278- let ( prefix, space) = if self . fields > 0 {
279- ( "," , " " )
280- } else {
281- ( "(" , "" )
282- } ;
283-
284277 if self . is_pretty ( ) {
278+ if self . fields == 0 {
279+ self . fmt . write_str ( "(\n " ) ?;
280+ }
285281 let mut slot = None ;
286282 let mut writer = PadAdapter :: wrap ( & mut self . fmt , & mut slot) ;
287- writer. write_str ( prefix) ?;
288- writer. write_str ( "\n " ) ?;
289- value. fmt ( & mut writer)
283+ value. fmt ( & mut writer) ?;
284+ writer. write_str ( ",\n " )
290285 } else {
286+ let prefix = if self . fields == 0 { "(" } else { ", " } ;
291287 self . fmt . write_str ( prefix) ?;
292- self . fmt . write_str ( space) ?;
293288 value. fmt ( self . fmt )
294289 }
295290 } ) ;
@@ -326,10 +321,7 @@ impl<'a, 'b: 'a> DebugTuple<'a, 'b> {
326321 pub fn finish ( & mut self ) -> fmt:: Result {
327322 if self . fields > 0 {
328323 self . result = self . result . and_then ( |_| {
329- if self . is_pretty ( ) {
330- self . fmt . write_str ( "\n " ) ?;
331- }
332- if self . fields == 1 && self . empty_name {
324+ if self . fields == 1 && self . empty_name && !self . is_pretty ( ) {
333325 self . fmt . write_str ( "," ) ?;
334326 }
335327 self . fmt . write_str ( ")" )
@@ -353,14 +345,13 @@ impl<'a, 'b: 'a> DebugInner<'a, 'b> {
353345 fn entry ( & mut self , entry : & dyn fmt:: Debug ) {
354346 self . result = self . result . and_then ( |_| {
355347 if self . is_pretty ( ) {
348+ if !self . has_fields {
349+ self . fmt . write_str ( "\n " ) ?;
350+ }
356351 let mut slot = None ;
357352 let mut writer = PadAdapter :: wrap ( & mut self . fmt , & mut slot) ;
358- writer. write_str ( if self . has_fields {
359- ",\n "
360- } else {
361- "\n "
362- } ) ?;
363- entry. fmt ( & mut writer)
353+ entry. fmt ( & mut writer) ?;
354+ writer. write_str ( ",\n " )
364355 } else {
365356 if self . has_fields {
366357 self . fmt . write_str ( ", " ) ?
@@ -372,15 +363,6 @@ impl<'a, 'b: 'a> DebugInner<'a, 'b> {
372363 self . has_fields = true ;
373364 }
374365
375- pub fn finish ( & mut self ) {
376- let prefix = if self . is_pretty ( ) && self . has_fields {
377- "\n "
378- } else {
379- ""
380- } ;
381- self . result = self . result . and_then ( |_| self . fmt . write_str ( prefix) ) ;
382- }
383-
384366 fn is_pretty ( & self ) -> bool {
385367 self . fmt . alternate ( )
386368 }
@@ -421,7 +403,7 @@ pub struct DebugSet<'a, 'b: 'a> {
421403}
422404
423405pub fn debug_set_new < ' a , ' b > ( fmt : & ' a mut fmt:: Formatter < ' b > ) -> DebugSet < ' a , ' b > {
424- let result = write ! ( fmt, "{ {") ;
406+ let result = fmt. write_str ( " {") ;
425407 DebugSet {
426408 inner : DebugInner {
427409 fmt,
@@ -519,7 +501,6 @@ impl<'a, 'b: 'a> DebugSet<'a, 'b> {
519501 /// ```
520502 #[ stable( feature = "debug_builders" , since = "1.2.0" ) ]
521503 pub fn finish ( & mut self ) -> fmt:: Result {
522- self . inner . finish ( ) ;
523504 self . inner . result . and_then ( |_| self . inner . fmt . write_str ( "}" ) )
524505 }
525506}
@@ -559,7 +540,7 @@ pub struct DebugList<'a, 'b: 'a> {
559540}
560541
561542pub fn debug_list_new < ' a , ' b > ( fmt : & ' a mut fmt:: Formatter < ' b > ) -> DebugList < ' a , ' b > {
562- let result = write ! ( fmt, "[" ) ;
543+ let result = fmt. write_str ( "[" ) ;
563544 DebugList {
564545 inner : DebugInner {
565546 fmt,
@@ -657,7 +638,6 @@ impl<'a, 'b: 'a> DebugList<'a, 'b> {
657638 /// ```
658639 #[ stable( feature = "debug_builders" , since = "1.2.0" ) ]
659640 pub fn finish ( & mut self ) -> fmt:: Result {
660- self . inner . finish ( ) ;
661641 self . inner . result . and_then ( |_| self . inner . fmt . write_str ( "]" ) )
662642 }
663643}
@@ -699,7 +679,7 @@ pub struct DebugMap<'a, 'b: 'a> {
699679}
700680
701681pub fn debug_map_new < ' a , ' b > ( fmt : & ' a mut fmt:: Formatter < ' b > ) -> DebugMap < ' a , ' b > {
702- let result = write ! ( fmt, "{ {") ;
682+ let result = fmt. write_str ( " {") ;
703683 DebugMap {
704684 fmt,
705685 result,
@@ -734,16 +714,15 @@ impl<'a, 'b: 'a> DebugMap<'a, 'b> {
734714 pub fn entry ( & mut self , key : & dyn fmt:: Debug , value : & dyn fmt:: Debug ) -> & mut DebugMap < ' a , ' b > {
735715 self . result = self . result . and_then ( |_| {
736716 if self . is_pretty ( ) {
717+ if !self . has_fields {
718+ self . fmt . write_str ( "\n " ) ?;
719+ }
737720 let mut slot = None ;
738721 let mut writer = PadAdapter :: wrap ( & mut self . fmt , & mut slot) ;
739- writer. write_str ( if self . has_fields {
740- ",\n "
741- } else {
742- "\n "
743- } ) ?;
744722 key. fmt ( & mut writer) ?;
745723 writer. write_str ( ": " ) ?;
746- value. fmt ( & mut writer)
724+ value. fmt ( & mut writer) ?;
725+ writer. write_str ( ",\n " )
747726 } else {
748727 if self . has_fields {
749728 self . fmt . write_str ( ", " ) ?
@@ -818,12 +797,7 @@ impl<'a, 'b: 'a> DebugMap<'a, 'b> {
818797 /// ```
819798 #[ stable( feature = "debug_builders" , since = "1.2.0" ) ]
820799 pub fn finish ( & mut self ) -> fmt:: Result {
821- let prefix = if self . is_pretty ( ) && self . has_fields {
822- "\n "
823- } else {
824- ""
825- } ;
826- self . result . and_then ( |_| write ! ( self . fmt, "{}}}" , prefix) )
800+ self . result . and_then ( |_| self . fmt . write_str ( "}" ) )
827801 }
828802
829803 fn is_pretty ( & self ) -> bool {
0 commit comments