@@ -11,6 +11,7 @@ use std::sync::{Arc, Weak};
11
11
use tokio_io:: { AsyncRead , AsyncWrite } ;
12
12
13
13
use crate :: proto:: bind:: BindFuture ;
14
+ use crate :: proto:: codec:: FrontendMessage ;
14
15
use crate :: proto:: connection:: { Request , RequestMessages } ;
15
16
use crate :: proto:: copy_in:: { CopyInFuture , CopyInReceiver , CopyMessage } ;
16
17
use crate :: proto:: copy_out:: CopyOutStream ;
@@ -185,8 +186,12 @@ impl Client {
185
186
if let Ok ( ref mut buf) = buf {
186
187
frontend:: sync ( buf) ;
187
188
}
188
- let pending =
189
- PendingRequest ( buf. map ( |m| ( RequestMessages :: Single ( m) , self . 0 . idle . guard ( ) ) ) ) ;
189
+ let pending = PendingRequest ( buf. map ( |m| {
190
+ (
191
+ RequestMessages :: Single ( FrontendMessage :: Raw ( m) ) ,
192
+ self . 0 . idle . guard ( ) ,
193
+ )
194
+ } ) ) ;
190
195
BindFuture :: new ( self . clone ( ) , pending, name, statement. clone ( ) )
191
196
}
192
197
@@ -208,12 +213,12 @@ impl Client {
208
213
where
209
214
S : Stream ,
210
215
S :: Item : IntoBuf ,
211
- <S :: Item as IntoBuf >:: Buf : Send ,
216
+ <S :: Item as IntoBuf >:: Buf : ' static + Send ,
212
217
S :: Error : Into < Box < dyn StdError + Sync + Send > > ,
213
218
{
214
219
let ( mut sender, receiver) = mpsc:: channel ( 1 ) ;
215
220
let pending = PendingRequest ( self . excecute_message ( statement, params) . map ( |data| {
216
- match sender. start_send ( CopyMessage { data , done : false } ) {
221
+ match sender. start_send ( CopyMessage :: Message ( data ) ) {
217
222
Ok ( AsyncSink :: Ready ) => { }
218
223
_ => unreachable ! ( "channel should have capacity" ) ,
219
224
}
@@ -278,7 +283,7 @@ impl Client {
278
283
frontend:: sync ( & mut buf) ;
279
284
let ( sender, _) = mpsc:: channel ( 0 ) ;
280
285
let _ = self . 0 . sender . unbounded_send ( Request {
281
- messages : RequestMessages :: Single ( buf) ,
286
+ messages : RequestMessages :: Single ( FrontendMessage :: Raw ( buf) ) ,
282
287
sender,
283
288
idle : None ,
284
289
} ) ;
@@ -326,20 +331,23 @@ impl Client {
326
331
& self ,
327
332
statement : & Statement ,
328
333
params : & [ & dyn ToSql ] ,
329
- ) -> Result < Vec < u8 > , Error > {
334
+ ) -> Result < FrontendMessage , Error > {
330
335
let mut buf = self . bind_message ( statement, "" , params) ?;
331
336
frontend:: execute ( "" , 0 , & mut buf) . map_err ( Error :: parse) ?;
332
337
frontend:: sync ( & mut buf) ;
333
- Ok ( buf)
338
+ Ok ( FrontendMessage :: Raw ( buf) )
334
339
}
335
340
336
341
fn pending < F > ( & self , messages : F ) -> PendingRequest
337
342
where
338
343
F : FnOnce ( & mut Vec < u8 > ) -> Result < ( ) , Error > ,
339
344
{
340
345
let mut buf = vec ! [ ] ;
341
- PendingRequest (
342
- messages ( & mut buf) . map ( |( ) | ( RequestMessages :: Single ( buf) , self . 0 . idle . guard ( ) ) ) ,
343
- )
346
+ PendingRequest ( messages ( & mut buf) . map ( |( ) | {
347
+ (
348
+ RequestMessages :: Single ( FrontendMessage :: Raw ( buf) ) ,
349
+ self . 0 . idle . guard ( ) ,
350
+ )
351
+ } ) )
344
352
}
345
353
}
0 commit comments