@@ -16,12 +16,14 @@ fn print_fields(name: &Ident, fields: &Fields) -> (TokenStream, TokenStream, Tok
1616                let  name = field. ident . as_ref ( ) . unwrap ( ) ; 
1717                let  string_name = name. to_string ( ) ; 
1818                disps. push ( quote !  { 
19-                     if  __printed_anything && #name. should_render( )  { 
20-                         __p. word_space( "," ) ; 
19+                     if  #name. should_render( )  { 
20+                         if  __printed_anything { 
21+                             __p. word_space( "," ) ; 
22+                         } 
23+                         __p. word( #string_name) ; 
24+                         __p. word_space( ":" ) ; 
2125                        __printed_anything = true ; 
2226                    } 
23-                     __p. word( #string_name) ; 
24-                     __p. word_space( ":" ) ; 
2527                    #name. print_attribute( __p) ; 
2628                } ) ; 
2729                field_names. push ( name) ; 
@@ -35,6 +37,7 @@ fn print_fields(name: &Ident, fields: &Fields) -> (TokenStream, TokenStream, Tok
3537                        return ; 
3638                    } 
3739
40+                     __p. nbsp( ) ; 
3841                    __p. word( "{" ) ; 
3942                    #( #disps) * 
4043                    __p. word( "}" ) ; 
@@ -48,8 +51,10 @@ fn print_fields(name: &Ident, fields: &Fields) -> (TokenStream, TokenStream, Tok
4851            for  idx in  0 ..fields_unnamed. unnamed . len ( )  { 
4952                let  name = format_ident ! ( "f{idx}" ) ; 
5053                disps. push ( quote !  { 
51-                     if  __printed_anything && #name. should_render( )  { 
52-                         __p. word_space( "," ) ; 
54+                     if  #name. should_render( )  { 
55+                         if  __printed_anything { 
56+                             __p. word_space( "," ) ; 
57+                         } 
5358                        __printed_anything = true ; 
5459                    } 
5560                    #name. print_attribute( __p) ; 
@@ -66,9 +71,9 @@ fn print_fields(name: &Ident, fields: &Fields) -> (TokenStream, TokenStream, Tok
6671                        return ; 
6772                    } 
6873
69-                     __p. word ( "(" ) ; 
74+                     __p. popen ( ) ; 
7075                    #( #disps) * 
71-                     __p. word ( ")" ) ; 
76+                     __p. pclose ( ) ; 
7277                } , 
7378                quote !  {  true  } , 
7479            ) 
0 commit comments