@@ -3,6 +3,7 @@ use crate::cancel_query;
33use crate :: codec:: BackendMessages ;
44use crate :: config:: { Host , SslMode } ;
55use crate :: connection:: { Request , RequestMessages } ;
6+ use crate :: copy_out:: CopyStream ;
67use crate :: query:: RowStream ;
78use crate :: slice_iter;
89#[ cfg( feature = "runtime" ) ]
@@ -16,10 +17,10 @@ use crate::{cancel_query_raw, copy_in, copy_out, query, Transaction};
1617use crate :: { prepare, SimpleQueryMessage } ;
1718use crate :: { simple_query, Row } ;
1819use crate :: { Error , Statement } ;
19- use bytes:: { Bytes , IntoBuf } ;
20+ use bytes:: IntoBuf ;
2021use fallible_iterator:: FallibleIterator ;
2122use futures:: channel:: mpsc;
22- use futures:: { future, Stream , TryFutureExt , TryStream , TryStreamExt } ;
23+ use futures:: { future, Stream , TryStream , TryStreamExt } ;
2324use futures:: { ready, StreamExt } ;
2425use parking_lot:: Mutex ;
2526use postgres_protocol:: message:: backend:: Message ;
@@ -293,20 +294,17 @@ impl Client {
293294 /// # Panics
294295 ///
295296 /// Panics if the number of parameters provided does not match the number expected.
296- pub fn copy_out < ' a , T > (
297- & ' a self ,
298- statement : & ' a T ,
299- params : & ' a [ & ( dyn ToSql + Sync ) ] ,
300- ) -> impl Stream < Item = Result < Bytes , Error > > + ' a
297+ pub async fn copy_out < T > (
298+ & self ,
299+ statement : & T ,
300+ params : & [ & ( dyn ToSql + Sync ) ] ,
301+ ) -> Result < CopyStream , Error >
301302 where
302303 T : ?Sized + ToStatement ,
303304 {
304- let f = async move {
305- let statement = statement. __convert ( ) . into_statement ( self ) . await ?;
306- let params = slice_iter ( params) ;
307- Ok ( copy_out:: copy_out ( self . inner ( ) , statement, params) )
308- } ;
309- f. try_flatten_stream ( )
305+ let statement = statement. __convert ( ) . into_statement ( self ) . await ?;
306+ let params = slice_iter ( params) ;
307+ copy_out:: copy_out ( self . inner ( ) , statement, params) . await
310308 }
311309
312310 /// Executes a sequence of SQL statements using the simple query protocol, returning the resulting rows.
0 commit comments