@@ -39,19 +39,11 @@ fn derive_unnamed_struct(
3939 fn json_write<W >( & self , writer: & mut W ) -> std:: io:: Result <( ) >
4040 where
4141 W : std:: io:: Write {
42- if let Err ( e) = writer. write_all( b"[" ) {
43- return Err ( e)
44- }
45- if let Err ( e) = self . 0 . json_write( writer) {
46- return Err ( e)
47- }
42+ writer. write_all( b"[" ) ?;
43+ self . 0 . json_write( writer) ?;
4844 #(
49- if let Err ( e) = writer. write_all( b"," ) {
50- return Err ( e)
51- } ;
52- if let Err ( e) = self . #keys. json_write( writer) {
53- return Err ( e)
54- } ;
45+ writer. write_all( b"," ) ?;
46+ self . #keys. json_write( writer) ?;
5547 ) *
5648 writer. write_all( b"]" )
5749 }
@@ -95,12 +87,8 @@ fn derive_named_struct(
9587 where
9688 W : std:: io:: Write {
9789 #(
98- if let Err ( e) = writer. write_all( #keys. as_bytes( ) ) {
99- return Err ( e) ;
100- }
101- if let Err ( e) = self . #values. json_write( writer) {
102- return Err ( e) ;
103- }
90+ writer. write_all( #keys. as_bytes( ) ) ?;
91+ self . #values. json_write( writer) ?;
10492 ) *
10593 writer. write_all( b"}" )
10694 }
@@ -172,12 +160,8 @@ fn derive_enum(ident: Ident, data: DataEnum, generics: Generics) -> TokenStream
172160 let unnamed1 = quote ! {
173161 #(
174162 #ident:: #unnamed1_idents( v) => {
175- if let Err ( e) = writer. write_all( #unnamed1_keys. as_bytes( ) ) {
176- return Err ( e) ;
177- } ;
178- if let Err ( e) = v. json_write( writer) {
179- return Err ( e) ;
180- } ;
163+ writer. write_all( #unnamed1_keys. as_bytes( ) ) ?;
164+ v. json_write( writer) ?;
181165 writer. write_all( b"}" )
182166 }
183167 ) , *
@@ -213,16 +197,10 @@ fn derive_enum(ident: Ident, data: DataEnum, generics: Generics) -> TokenStream
213197 let unnamed_vecs = unnamed_var_names. iter ( ) . map ( |vs| {
214198 let ( first, rest) = vs. split_first ( ) . expect ( "zero unnamed vars" ) ;
215199 quote ! {
216- if let Err ( e) = #first. json_write( writer) {
217- return Err ( e) ;
218- } ;
200+ #first. json_write( writer) ?;
219201 #(
220- if let Err ( e) = writer. write_all( b"," ) {
221- return Err ( e) ;
222- } ;
223- if let Err ( e) = #rest. json_write( writer) {
224- return Err ( e) ;
225- } ;
202+ writer. write_all( b"," ) ?;
203+ #rest. json_write( writer) ?;
226204 ) *
227205 }
228206 } ) ;
@@ -233,9 +211,7 @@ fn derive_enum(ident: Ident, data: DataEnum, generics: Generics) -> TokenStream
233211 #(
234212 #ident:: #unnamed_idents( #unnamed_vars) =>
235213 {
236- if let Err ( e) = writer. write_all( #unnamed_keys. as_bytes( ) ) {
237- return Err ( e) ;
238- } ;
214+ writer. write_all( #unnamed_keys. as_bytes( ) ) ?;
239215 #unnamed_vecs
240216 writer. write_all( b"]}" )
241217 }
@@ -271,19 +247,11 @@ fn derive_enum(ident: Ident, data: DataEnum, generics: Generics) -> TokenStream
271247
272248 named_bodies. push ( quote ! {
273249 #ident:: #named_ident{ #( #fields) , * } => {
274- if let Err ( e) = writer. write_all( #start. as_bytes( ) ) {
275- return Err ( e) ;
276- } ;
277- if let Err ( e) = #first. json_write( writer) {
278- return Err ( e) ;
279- } ;
250+ writer. write_all( #start. as_bytes( ) ) ?;
251+ #first. json_write( writer) ?;
280252 #(
281- if let Err ( e) = writer. write_all( #rest_keys. as_bytes( ) ) {
282- return Err ( e) ;
283- } ;
284- if let Err ( e) = #rest. json_write( writer) {
285- return Err ( e) ;
286- } ;
253+ writer. write_all( #rest_keys. as_bytes( ) ) ?;
254+ #rest. json_write( writer) ?;
287255
288256 ) *
289257 writer. write_all( b"}}" )
0 commit comments