@@ -273,7 +273,8 @@ impl InnerConnection {
273273 options. push ( ( "database" . to_owned ( ) , database) ) ;
274274 }
275275
276- try!( conn. stream . write_message ( & frontend:: StartupMessage { parameters : & options } ) ) ;
276+ let options = options. iter ( ) . map ( |& ( ref a, ref b) | ( & * * a, & * * b) ) ;
277+ try!( conn. stream . write_message2 ( |buf| frontend:: startup_message ( options, buf) ) ) ;
277278 try!( conn. stream . flush ( ) ) ;
278279
279280 try!( conn. handle_auth ( user) ) ;
@@ -369,15 +370,15 @@ impl InnerConnection {
369370 let pass = try!( user. password . ok_or_else ( || {
370371 ConnectError :: ConnectParams ( "a password was requested but not provided" . into ( ) )
371372 } ) ) ;
372- try!( self . stream . write_message ( & frontend:: PasswordMessage { password : & pass } ) ) ;
373+ try!( self . stream . write_message2 ( |buf| frontend:: password_message ( & pass, buf ) ) ) ;
373374 try!( self . stream . flush ( ) ) ;
374375 }
375376 backend:: Message :: AuthenticationMD5Password { salt } => {
376377 let pass = try!( user. password . ok_or_else ( || {
377378 ConnectError :: ConnectParams ( "a password was requested but not provided" . into ( ) )
378379 } ) ) ;
379380 let output = authentication:: md5_hash ( user. user . as_bytes ( ) , pass. as_bytes ( ) , salt) ;
380- try!( self . stream . write_message ( & frontend:: PasswordMessage { password : & output } ) ) ;
381+ try!( self . stream . write_message2 ( |buf| frontend:: password_message ( & output, buf ) ) ) ;
381382 try!( self . stream . flush ( ) ) ;
382383 }
383384 backend:: Message :: AuthenticationKerberosV5 |
@@ -405,11 +406,7 @@ impl InnerConnection {
405406 fn raw_prepare ( & mut self , stmt_name : & str , query : & str ) -> Result < ( Vec < Type > , Vec < Column > ) > {
406407 debug ! ( "preparing query with name `{}`: {}" , stmt_name, query) ;
407408
408- try!( self . stream . write_message ( & frontend:: Parse {
409- name : stmt_name,
410- query : query,
411- param_types : & [ ] ,
412- } ) ) ;
409+ try!( self . stream . write_message2 ( |buf| frontend:: parse ( stmt_name, query, None , buf) ) ) ;
413410 try!( self . stream . write_message2 ( |buf| frontend:: describe ( b'S' , stmt_name, buf) ) ) ;
414411 try!( self . stream . write_message ( & frontend:: Sync ) ) ;
415412 try!( self . stream . flush ( ) ) ;
@@ -800,7 +797,7 @@ impl InnerConnection {
800797 fn quick_query ( & mut self , query : & str ) -> Result < Vec < Vec < Option < String > > > > {
801798 check_desync ! ( self ) ;
802799 debug ! ( "executing query: {}" , query) ;
803- try!( self . stream . write_message ( & frontend:: Query { query : query } ) ) ;
800+ try!( self . stream . write_message2 ( |buf| frontend:: query ( query, buf ) ) ) ;
804801 try!( self . stream . flush ( ) ) ;
805802
806803 let mut result = vec ! [ ] ;
0 commit comments