@@ -206,7 +206,6 @@ use self::InternalStackElement::*;
206
206
use std;
207
207
use std:: collections:: { HashMap , TreeMap } ;
208
208
use std:: { char, f64, fmt, io, num, str} ;
209
- use std:: io:: MemWriter ;
210
209
use std:: mem:: { swap, transmute} ;
211
210
use std:: num:: { Float , FPNaN , FPInfinite , Int } ;
212
211
use std:: str:: { FromStr , ScalarValue } ;
@@ -412,14 +411,14 @@ impl<'a> Encoder<'a> {
412
411
/// Encode the specified struct into a json [u8]
413
412
pub fn buffer_encode < T : Encodable < Encoder < ' a > , io:: IoError > > ( object : & T ) -> Vec < u8 > {
414
413
//Serialize the object in a string using a writer
415
- let mut m = MemWriter :: new ( ) ;
414
+ let mut m = Vec :: new ( ) ;
416
415
// FIXME(14302) remove the transmute and unsafe block.
417
416
unsafe {
418
417
let mut encoder = Encoder :: new ( & mut m as & mut io:: Writer ) ;
419
- // MemWriter never Errs
418
+ // Vec<u8> never Errs
420
419
let _ = object. encode ( transmute ( & mut encoder) ) ;
421
420
}
422
- m. unwrap ( )
421
+ m
423
422
}
424
423
}
425
424
@@ -578,13 +577,13 @@ impl<'a> ::Encoder<io::IoError> for Encoder<'a> {
578
577
if idx != 0 { try!( write ! ( self . writer, "," ) ) }
579
578
// ref #12967, make sure to wrap a key in double quotes,
580
579
// in the event that its of a type that omits them (eg numbers)
581
- let mut buf = MemWriter :: new ( ) ;
580
+ let mut buf = Vec :: new ( ) ;
582
581
// FIXME(14302) remove the transmute and unsafe block.
583
582
unsafe {
584
583
let mut check_encoder = Encoder :: new ( & mut buf) ;
585
584
try!( f ( transmute ( & mut check_encoder) ) ) ;
586
585
}
587
- let out = str:: from_utf8 ( buf. get_ref ( ) ) . unwrap ( ) ;
586
+ let out = str:: from_utf8 ( buf[ ] ) . unwrap ( ) ;
588
587
let needs_wrapping = out. char_at ( 0 ) != '"' && out. char_at_reverse ( out. len ( ) ) != '"' ;
589
588
if needs_wrapping { try!( write ! ( self . writer, "\" " ) ) ; }
590
589
try!( f ( self ) ) ;
@@ -839,13 +838,13 @@ impl<'a> ::Encoder<io::IoError> for PrettyEncoder<'a> {
839
838
try!( spaces( self . writer, self . curr_indent) ) ;
840
839
// ref #12967, make sure to wrap a key in double quotes,
841
840
// in the event that its of a type that omits them (eg numbers)
842
- let mut buf = MemWriter :: new( ) ;
841
+ let mut buf = Vec :: new( ) ;
843
842
// FIXME(14302) remove the transmute and unsafe block.
844
843
unsafe {
845
844
let mut check_encoder = PrettyEncoder :: new( & mut buf) ;
846
845
try!( f( transmute( & mut check_encoder) ) ) ;
847
846
}
848
- let out = str:: from_utf8( buf. get_ref ( ) ) . unwrap( ) ;
847
+ let out = str:: from_utf8( buf[ ] ) . unwrap( ) ;
849
848
let needs_wrapping = out. char_at( 0 ) != '"' && out. char_at_reverse( out. len( ) ) != '"' ;
850
849
if needs_wrapping { try!( write ! ( self . writer, "\" " ) ) ; }
851
850
try!( f( self ) ) ;
@@ -892,9 +891,9 @@ impl Json {
892
891
893
892
/// Encodes a json value into a string
894
893
pub fn to_pretty_str ( & self ) -> string:: String {
895
- let mut s = MemWriter :: new ( ) ;
894
+ let mut s = Vec :: new ( ) ;
896
895
self . to_pretty_writer ( & mut s as & mut io:: Writer ) . unwrap ( ) ;
897
- string:: String :: from_utf8 ( s. unwrap ( ) ) . unwrap ( )
896
+ string:: String :: from_utf8 ( s) . unwrap ( )
898
897
}
899
898
900
899
/// If the Json value is an Object, returns the value associated with the provided key.
@@ -2659,12 +2658,11 @@ mod tests {
2659
2658
}
2660
2659
2661
2660
fn with_str_writer( f: |& mut io:: Writer |) -> string:: String {
2662
- use std:: io:: MemWriter ;
2663
2661
use std:: str ;
2664
2662
2665
- let mut m = MemWriter :: new( ) ;
2663
+ let mut m = Vec :: new( ) ;
2666
2664
f( & mut m as & mut io:: Writer ) ;
2667
- str :: from_utf8( m. unwrap ( ) . as_slice ( ) ) . unwrap( ) . to_string ( )
2665
+ string :: String :: from_utf8( m) . unwrap( )
2668
2666
}
2669
2667
2670
2668
#[ test]
@@ -3286,17 +3284,15 @@ mod tests {
3286
3284
fn test_encode_hashmap_with_numeric_key( ) {
3287
3285
use std:: str :: from_utf8;
3288
3286
use std:: io:: Writer ;
3289
- use std:: io:: MemWriter ;
3290
3287
use std:: collections:: HashMap ;
3291
3288
let mut hm: HashMap <uint, bool > = HashMap :: new( ) ;
3292
3289
hm. insert( 1 , true ) ;
3293
- let mut mem_buf = MemWriter :: new( ) ;
3290
+ let mut mem_buf = Vec :: new( ) ;
3294
3291
{
3295
3292
let mut encoder = Encoder :: new( & mut mem_buf as & mut io:: Writer ) ;
3296
3293
hm. encode( & mut encoder) . unwrap( ) ;
3297
3294
}
3298
- let bytes = mem_buf. unwrap( ) ;
3299
- let json_str = from_utf8( bytes. as_slice( ) ) . unwrap( ) ;
3295
+ let json_str = from_utf8( mem_buf[ ] ) . unwrap( ) ;
3300
3296
match from_str( json_str) {
3301
3297
Err ( _) => panic!( "Unable to parse json_str: {}" , json_str) ,
3302
3298
_ => { } // it parsed and we are good to go
@@ -3307,17 +3303,15 @@ mod tests {
3307
3303
fn test_prettyencode_hashmap_with_numeric_key( ) {
3308
3304
use std:: str :: from_utf8;
3309
3305
use std:: io:: Writer ;
3310
- use std:: io:: MemWriter ;
3311
3306
use std:: collections:: HashMap ;
3312
3307
let mut hm: HashMap <uint, bool > = HashMap :: new( ) ;
3313
3308
hm. insert( 1 , true ) ;
3314
- let mut mem_buf = MemWriter :: new( ) ;
3309
+ let mut mem_buf = Vec :: new( ) ;
3315
3310
{
3316
3311
let mut encoder = PrettyEncoder :: new( & mut mem_buf as & mut io:: Writer ) ;
3317
3312
hm. encode( & mut encoder) . unwrap( )
3318
3313
}
3319
- let bytes = mem_buf. unwrap( ) ;
3320
- let json_str = from_utf8( bytes. as_slice( ) ) . unwrap( ) ;
3314
+ let json_str = from_utf8( mem_buf[ ] ) . unwrap( ) ;
3321
3315
match from_str( json_str) {
3322
3316
Err ( _) => panic!( "Unable to parse json_str: {}" , json_str) ,
3323
3317
_ => { } // it parsed and we are good to go
@@ -3327,7 +3321,6 @@ mod tests {
3327
3321
#[ test]
3328
3322
fn test_prettyencoder_indent_level_param( ) {
3329
3323
use std:: str :: from_utf8;
3330
- use std:: io:: MemWriter ;
3331
3324
use std:: collections:: TreeMap ;
3332
3325
3333
3326
let mut tree = TreeMap :: new( ) ;
@@ -3354,15 +3347,14 @@ mod tests {
3354
3347
3355
3348
// Test up to 4 spaces of indents (more?)
3356
3349
for i in range( 0 , 4 u) {
3357
- let mut writer = MemWriter :: new( ) ;
3350
+ let mut writer = Vec :: new( ) ;
3358
3351
{
3359
3352
let ref mut encoder = PrettyEncoder :: new( & mut writer) ;
3360
3353
encoder. set_indent( i) ;
3361
3354
json. encode( encoder) . unwrap( ) ;
3362
3355
}
3363
3356
3364
- let bytes = writer. unwrap( ) ;
3365
- let printed = from_utf8( bytes. as_slice( ) ) . unwrap( ) ;
3357
+ let printed = from_utf8( writer[ ] ) . unwrap( ) ;
3366
3358
3367
3359
// Check for indents at each line
3368
3360
let lines: Vec <& str > = printed. lines( ) . collect( ) ;
0 commit comments