11//! Traits dealing with Postgres data types
22use serialize:: json;
33use std:: collections:: HashMap ;
4- use std:: io:: { ByRefReader , MemWriter , BufReader } ;
4+ use std:: io:: { ByRefReader , BufReader } ;
55
66use self :: Type :: * ;
77use Result ;
@@ -178,7 +178,6 @@ macro_rules! to_range_impl(
178178 ( $t: ty) => (
179179 impl :: types:: RawToSql for :: types:: range:: Range <$t> {
180180 fn raw_to_sql<W : Writer >( & self , buf: & mut W ) -> Result <( ) > {
181- use std:: io:: MemWriter ;
182181 use types:: { RANGE_EMPTY , RANGE_LOWER_UNBOUNDED , RANGE_LOWER_INCLUSIVE ,
183182 RANGE_UPPER_UNBOUNDED , RANGE_UPPER_INCLUSIVE } ;
184183 use types:: range:: { BoundType , RangeBound } ;
@@ -207,19 +206,17 @@ macro_rules! to_range_impl(
207206
208207 match self . lower( ) {
209208 Some ( bound) => {
210- let mut inner_buf = MemWriter :: new ( ) ;
209+ let mut inner_buf = vec! [ ] ;
211210 try!( bound. value. raw_to_sql( & mut inner_buf) ) ;
212- let inner_buf = inner_buf. unwrap( ) ;
213211 try!( buf. write_be_i32( inner_buf. len( ) as i32 ) ) ;
214212 try!( buf. write( inner_buf[ ] ) ) ;
215213 }
216214 None => { }
217215 }
218216 match self . upper( ) {
219217 Some ( bound) => {
220- let mut inner_buf = MemWriter :: new ( ) ;
218+ let mut inner_buf = vec! [ ] ;
221219 try!( bound. value. raw_to_sql( & mut inner_buf) ) ;
222- let inner_buf = inner_buf. unwrap( ) ;
223220 try!( buf. write_be_i32( inner_buf. len( ) as i32 ) ) ;
224221 try!( buf. write( inner_buf[ ] ) ) ;
225222 }
@@ -268,13 +265,11 @@ macro_rules! to_raw_to_impl(
268265 $( #[ $a] ) *
269266 impl :: types:: ToSql for $t {
270267 fn to_sql( & self , ty: & Type ) -> Result <Option <Vec <u8 >>> {
271- use std:: io:: MemWriter ;
272-
273268 check_types!( $( $oid) |+, ty)
274269
275- let mut writer = MemWriter :: new ( ) ;
270+ let mut writer = vec! [ ] ;
276271 try!( self . raw_to_sql( & mut writer) ) ;
277- Ok ( Some ( writer. unwrap ( ) ) )
272+ Ok ( Some ( writer) )
278273 }
279274 }
280275
@@ -287,11 +282,10 @@ macro_rules! to_array_impl(
287282 $( #[ $a] ) *
288283 impl :: types:: ToSql for :: types:: array:: ArrayBase <Option <$t>> {
289284 fn to_sql( & self , ty: & Type ) -> Result <Option <Vec <u8 >>> {
290- use std:: io:: MemWriter ;
291285 use types:: array:: Array ;
292286
293287 check_types!( $( $oid) |+, ty)
294- let mut buf = MemWriter :: new ( ) ;
288+ let mut buf = vec! [ ] ;
295289
296290 try!( buf. write_be_i32( self . dimension_info( ) . len( ) as i32 ) ) ;
297291 try!( buf. write_be_i32( 1 ) ) ;
@@ -305,17 +299,16 @@ macro_rules! to_array_impl(
305299 for v in self . values( ) {
306300 match * v {
307301 Some ( ref val) => {
308- let mut inner_buf = MemWriter :: new ( ) ;
302+ let mut inner_buf = vec! [ ] ;
309303 try!( val. raw_to_sql( & mut inner_buf) ) ;
310- let inner_buf = inner_buf. unwrap( ) ;
311304 try!( buf. write_be_i32( inner_buf. len( ) as i32 ) ) ;
312305 try!( buf. write( inner_buf[ ] ) ) ;
313306 }
314307 None => try!( buf. write_be_i32( -1 ) )
315308 }
316309 }
317310
318- Ok ( Some ( buf. unwrap ( ) ) )
311+ Ok ( Some ( buf) )
319312 }
320313 }
321314
@@ -740,7 +733,7 @@ impl ToSql for HashMap<String, Option<String>> {
740733 _ => return Err ( PgWrongType ( ty. clone ( ) ) )
741734 }
742735
743- let mut buf = MemWriter :: new ( ) ;
736+ let mut buf = vec ! [ ] ;
744737
745738 try!( buf. write_be_i32 ( self . len ( ) as i32 ) ) ;
746739
@@ -757,7 +750,7 @@ impl ToSql for HashMap<String, Option<String>> {
757750 }
758751 }
759752
760- Ok ( Some ( buf. unwrap ( ) ) )
753+ Ok ( Some ( buf) )
761754 }
762755}
763756
0 commit comments