@@ -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