1
1
//! Traits dealing with Postgres data types
2
2
use serialize:: json;
3
3
use std:: collections:: HashMap ;
4
- use std:: io:: { ByRefReader , MemWriter , BufReader } ;
4
+ use std:: io:: { ByRefReader , BufReader } ;
5
5
6
6
use self :: Type :: * ;
7
7
use Result ;
@@ -178,7 +178,6 @@ macro_rules! to_range_impl(
178
178
( $t: ty) => (
179
179
impl :: types:: RawToSql for :: types:: range:: Range <$t> {
180
180
fn raw_to_sql<W : Writer >( & self , buf: & mut W ) -> Result <( ) > {
181
- use std:: io:: MemWriter ;
182
181
use types:: { RANGE_EMPTY , RANGE_LOWER_UNBOUNDED , RANGE_LOWER_INCLUSIVE ,
183
182
RANGE_UPPER_UNBOUNDED , RANGE_UPPER_INCLUSIVE } ;
184
183
use types:: range:: { BoundType , RangeBound } ;
@@ -207,19 +206,17 @@ macro_rules! to_range_impl(
207
206
208
207
match self . lower( ) {
209
208
Some ( bound) => {
210
- let mut inner_buf = MemWriter :: new ( ) ;
209
+ let mut inner_buf = vec! [ ] ;
211
210
try!( bound. value. raw_to_sql( & mut inner_buf) ) ;
212
- let inner_buf = inner_buf. unwrap( ) ;
213
211
try!( buf. write_be_i32( inner_buf. len( ) as i32 ) ) ;
214
212
try!( buf. write( inner_buf[ ] ) ) ;
215
213
}
216
214
None => { }
217
215
}
218
216
match self . upper( ) {
219
217
Some ( bound) => {
220
- let mut inner_buf = MemWriter :: new ( ) ;
218
+ let mut inner_buf = vec! [ ] ;
221
219
try!( bound. value. raw_to_sql( & mut inner_buf) ) ;
222
- let inner_buf = inner_buf. unwrap( ) ;
223
220
try!( buf. write_be_i32( inner_buf. len( ) as i32 ) ) ;
224
221
try!( buf. write( inner_buf[ ] ) ) ;
225
222
}
@@ -268,13 +265,11 @@ macro_rules! to_raw_to_impl(
268
265
$( #[ $a] ) *
269
266
impl :: types:: ToSql for $t {
270
267
fn to_sql( & self , ty: & Type ) -> Result <Option <Vec <u8 >>> {
271
- use std:: io:: MemWriter ;
272
-
273
268
check_types!( $( $oid) |+, ty)
274
269
275
- let mut writer = MemWriter :: new ( ) ;
270
+ let mut writer = vec! [ ] ;
276
271
try!( self . raw_to_sql( & mut writer) ) ;
277
- Ok ( Some ( writer. unwrap ( ) ) )
272
+ Ok ( Some ( writer) )
278
273
}
279
274
}
280
275
@@ -287,11 +282,10 @@ macro_rules! to_array_impl(
287
282
$( #[ $a] ) *
288
283
impl :: types:: ToSql for :: types:: array:: ArrayBase <Option <$t>> {
289
284
fn to_sql( & self , ty: & Type ) -> Result <Option <Vec <u8 >>> {
290
- use std:: io:: MemWriter ;
291
285
use types:: array:: Array ;
292
286
293
287
check_types!( $( $oid) |+, ty)
294
- let mut buf = MemWriter :: new ( ) ;
288
+ let mut buf = vec! [ ] ;
295
289
296
290
try!( buf. write_be_i32( self . dimension_info( ) . len( ) as i32 ) ) ;
297
291
try!( buf. write_be_i32( 1 ) ) ;
@@ -305,17 +299,16 @@ macro_rules! to_array_impl(
305
299
for v in self . values( ) {
306
300
match * v {
307
301
Some ( ref val) => {
308
- let mut inner_buf = MemWriter :: new ( ) ;
302
+ let mut inner_buf = vec! [ ] ;
309
303
try!( val. raw_to_sql( & mut inner_buf) ) ;
310
- let inner_buf = inner_buf. unwrap( ) ;
311
304
try!( buf. write_be_i32( inner_buf. len( ) as i32 ) ) ;
312
305
try!( buf. write( inner_buf[ ] ) ) ;
313
306
}
314
307
None => try!( buf. write_be_i32( -1 ) )
315
308
}
316
309
}
317
310
318
- Ok ( Some ( buf. unwrap ( ) ) )
311
+ Ok ( Some ( buf) )
319
312
}
320
313
}
321
314
@@ -740,7 +733,7 @@ impl ToSql for HashMap<String, Option<String>> {
740
733
_ => return Err ( PgWrongType ( ty. clone ( ) ) )
741
734
}
742
735
743
- let mut buf = MemWriter :: new ( ) ;
736
+ let mut buf = vec ! [ ] ;
744
737
745
738
try!( buf. write_be_i32 ( self . len ( ) as i32 ) ) ;
746
739
@@ -757,7 +750,7 @@ impl ToSql for HashMap<String, Option<String>> {
757
750
}
758
751
}
759
752
760
- Ok ( Some ( buf. unwrap ( ) ) )
753
+ Ok ( Some ( buf) )
761
754
}
762
755
}
763
756
0 commit comments