@@ -250,7 +250,7 @@ use std::num::{Float, Int};
250
250
use std:: ops:: Index ;
251
251
use std:: str:: FromStr ;
252
252
use std:: string;
253
- use std:: { char, f64, fmt, old_io , num, str} ;
253
+ use std:: { char, f64, fmt, io , num, str} ;
254
254
use std;
255
255
use unicode:: str as unicode_str;
256
256
use unicode:: str:: Utf16Item ;
@@ -300,11 +300,11 @@ pub enum ErrorCode {
300
300
NotUtf8 ,
301
301
}
302
302
303
- #[ derive( Clone , Copy , PartialEq , Debug ) ]
303
+ #[ derive( Clone , PartialEq , Debug ) ]
304
304
pub enum ParserError {
305
305
/// msg, line, col
306
306
SyntaxError ( ErrorCode , usize , usize ) ,
307
- IoError ( old_io :: IoErrorKind , & ' static str ) ,
307
+ IoError ( io :: Error ) ,
308
308
}
309
309
310
310
// Builder and Parser have the same errors.
@@ -375,8 +375,8 @@ impl fmt::Debug for ErrorCode {
375
375
}
376
376
}
377
377
378
- fn io_error_to_error ( io : old_io :: IoError ) -> ParserError {
379
- IoError ( io . kind , io . desc )
378
+ fn io_error_to_error ( err : io :: Error ) -> ParserError {
379
+ IoError ( err )
380
380
}
381
381
382
382
impl StdError for DecoderError {
@@ -918,11 +918,15 @@ pub fn as_pretty_json<T: Encodable>(t: &T) -> AsPrettyJson<T> {
918
918
}
919
919
920
920
impl Json {
921
- /// Decodes a json value from an `&mut old_io::Reader`
922
- pub fn from_reader ( rdr : & mut old_io:: Reader ) -> Result < Self , BuilderError > {
923
- let contents = match rdr. read_to_end ( ) {
924
- Ok ( c) => c,
925
- Err ( e) => return Err ( io_error_to_error ( e) )
921
+ /// Decodes a json value from an `&mut io::Read`
922
+ pub fn from_reader ( rdr : & mut io:: Read ) -> Result < Self , BuilderError > {
923
+ let contents = {
924
+ let mut c = Vec :: new ( ) ;
925
+ match rdr. read_to_end ( & mut c) {
926
+ Ok ( c) => c,
927
+ Err ( e) => return Err ( io_error_to_error ( e) )
928
+ }
929
+ c
926
930
} ;
927
931
let s = match str:: from_utf8 ( & contents) . ok ( ) {
928
932
Some ( s) => s,
@@ -1905,7 +1909,7 @@ impl<T: Iterator<Item = char>> Builder<T> {
1905
1909
self . bump ( ) ;
1906
1910
match self . token {
1907
1911
None => { }
1908
- Some ( Error ( e) ) => { return Err ( e) ; }
1912
+ Some ( Error ( ref e) ) => { return Err ( e. clone ( ) ) ; }
1909
1913
ref tok => { panic ! ( "unexpected token {:?}" , tok. clone( ) ) ; }
1910
1914
}
1911
1915
result
@@ -1927,7 +1931,7 @@ impl<T: Iterator<Item = char>> Builder<T> {
1927
1931
swap ( s, & mut temp) ;
1928
1932
Ok ( Json :: String ( temp) )
1929
1933
}
1930
- Some ( Error ( e) ) => Err ( e) ,
1934
+ Some ( Error ( ref e) ) => Err ( e. clone ( ) ) ,
1931
1935
Some ( ArrayStart ) => self . build_array ( ) ,
1932
1936
Some ( ObjectStart ) => self . build_object ( ) ,
1933
1937
Some ( ObjectEnd ) => self . parser . error ( InvalidSyntax ) ,
@@ -1960,7 +1964,7 @@ impl<T: Iterator<Item = char>> Builder<T> {
1960
1964
loop {
1961
1965
match self . token {
1962
1966
Some ( ObjectEnd ) => { return Ok ( Json :: Object ( values) ) ; }
1963
- Some ( Error ( e) ) => { return Err ( e) ; }
1967
+ Some ( Error ( ref e) ) => { return Err ( e. clone ( ) ) ; }
1964
1968
None => { break ; }
1965
1969
_ => { }
1966
1970
}
@@ -3360,7 +3364,7 @@ mod tests {
3360
3364
#[ test]
3361
3365
fn test_encode_hashmap_with_numeric_key ( ) {
3362
3366
use std:: str:: from_utf8;
3363
- use std:: old_io :: Writer ;
3367
+ // use std::io::Write ;
3364
3368
use std:: collections:: HashMap ;
3365
3369
let mut hm: HashMap < usize , bool > = HashMap :: new ( ) ;
3366
3370
hm. insert ( 1 , true ) ;
@@ -3376,7 +3380,7 @@ mod tests {
3376
3380
#[ test]
3377
3381
fn test_prettyencode_hashmap_with_numeric_key ( ) {
3378
3382
use std:: str:: from_utf8;
3379
- use std:: old_io :: Writer ;
3383
+ // use std::io::Write ;
3380
3384
use std:: collections:: HashMap ;
3381
3385
let mut hm: HashMap < usize , bool > = HashMap :: new ( ) ;
3382
3386
hm. insert ( 1 , true ) ;
0 commit comments