1- use std:: old_io:: { IoResult , IoError , OtherIoError , ByRefReader } ;
1+ #![ no_implicit_prelude]
2+
3+ use std:: result:: Result :: { Ok , Err } ;
4+ use std:: option:: Option :: { self , None , Some } ;
5+ use std:: vec:: Vec ;
6+ use std:: string:: String ;
7+ use std:: str:: StrExt ;
8+ use std:: slice:: SliceExt ;
9+
10+ use std:: old_io:: { self , IoResult , IoError , OtherIoError , ByRefReader , Buffer } ;
211use std:: old_io:: util:: LimitReader ;
312use std:: mem;
13+ use byteorder:: { BigEndian , ReaderBytesExt , WriterBytesExt } ;
414
515use io:: Timeout ;
616use types:: Oid ;
@@ -137,7 +147,7 @@ trait WriteCStr {
137147 fn write_cstr ( & mut self , s : & str ) -> IoResult < ( ) > ;
138148}
139149
140- impl < W : Writer > WriteCStr for W {
150+ impl < W : old_io :: Writer > WriteCStr for W {
141151 fn write_cstr ( & mut self , s : & str ) -> IoResult < ( ) > {
142152 try!( self . write_all ( s. as_bytes ( ) ) ) ;
143153 self . write_u8 ( 0 )
@@ -149,7 +159,7 @@ pub trait WriteMessage {
149159 fn write_message ( & mut self , & FrontendMessage ) -> IoResult < ( ) > ;
150160}
151161
152- impl < W : Writer > WriteMessage for W {
162+ impl < W : old_io :: Writer > WriteMessage for W {
153163 fn write_message ( & mut self , message : & FrontendMessage ) -> IoResult < ( ) > {
154164 let mut buf = vec ! [ ] ;
155165 let mut ident = None ;
@@ -160,31 +170,31 @@ impl<W: Writer> WriteMessage for W {
160170 try!( buf. write_cstr ( portal) ) ;
161171 try!( buf. write_cstr ( statement) ) ;
162172
163- try!( buf. write_be_i16 ( formats. len ( ) as i16 ) ) ;
173+ try!( buf. write_i16 :: < BigEndian > ( formats. len ( ) as i16 ) ) ;
164174 for format in formats. iter ( ) {
165- try!( buf. write_be_i16 ( * format) ) ;
175+ try!( buf. write_i16 :: < BigEndian > ( * format) ) ;
166176 }
167177
168- try!( buf. write_be_i16 ( values. len ( ) as i16 ) ) ;
178+ try!( buf. write_i16 :: < BigEndian > ( values. len ( ) as i16 ) ) ;
169179 for value in values. iter ( ) {
170180 match * value {
171- None => try!( buf. write_be_i32 ( -1 ) ) ,
181+ None => try!( buf. write_i32 :: < BigEndian > ( -1 ) ) ,
172182 Some ( ref value) => {
173- try!( buf. write_be_i32 ( value. len ( ) as i32 ) ) ;
174- try!( buf . write_all ( & * * value) ) ;
183+ try!( buf. write_i32 :: < BigEndian > ( value. len ( ) as i32 ) ) ;
184+ try!( old_io :: Writer :: write_all ( & mut buf , & * * value) ) ;
175185 }
176186 }
177187 }
178188
179- try!( buf. write_be_i16 ( result_formats. len ( ) as i16 ) ) ;
189+ try!( buf. write_i16 :: < BigEndian > ( result_formats. len ( ) as i16 ) ) ;
180190 for format in result_formats. iter ( ) {
181- try!( buf. write_be_i16 ( * format) ) ;
191+ try!( buf. write_i16 :: < BigEndian > ( * format) ) ;
182192 }
183193 }
184194 CancelRequest { code, process_id, secret_key } => {
185- try!( buf. write_be_u32 ( code) ) ;
186- try!( buf. write_be_u32 ( process_id) ) ;
187- try!( buf. write_be_u32 ( secret_key) ) ;
195+ try!( buf. write_u32 :: < BigEndian > ( code) ) ;
196+ try!( buf. write_u32 :: < BigEndian > ( process_id) ) ;
197+ try!( buf. write_u32 :: < BigEndian > ( secret_key) ) ;
188198 }
189199 Close { variant, name } => {
190200 ident = Some ( b'C' ) ;
@@ -193,7 +203,7 @@ impl<W: Writer> WriteMessage for W {
193203 }
194204 CopyData { data } => {
195205 ident = Some ( b'd' ) ;
196- try!( buf . write_all ( data) ) ;
206+ try!( old_io :: Writer :: write_all ( & mut buf , data) ) ;
197207 }
198208 CopyDone => ident = Some ( b'c' ) ,
199209 CopyFail { message } => {
@@ -208,15 +218,15 @@ impl<W: Writer> WriteMessage for W {
208218 Execute { portal, max_rows } => {
209219 ident = Some ( b'E' ) ;
210220 try!( buf. write_cstr ( portal) ) ;
211- try!( buf. write_be_i32 ( max_rows) ) ;
221+ try!( buf. write_i32 :: < BigEndian > ( max_rows) ) ;
212222 }
213223 Parse { name, query, param_types } => {
214224 ident = Some ( b'P' ) ;
215225 try!( buf. write_cstr ( name) ) ;
216226 try!( buf. write_cstr ( query) ) ;
217- try!( buf. write_be_i16 ( param_types. len ( ) as i16 ) ) ;
227+ try!( buf. write_i16 :: < BigEndian > ( param_types. len ( ) as i16 ) ) ;
218228 for ty in param_types. iter ( ) {
219- try!( buf. write_be_u32 ( * ty) ) ;
229+ try!( buf. write_u32 :: < BigEndian > ( * ty) ) ;
220230 }
221231 }
222232 PasswordMessage { password } => {
@@ -228,14 +238,14 @@ impl<W: Writer> WriteMessage for W {
228238 try!( buf. write_cstr ( query) ) ;
229239 }
230240 StartupMessage { version, parameters } => {
231- try!( buf. write_be_u32 ( version) ) ;
232- for & ( ref k, ref v) in parameters. iter ( ) {
241+ try!( buf. write_u32 :: < BigEndian > ( version) ) ;
242+ for & ( ref k, ref v) in parameters {
233243 try!( buf. write_cstr ( & * * k) ) ;
234244 try!( buf. write_cstr ( & * * v) ) ;
235245 }
236246 try!( buf. write_u8 ( 0 ) ) ;
237247 }
238- SslRequest { code } => try!( buf. write_be_u32 ( code) ) ,
248+ SslRequest { code } => try!( buf. write_u32 :: < BigEndian > ( code) ) ,
239249 Sync => ident = Some ( b'S' ) ,
240250 Terminate => ident = Some ( b'X' ) ,
241251 }
@@ -245,7 +255,7 @@ impl<W: Writer> WriteMessage for W {
245255 }
246256
247257 // add size of length value
248- try!( self . write_be_i32 ( ( buf. len ( ) + mem:: size_of :: < i32 > ( ) ) as i32 ) ) ;
258+ try!( self . write_i32 :: < BigEndian > ( ( buf. len ( ) + mem:: size_of :: < i32 > ( ) ) as i32 ) ) ;
249259 try!( self . write_all ( & * buf) ) ;
250260
251261 Ok ( ( ) )
@@ -286,15 +296,15 @@ impl<R: Buffer+Timeout> ReadMessage for R {
286296 let ident = try!( ident) ;
287297
288298 // subtract size of length value
289- let len = try!( self . read_be_u32 ( ) ) as usize - mem:: size_of :: < i32 > ( ) ;
299+ let len = try!( self . read_u32 :: < BigEndian > ( ) ) as usize - mem:: size_of :: < i32 > ( ) ;
290300 let mut rdr = LimitReader :: new ( self . by_ref ( ) , len) ;
291301
292302 let ret = match ident {
293303 b'1' => ParseComplete ,
294304 b'2' => BindComplete ,
295305 b'3' => CloseComplete ,
296306 b'A' => NotificationResponse {
297- pid : try!( rdr. read_be_u32 ( ) ) ,
307+ pid : try!( rdr. read_u32 :: < BigEndian > ( ) ) ,
298308 channel : try!( rdr. read_cstr ( ) ) ,
299309 payload : try!( rdr. read_cstr ( ) )
300310 } ,
@@ -304,8 +314,8 @@ impl<R: Buffer+Timeout> ReadMessage for R {
304314 b'G' => {
305315 let format = try!( rdr. read_u8 ( ) ) ;
306316 let mut column_formats = vec ! [ ] ;
307- for _ in range ( 0 , try!( rdr. read_be_u16 ( ) ) ) {
308- column_formats. push ( try!( rdr. read_be_u16 ( ) ) ) ;
317+ for _ in 0 .. try!( rdr. read_u16 :: < BigEndian > ( ) ) {
318+ column_formats. push ( try!( rdr. read_u16 :: < BigEndian > ( ) ) ) ;
309319 }
310320 CopyInResponse {
311321 format : format,
@@ -314,8 +324,8 @@ impl<R: Buffer+Timeout> ReadMessage for R {
314324 }
315325 b'I' => EmptyQueryResponse ,
316326 b'K' => BackendKeyData {
317- process_id : try!( rdr. read_be_u32 ( ) ) ,
318- secret_key : try!( rdr. read_be_u32 ( ) )
327+ process_id : try!( rdr. read_u32 :: < BigEndian > ( ) ) ,
328+ secret_key : try!( rdr. read_u32 :: < BigEndian > ( ) )
319329 } ,
320330 b'n' => NoData ,
321331 b'N' => NoticeResponse { fields : try!( read_fields ( & mut rdr) ) } ,
@@ -363,7 +373,7 @@ fn read_data_row<R: Buffer>(buf: &mut R) -> IoResult<BackendMessage> {
363373 let len = try!( buf. read_be_u16 ( ) ) as usize ;
364374 let mut values = Vec :: with_capacity ( len) ;
365375
366- for _ in range ( 0 , len) {
376+ for _ in 0 .. len {
367377 let val = match try!( buf. read_be_i32 ( ) ) {
368378 -1 => None ,
369379 len => Some ( try!( buf. read_exact ( len as usize ) ) )
@@ -399,8 +409,8 @@ fn read_parameter_description<R: Buffer>(buf: &mut R) -> IoResult<BackendMessage
399409 let len = try!( buf. read_be_i16 ( ) ) as usize ;
400410 let mut types = Vec :: with_capacity ( len) ;
401411
402- for _ in range ( 0 , len) {
403- types. push ( try!( buf. read_be_u32 ( ) ) ) ;
412+ for _ in 0 .. len {
413+ types. push ( try!( buf. read_u32 :: < BigEndian > ( ) ) ) ;
404414 }
405415
406416 Ok ( ParameterDescription { types : types } )
@@ -410,12 +420,12 @@ fn read_row_description<R: Buffer>(buf: &mut R) -> IoResult<BackendMessage> {
410420 let len = try!( buf. read_be_i16 ( ) ) as usize ;
411421 let mut types = Vec :: with_capacity ( len) ;
412422
413- for _ in range ( 0 , len) {
423+ for _ in 0 .. len {
414424 types. push ( RowDescriptionEntry {
415425 name : try!( buf. read_cstr ( ) ) ,
416- table_oid : try!( buf. read_be_u32 ( ) ) ,
426+ table_oid : try!( buf. read_u32 :: < BigEndian > ( ) ) ,
417427 column_id : try!( buf. read_be_i16 ( ) ) ,
418- type_oid : try!( buf. read_be_u32 ( ) ) ,
428+ type_oid : try!( buf. read_u32 :: < BigEndian > ( ) ) ,
419429 type_size : try!( buf. read_be_i16 ( ) ) ,
420430 type_modifier : try!( buf. read_be_i32 ( ) ) ,
421431 format : try!( buf. read_be_i16 ( ) )
0 commit comments