@@ -115,14 +115,14 @@ impl NeonBuilder {
115
115
let ( deferred, promise) = cx. promise ( ) ;
116
116
117
117
rt. spawn ( async move {
118
- let result = async {
119
- let mut builder = builder . lock ( ) . await ;
120
- let mut resource_stream = resource. into_read_stream ( ) ? ;
118
+ let mut builder = builder . lock ( ) . await ;
119
+
120
+ let result = resource. into_read_stream ( ) . and_then ( | mut resource_stream| {
121
121
builder. add_resource ( & uri, & mut resource_stream) ?;
122
122
Ok ( ( ) )
123
- }
124
- . await ;
125
- deferred. settle_with ( & channel, move |mut cx| match result {
123
+ } ) ;
124
+
125
+ deferred. settle_with ( & channel, |mut cx| match result {
126
126
Ok ( _) => Ok ( cx. undefined ( ) ) ,
127
127
Err ( err) => as_js_error ( & mut cx, err) . and_then ( |err| cx. throw ( err) ) ,
128
128
} ) ;
@@ -145,23 +145,21 @@ impl NeonBuilder {
145
145
let ( deferred, promise) = cx. promise ( ) ;
146
146
147
147
rt. spawn ( async move {
148
- let result = async {
149
- let mut builder = builder. lock ( ) . await ;
150
- let format = ingredient
151
- . mime_type ( )
152
- . ok_or_else ( || {
153
- Error :: Signing ( "Ingredient asset must have a mime type" . to_string ( ) )
154
- } ) ?
155
- . to_owned ( ) ;
156
- let mut ingredient_stream = ingredient. into_read_stream ( ) ?;
157
- builder. add_ingredient_from_stream (
158
- & ingredient_json,
159
- & format,
160
- & mut ingredient_stream,
161
- ) ?;
162
- Ok ( ( ) )
163
- }
164
- . await ;
148
+ let mut builder = builder. lock ( ) . await ;
149
+
150
+ let result = ingredient
151
+ . mime_type ( )
152
+ . ok_or_else ( || Error :: Signing ( "Ingredient asset must have a mime type" . to_string ( ) ) )
153
+ . and_then ( |format| {
154
+ let mut ingredient_stream = ingredient. into_read_stream ( ) ?;
155
+ builder. add_ingredient_from_stream (
156
+ & ingredient_json,
157
+ & format,
158
+ & mut ingredient_stream,
159
+ ) ?;
160
+ Ok ( ( ) )
161
+ } ) ;
162
+
165
163
deferred. settle_with ( & channel, move |mut cx| match result {
166
164
Ok ( _) => Ok ( cx. undefined ( ) ) ,
167
165
Err ( err) => as_js_error ( & mut cx, err) . and_then ( |err| cx. throw ( err) ) ,
@@ -183,13 +181,12 @@ impl NeonBuilder {
183
181
let ( deferred, promise) = cx. promise ( ) ;
184
182
185
183
rt. spawn ( async move {
186
- let result = async {
187
- let mut builder = builder. lock ( ) . await ;
188
- let dest_stream = dest. write_stream ( ) ?;
184
+ let mut builder = builder. lock ( ) . await ;
185
+ let result = dest. write_stream ( ) . and_then ( |dest_stream| {
189
186
builder. to_archive ( dest_stream) ?;
190
187
Ok ( ( ) )
191
- }
192
- . await ;
188
+ } ) ;
189
+
193
190
deferred. settle_with ( & channel, move |mut cx| match result {
194
191
Ok ( _) => Ok ( cx. undefined ( ) ) ,
195
192
Err ( err) => as_js_error ( & mut cx, err) . and_then ( |err| cx. throw ( err) ) ,
@@ -208,12 +205,11 @@ impl NeonBuilder {
208
205
let ( deferred, promise) = cx. promise ( ) ;
209
206
210
207
rt. spawn ( async move {
211
- let result = async {
212
- let source_stream = source. into_read_stream ( ) ?;
208
+ let result = source. into_read_stream ( ) . and_then ( |source_stream| {
213
209
let builder = Builder :: from_archive ( source_stream) ?;
214
210
Ok ( builder)
215
- }
216
- . await ;
211
+ } ) ;
212
+
217
213
deferred. settle_with ( & channel, move |mut cx| match result {
218
214
Ok ( builder) => Ok ( cx. boxed ( Self {
219
215
builder : Arc :: new ( Mutex :: new ( builder) ) ,
@@ -300,14 +296,12 @@ impl NeonBuilder {
300
296
let builder = Arc :: clone ( & this. builder ) ;
301
297
let ( deferred, promise) = cx. promise ( ) ;
302
298
rt. spawn ( async move {
303
- let result = async {
304
- let mut builder = builder. lock ( ) . await ;
305
- let sign_result = builder
306
- . sign_async ( & signer, & format, & mut input_stream, & mut output_stream)
307
- . await ?;
308
- Ok :: < _ , Error > ( ( sign_result, output_stream) )
309
- }
310
- . await ;
299
+ let result = builder
300
+ . lock ( )
301
+ . await
302
+ . sign_async ( & signer, & format, & mut input_stream, & mut output_stream)
303
+ . await
304
+ . map ( |sign_result| ( sign_result, output_stream) ) ;
311
305
312
306
deferred. settle_with ( & channel, move |mut cx| match result {
313
307
Ok ( ( signed_bytes, mut output_stream) ) => {
@@ -321,9 +315,7 @@ impl NeonBuilder {
321
315
}
322
316
match output_stream. read_to_end ( & mut buffer) {
323
317
Ok ( _) => ( ) ,
324
- Err ( e) => {
325
- return cx. throw_error ( format ! ( "Failed to read stream: {e}" ) )
326
- }
318
+ Err ( e) => return cx. throw_error ( format ! ( "Failed to read stream: {e}" ) ) ,
327
319
}
328
320
Some ( buffer)
329
321
} else {
@@ -375,14 +367,12 @@ impl NeonBuilder {
375
367
let builder = Arc :: clone ( & this. builder ) ;
376
368
let ( deferred, promise) = cx. promise ( ) ;
377
369
rt. spawn ( async move {
378
- let result = async {
379
- let mut builder = builder. lock ( ) . await ;
380
- let sign_result = builder
381
- . sign_async ( & signer, & format, & mut input_stream, & mut output_stream)
382
- . await ?;
383
- Ok :: < _ , Error > ( ( sign_result, output_stream) )
384
- }
385
- . await ;
370
+ let result = builder
371
+ . lock ( )
372
+ . await
373
+ . sign_async ( & signer, & format, & mut input_stream, & mut output_stream)
374
+ . await
375
+ . map ( |sign_result| ( sign_result, output_stream) ) ;
386
376
387
377
deferred. settle_with ( & channel, move |mut cx| match result {
388
378
Ok ( ( signed_bytes, mut output_stream) ) => {
@@ -396,9 +386,7 @@ impl NeonBuilder {
396
386
}
397
387
match output_stream. read_to_end ( & mut buffer) {
398
388
Ok ( _) => ( ) ,
399
- Err ( e) => {
400
- return cx. throw_error ( format ! ( "Failed to read stream: {e}" ) )
401
- }
389
+ Err ( e) => return cx. throw_error ( format ! ( "Failed to read stream: {e}" ) ) ,
402
390
}
403
391
Some ( buffer)
404
392
} else {
@@ -451,14 +439,12 @@ impl NeonBuilder {
451
439
let ( deferred, promise) = cx. promise ( ) ;
452
440
453
441
rt. spawn ( async move {
454
- let result = async {
455
- let mut builder = builder. lock ( ) . await ;
456
- let sign_result = builder
457
- . sign_async ( & signer, & format, & mut input_stream, & mut output_stream)
458
- . await ?;
459
- Ok :: < _ , Error > ( ( sign_result, output_stream) )
460
- }
461
- . await ;
442
+ let result = builder
443
+ . lock ( )
444
+ . await
445
+ . sign_async ( & signer, & format, & mut input_stream, & mut output_stream)
446
+ . await
447
+ . map ( |sign_result| ( sign_result, output_stream) ) ;
462
448
463
449
deferred. settle_with ( & channel, move |mut cx| match result {
464
450
Ok ( ( signed_bytes, mut output_stream) ) => {
@@ -472,9 +458,7 @@ impl NeonBuilder {
472
458
}
473
459
match output_stream. read_to_end ( & mut buffer) {
474
460
Ok ( _) => ( ) ,
475
- Err ( e) => {
476
- return cx. throw_error ( format ! ( "Failed to read stream: {e}" ) )
477
- }
461
+ Err ( e) => return cx. throw_error ( format ! ( "Failed to read stream: {e}" ) ) ,
478
462
}
479
463
Some ( buffer)
480
464
} else {
0 commit comments