@@ -206,7 +206,6 @@ use self::InternalStackElement::*;
206206use std;
207207use std:: collections:: { HashMap , TreeMap } ;
208208use std:: { char, f64, fmt, io, num, str} ;
209- use std:: io:: MemWriter ;
210209use std:: mem:: { swap, transmute} ;
211210use std:: num:: { Float , FPNaN , FPInfinite , Int } ;
212211use std:: str:: { FromStr , ScalarValue } ;
@@ -412,14 +411,14 @@ impl<'a> Encoder<'a> {
412411 /// Encode the specified struct into a json [u8]
413412 pub fn buffer_encode < T : Encodable < Encoder < ' a > , io:: IoError > > ( object : & T ) -> Vec < u8 > {
414413 //Serialize the object in a string using a writer
415- let mut m = MemWriter :: new ( ) ;
414+ let mut m = Vec :: new ( ) ;
416415 // FIXME(14302) remove the transmute and unsafe block.
417416 unsafe {
418417 let mut encoder = Encoder :: new ( & mut m as & mut io:: Writer ) ;
419- // MemWriter never Errs
418+ // Vec<u8> never Errs
420419 let _ = object. encode ( transmute ( & mut encoder) ) ;
421420 }
422- m. unwrap ( )
421+ m
423422 }
424423}
425424
@@ -578,13 +577,13 @@ impl<'a> ::Encoder<io::IoError> for Encoder<'a> {
578577 if idx != 0 { try!( write ! ( self . writer, "," ) ) }
579578 // ref #12967, make sure to wrap a key in double quotes,
580579 // 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 ( ) ;
582581 // FIXME(14302) remove the transmute and unsafe block.
583582 unsafe {
584583 let mut check_encoder = Encoder :: new ( & mut buf) ;
585584 try!( f ( transmute ( & mut check_encoder) ) ) ;
586585 }
587- let out = str:: from_utf8 ( buf. get_ref ( ) ) . unwrap ( ) ;
586+ let out = str:: from_utf8 ( buf[ ] ) . unwrap ( ) ;
588587 let needs_wrapping = out. char_at ( 0 ) != '"' && out. char_at_reverse ( out. len ( ) ) != '"' ;
589588 if needs_wrapping { try!( write ! ( self . writer, "\" " ) ) ; }
590589 try!( f ( self ) ) ;
@@ -839,13 +838,13 @@ impl<'a> ::Encoder<io::IoError> for PrettyEncoder<'a> {
839838 try!( spaces( self . writer, self . curr_indent) ) ;
840839 // ref #12967, make sure to wrap a key in double quotes,
841840 // 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( ) ;
843842 // FIXME(14302) remove the transmute and unsafe block.
844843 unsafe {
845844 let mut check_encoder = PrettyEncoder :: new( & mut buf) ;
846845 try!( f( transmute( & mut check_encoder) ) ) ;
847846 }
848- let out = str:: from_utf8( buf. get_ref ( ) ) . unwrap( ) ;
847+ let out = str:: from_utf8( buf[ ] ) . unwrap( ) ;
849848 let needs_wrapping = out. char_at( 0 ) != '"' && out. char_at_reverse( out. len( ) ) != '"' ;
850849 if needs_wrapping { try!( write ! ( self . writer, "\" " ) ) ; }
851850 try!( f( self ) ) ;
@@ -892,9 +891,9 @@ impl Json {
892891
893892 /// Encodes a json value into a string
894893 pub fn to_pretty_str ( & self ) -> string:: String {
895- let mut s = MemWriter :: new ( ) ;
894+ let mut s = Vec :: new ( ) ;
896895 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 ( )
898897 }
899898
900899 /// If the Json value is an Object, returns the value associated with the provided key.
@@ -2659,12 +2658,11 @@ mod tests {
26592658 }
26602659
26612660 fn with_str_writer( f: |& mut io:: Writer |) -> string:: String {
2662- use std:: io:: MemWriter ;
26632661 use std:: str ;
26642662
2665- let mut m = MemWriter :: new( ) ;
2663+ let mut m = Vec :: new( ) ;
26662664 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( )
26682666 }
26692667
26702668 #[ test]
@@ -3286,17 +3284,15 @@ mod tests {
32863284 fn test_encode_hashmap_with_numeric_key( ) {
32873285 use std:: str :: from_utf8;
32883286 use std:: io:: Writer ;
3289- use std:: io:: MemWriter ;
32903287 use std:: collections:: HashMap ;
32913288 let mut hm: HashMap <uint, bool > = HashMap :: new( ) ;
32923289 hm. insert( 1 , true ) ;
3293- let mut mem_buf = MemWriter :: new( ) ;
3290+ let mut mem_buf = Vec :: new( ) ;
32943291 {
32953292 let mut encoder = Encoder :: new( & mut mem_buf as & mut io:: Writer ) ;
32963293 hm. encode( & mut encoder) . unwrap( ) ;
32973294 }
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( ) ;
33003296 match from_str( json_str) {
33013297 Err ( _) => panic!( "Unable to parse json_str: {}" , json_str) ,
33023298 _ => { } // it parsed and we are good to go
@@ -3307,17 +3303,15 @@ mod tests {
33073303 fn test_prettyencode_hashmap_with_numeric_key( ) {
33083304 use std:: str :: from_utf8;
33093305 use std:: io:: Writer ;
3310- use std:: io:: MemWriter ;
33113306 use std:: collections:: HashMap ;
33123307 let mut hm: HashMap <uint, bool > = HashMap :: new( ) ;
33133308 hm. insert( 1 , true ) ;
3314- let mut mem_buf = MemWriter :: new( ) ;
3309+ let mut mem_buf = Vec :: new( ) ;
33153310 {
33163311 let mut encoder = PrettyEncoder :: new( & mut mem_buf as & mut io:: Writer ) ;
33173312 hm. encode( & mut encoder) . unwrap( )
33183313 }
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( ) ;
33213315 match from_str( json_str) {
33223316 Err ( _) => panic!( "Unable to parse json_str: {}" , json_str) ,
33233317 _ => { } // it parsed and we are good to go
@@ -3327,7 +3321,6 @@ mod tests {
33273321 #[ test]
33283322 fn test_prettyencoder_indent_level_param( ) {
33293323 use std:: str :: from_utf8;
3330- use std:: io:: MemWriter ;
33313324 use std:: collections:: TreeMap ;
33323325
33333326 let mut tree = TreeMap :: new( ) ;
@@ -3354,15 +3347,14 @@ mod tests {
33543347
33553348 // Test up to 4 spaces of indents (more?)
33563349 for i in range( 0 , 4 u) {
3357- let mut writer = MemWriter :: new( ) ;
3350+ let mut writer = Vec :: new( ) ;
33583351 {
33593352 let ref mut encoder = PrettyEncoder :: new( & mut writer) ;
33603353 encoder. set_indent( i) ;
33613354 json. encode( encoder) . unwrap( ) ;
33623355 }
33633356
3364- let bytes = writer. unwrap( ) ;
3365- let printed = from_utf8( bytes. as_slice( ) ) . unwrap( ) ;
3357+ let printed = from_utf8( writer[ ] ) . unwrap( ) ;
33663358
33673359 // Check for indents at each line
33683360 let lines: Vec <& str > = printed. lines( ) . collect( ) ;
0 commit comments