@@ -211,6 +211,7 @@ use std::string;
211
211
use std:: ops;
212
212
use unicode:: str as unicode_str;
213
213
use unicode:: str:: Utf16Item ;
214
+ use std:: ops:: Index as IndexOp ;
214
215
215
216
use Encodable ;
216
217
@@ -386,7 +387,7 @@ fn escape_str(wr: &mut fmt::Writer, v: &str) -> fmt::Result {
386
387
} ;
387
388
388
389
if start < i {
389
- try!( wr. write_str ( v[ start..i] ) ) ;
390
+ try!( wr. write_str ( v. index ( & ( start..i) ) ) ) ;
390
391
}
391
392
392
393
try!( wr. write_str ( escaped) ) ;
@@ -395,7 +396,7 @@ fn escape_str(wr: &mut fmt::Writer, v: &str) -> fmt::Result {
395
396
}
396
397
397
398
if start != v. len ( ) {
398
- try!( wr. write_str ( v[ start..] ) ) ;
399
+ try!( wr. write_str ( v. index ( & ( start..) ) ) ) ;
399
400
}
400
401
401
402
wr. write_str ( "\" " )
@@ -404,7 +405,7 @@ fn escape_str(wr: &mut fmt::Writer, v: &str) -> fmt::Result {
404
405
fn escape_char ( writer : & mut fmt:: Writer , v : char ) -> fmt:: Result {
405
406
let mut buf = [ 0 ; 4 ] ;
406
407
let n = v. encode_utf8 ( & mut buf) . unwrap ( ) ;
407
- let buf = unsafe { str:: from_utf8_unchecked ( buf[ 0 ..n] ) } ;
408
+ let buf = unsafe { str:: from_utf8_unchecked ( buf. index ( & ( 0 ..n) ) ) } ;
408
409
escape_str ( writer, buf)
409
410
}
410
411
@@ -417,7 +418,7 @@ fn spaces(wr: &mut fmt::Writer, mut n: uint) -> fmt::Result {
417
418
}
418
419
419
420
if n > 0 {
420
- wr. write_str ( BUF [ ..n ] )
421
+ wr. write_str ( BUF . index ( & ( ..n ) ) )
421
422
} else {
422
423
Ok ( ( ) )
423
424
}
@@ -624,7 +625,7 @@ impl<'a> ::Encoder<fmt::Error> for Encoder<'a> {
624
625
let mut check_encoder = Encoder :: new ( & mut buf) ;
625
626
try!( f ( transmute ( & mut check_encoder) ) ) ;
626
627
}
627
- let out = str:: from_utf8 ( buf[ ] ) . unwrap ( ) ;
628
+ let out = str:: from_utf8 ( buf. index ( & FullRange ) ) . unwrap ( ) ;
628
629
let needs_wrapping = out. char_at ( 0 ) != '"' && out. char_at_reverse ( out. len ( ) ) != '"' ;
629
630
if needs_wrapping { try!( write ! ( self . writer, "\" " ) ) ; }
630
631
try!( f ( self ) ) ;
@@ -893,7 +894,7 @@ impl<'a> ::Encoder<fmt::Error> for PrettyEncoder<'a> {
893
894
let mut check_encoder = PrettyEncoder :: new ( & mut buf) ;
894
895
try!( f ( transmute ( & mut check_encoder) ) ) ;
895
896
}
896
- let out = str:: from_utf8 ( buf[ ] ) . unwrap ( ) ;
897
+ let out = str:: from_utf8 ( buf. index ( & FullRange ) ) . unwrap ( ) ;
897
898
let needs_wrapping = out. char_at ( 0 ) != '"' && out. char_at_reverse ( out. len ( ) ) != '"' ;
898
899
if needs_wrapping { try!( write ! ( self . writer, "\" " ) ) ; }
899
900
try!( f ( self ) ) ;
@@ -1026,7 +1027,7 @@ impl Json {
1026
1027
/// Returns None otherwise.
1027
1028
pub fn as_string < ' a > ( & ' a self ) -> Option < & ' a str > {
1028
1029
match * self {
1029
- Json :: String ( ref s) => Some ( s[ ] ) ,
1030
+ Json :: String ( ref s) => Some ( s. index ( & FullRange ) ) ,
1030
1031
_ => None
1031
1032
}
1032
1033
}
@@ -1241,7 +1242,8 @@ impl Stack {
1241
1242
InternalIndex ( i) => Index ( i) ,
1242
1243
InternalKey ( start, size) => {
1243
1244
Key ( str:: from_utf8 (
1244
- self . str_buffer [ start as uint .. start as uint + size as uint ] ) . unwrap ( ) )
1245
+ self . str_buffer . index (
1246
+ & ( ( start as uint ) .. ( start as uint + size as uint ) ) ) ) . unwrap ( ) )
1245
1247
}
1246
1248
}
1247
1249
}
@@ -1283,7 +1285,7 @@ impl Stack {
1283
1285
Some ( & InternalIndex ( i) ) => Some ( Index ( i) ) ,
1284
1286
Some ( & InternalKey ( start, size) ) => {
1285
1287
Some ( Key ( str:: from_utf8 (
1286
- self . str_buffer [ start as uint .. ( start+size) as uint ]
1288
+ self . str_buffer . index ( & ( start as uint ) .. ( ( start+size) as uint ) )
1287
1289
) . unwrap ( ) ) )
1288
1290
}
1289
1291
}
@@ -2160,7 +2162,7 @@ impl ::Decoder<DecoderError> for Decoder {
2160
2162
return Err ( ExpectedError ( "String or Object" . to_string ( ) , format ! ( "{}" , json) ) )
2161
2163
}
2162
2164
} ;
2163
- let idx = match names. iter ( ) . position ( |n| * n == name[ ] ) {
2165
+ let idx = match names. iter ( ) . position ( |n| * n == name. index ( & FullRange ) ) {
2164
2166
Some ( idx) => idx,
2165
2167
None => return Err ( UnknownVariantError ( name) )
2166
2168
} ;
@@ -3373,7 +3375,7 @@ mod tests {
3373
3375
hm. insert ( 1 , true ) ;
3374
3376
let mut mem_buf = Vec :: new ( ) ;
3375
3377
write ! ( & mut mem_buf, "{}" , super :: as_pretty_json( & hm) ) . unwrap ( ) ;
3376
- let json_str = from_utf8 ( mem_buf[ ] ) . unwrap ( ) ;
3378
+ let json_str = from_utf8 ( & mem_buf. index ( & FullRange ) ) . unwrap ( ) ;
3377
3379
match from_str ( json_str) {
3378
3380
Err ( _) => panic ! ( "Unable to parse json_str: {}" , json_str) ,
3379
3381
_ => { } // it parsed and we are good to go
@@ -3389,7 +3391,7 @@ mod tests {
3389
3391
hm. insert ( 1 , true ) ;
3390
3392
let mut mem_buf = Vec :: new ( ) ;
3391
3393
write ! ( & mut mem_buf, "{}" , super :: as_pretty_json( & hm) ) . unwrap ( ) ;
3392
- let json_str = from_utf8 ( mem_buf[ ] ) . unwrap ( ) ;
3394
+ let json_str = from_utf8 ( & mem_buf. index ( & FullRange ) ) . unwrap ( ) ;
3393
3395
match from_str ( json_str) {
3394
3396
Err ( _) => panic ! ( "Unable to parse json_str: {}" , json_str) ,
3395
3397
_ => { } // it parsed and we are good to go
@@ -3429,7 +3431,7 @@ mod tests {
3429
3431
write ! ( & mut writer, "{}" ,
3430
3432
super :: as_pretty_json( & json) . indent( i) ) . unwrap ( ) ;
3431
3433
3432
- let printed = from_utf8 ( writer[ ] ) . unwrap ( ) ;
3434
+ let printed = from_utf8 ( & writer. index ( & FullRange ) ) . unwrap ( ) ;
3433
3435
3434
3436
// Check for indents at each line
3435
3437
let lines: Vec < & str > = printed. lines ( ) . collect ( ) ;
0 commit comments