@@ -350,11 +350,14 @@ impl Connection {
350
350
. and_then ( |( ) | frontend:: describe ( b'S' , name, & mut describe) )
351
351
. and_then ( |( ) | Ok ( frontend:: sync ( & mut sync) ) )
352
352
. into_future ( )
353
- . and_then ( move |( ) | self . 0 . send ( parse) )
354
- . and_then ( |s| s. send ( describe) )
355
- . and_then ( |s| s. send ( sync) )
356
- . and_then ( |s| s. flush ( ) )
357
- . and_then ( |s| s. read ( ) )
353
+ . and_then ( move |( ) | {
354
+ let it = Some ( parse) . into_iter ( )
355
+ . chain ( Some ( describe) )
356
+ . chain ( Some ( sync) )
357
+ . map ( Ok :: < _ , io:: Error > ) ;
358
+ self . 0 . send_all ( futures:: stream:: iter ( it) )
359
+ } )
360
+ . and_then ( |s| s. 0 . read ( ) )
358
361
. map_err ( Error :: Io )
359
362
. boxed ( ) // work around nonlinear trans blowup
360
363
. and_then ( |( m, s) | {
@@ -484,11 +487,14 @@ impl Connection {
484
487
s
485
488
} )
486
489
. into_future ( )
487
- . and_then ( |s| s. 0 . send ( bind) . map_err ( Error :: Io ) )
488
- . and_then ( |s| s. send ( execute) . map_err ( Error :: Io ) )
489
- . and_then ( |s| s. send ( sync) . map_err ( Error :: Io ) )
490
- . and_then ( |s| s. flush ( ) . map_err ( Error :: Io ) )
491
- . and_then ( |s| s. read ( ) . map_err ( Error :: Io ) )
490
+ . and_then ( |s| {
491
+ let it = Some ( bind) . into_iter ( )
492
+ . chain ( Some ( execute) )
493
+ . chain ( Some ( sync) )
494
+ . map ( Ok :: < _ , io:: Error > ) ;
495
+ s. 0 . send_all ( futures:: stream:: iter ( it) ) . map_err ( Error :: Io )
496
+ } )
497
+ . and_then ( |s| s. 0 . read ( ) . map_err ( Error :: Io ) )
492
498
. and_then ( |( m, s) | {
493
499
match m {
494
500
backend:: Message :: BindComplete => Either :: A ( Ok ( Connection ( s) ) . into_future ( ) ) ,
0 commit comments