@@ -408,19 +408,7 @@ pub pure fn chars(s: &str) -> ~[char] {
408
408
* `begin`.
409
409
*/
410
410
pub pure fn substr ( s : & str , begin : uint , n : uint ) -> ~str {
411
- slice_DBG_UNIQ ( s, begin, begin + count_bytes ( s, begin, n) )
412
- }
413
-
414
- /**
415
- * Returns a slice of the given string from the byte range [`begin`..`end`)
416
- *
417
- * Fails when `begin` and `end` do not point to valid characters or
418
- * beyond the last character of the string
419
- */
420
- pub pure fn slice_DBG_UNIQ ( s : & str , begin : uint , end : uint ) -> ~str {
421
- fail_unless ! ( is_char_boundary( s, begin) ) ;
422
- fail_unless ! ( is_char_boundary( s, end) ) ;
423
- unsafe { raw:: slice_DBG_UNIQ_bytes ( s, begin, end) }
411
+ slice_DBG_BRWD ( s, begin, begin + count_bytes ( s, begin, n) ) . to_owned ( )
424
412
}
425
413
426
414
/**
@@ -2287,7 +2275,6 @@ pub trait StrSlice {
2287
2275
pure fn is_alphanumeric(&self) -> bool;
2288
2276
pure fn len(&self) -> uint;
2289
2277
pure fn char_len(&self) -> uint;
2290
- pure fn slice_DBG_UNIQ(&self, begin: uint, end: uint) -> ~str;
2291
2278
pure fn slice_DBG_BRWD(&self, begin: uint, end: uint) -> &'self str;
2292
2279
pure fn split(&self, sepfn: &fn(char) -> bool) -> ~[~str];
2293
2280
pure fn split_char(&self, sep: char) -> ~[~str];
@@ -2403,17 +2390,6 @@ impl StrSlice for &'self str {
2403
2390
* beyond the last character of the string
2404
2391
*/
2405
2392
#[inline]
2406
- pure fn slice_DBG_UNIQ(&self, begin: uint, end: uint) -> ~str {
2407
- slice_DBG_UNIQ(*self, begin, end)
2408
- }
2409
- /**
2410
- * Returns a slice of the given string from the byte range
2411
- * [`begin`..`end`)
2412
- *
2413
- * Fails when `begin` and `end` do not point to valid characters or
2414
- * beyond the last character of the string
2415
- */
2416
- #[inline]
2417
2393
pure fn slice_DBG_BRWD(&self, begin: uint, end: uint) -> &'self str {
2418
2394
slice_DBG_BRWD(*self, begin, end)
2419
2395
}
@@ -2472,7 +2448,7 @@ impl StrSlice for &'self str {
2472
2448
pure fn trim_right(&self) -> ~str { trim_right(*self) }
2473
2449
2474
2450
#[inline]
2475
- pure fn to_owned(&self) -> ~str { self.slice_DBG_UNIQ(0, self.len() ) }
2451
+ pure fn to_owned(&self) -> ~str { from_slice(* self) }
2476
2452
2477
2453
#[inline]
2478
2454
pure fn to_managed(&self) -> @str {
@@ -2903,25 +2879,24 @@ mod tests {
2903
2879
2904
2880
#[test]
2905
2881
fn test_unsafe_slice() {
2906
- unsafe {
2907
- fail_unless!(~" ab" == raw::slice_DBG_UNIQ_bytes(~" abc", 0, 2));
2908
- fail_unless!(~" bc" == raw::slice_DBG_UNIQ_bytes(~" abc", 1, 3));
2909
- fail_unless!(~" " == raw::slice_DBG_UNIQ_bytes(~" abc", 1, 1));
2910
- fn a_million_letter_a() -> ~str {
2911
- let mut i = 0;
2912
- let mut rs = ~" ";
2913
- while i < 100000 { push_str(&mut rs, ~" aaaaaaaaaa"); i += 1; }
2914
- rs
2915
- }
2916
- fn half_a_million_letter_a() -> ~str {
2917
- let mut i = 0;
2918
- let mut rs = ~" ";
2919
- while i < 100000 { push_str(&mut rs, ~" aaaaa"); i += 1; }
2920
- rs
2921
- }
2922
- fail_unless!(half_a_million_letter_a() ==
2923
- raw::slice_DBG_UNIQ_bytes(a_million_letter_a(), 0u, 500000));
2882
+ fail_unless!(" ab" == unsafe {raw::slice_DBG_BRWD_bytes(" abc", 0, 2)});
2883
+ fail_unless!(" bc" == unsafe {raw::slice_DBG_BRWD_bytes(" abc", 1, 3)});
2884
+ fail_unless!(" " == unsafe {raw::slice_DBG_BRWD_bytes(" abc", 1, 1)});
2885
+ fn a_million_letter_a() -> ~str {
2886
+ let mut i = 0;
2887
+ let mut rs = ~" ";
2888
+ while i < 100000 { push_str(&mut rs, " aaaaaaaaaa"); i += 1; }
2889
+ rs
2924
2890
}
2891
+ fn half_a_million_letter_a() -> ~str {
2892
+ let mut i = 0;
2893
+ let mut rs = ~" ";
2894
+ while i < 100000 { push_str(&mut rs, " aaaaa"); i += 1; }
2895
+ rs
2896
+ }
2897
+ let letters = a_million_letter_a();
2898
+ fail_unless!(half_a_million_letter_a() ==
2899
+ unsafe {raw::slice_DBG_BRWD_bytes(letters, 0u, 500000)}.to_owned());
2925
2900
}
2926
2901
2927
2902
#[test]
@@ -3001,50 +2976,51 @@ mod tests {
3001
2976
3002
2977
#[test]
3003
2978
fn test_slice() {
3004
- fail_unless!(~ " ab" == slice_DBG_UNIQ(~ " abc", 0, 2));
3005
- fail_unless!(~ " bc" == slice_DBG_UNIQ(~ " abc", 1, 3));
3006
- fail_unless!(~ " " == slice_DBG_UNIQ(~ " abc", 1, 1));
3007
- fail_unless!(~ "\u65e5 " == slice_DBG_UNIQ ( ~ "\u65e5 \u672c ", 0 , 3 ) ) ;
2979
+ fail_unless!(" ab" == slice_DBG_BRWD( " abc", 0, 2));
2980
+ fail_unless!(" bc" == slice_DBG_BRWD( " abc", 1, 3));
2981
+ fail_unless!(" " == slice_DBG_BRWD( " abc", 1, 1));
2982
+ fail_unless!("\u65e5 " == slice_DBG_BRWD ( "\u65e5 \u672c " , 0 , 3 ) ) ;
3008
2983
3009
- let data = ~ "ประเทศไทย中华";
3010
- fail_unless!( ~ "ป" == slice_DBG_UNIQ ( data, 0 , 3 ) ) ;
3011
- fail_unless!( ~ "ร" == slice_DBG_UNIQ ( data, 3 , 6 ) ) ;
3012
- fail_unless!( ~ "" == slice_DBG_UNIQ ( data, 3 , 3 ) ) ;
3013
- fail_unless!( ~ "华" == slice_DBG_UNIQ ( data, 30 , 33 ) ) ;
2984
+ let data = "ประเทศไทย中华";
2985
+ fail_unless!( "ป" == slice_DBG_BRWD ( data, 0 , 3 ) ) ;
2986
+ fail_unless!( "ร" == slice_DBG_BRWD ( data, 3 , 6 ) ) ;
2987
+ fail_unless!( "" == slice_DBG_BRWD ( data, 3 , 3 ) ) ;
2988
+ fail_unless!( "华" == slice_DBG_BRWD ( data, 30 , 33 ) ) ;
3014
2989
3015
2990
fn a_million_letter_X( ) -> ~str {
3016
2991
let mut i = 0 ;
3017
2992
let mut rs = ~"";
3018
2993
while i < 100000 {
3019
- push_str( & mut rs, ~ "华华华华华华华华华华") ;
2994
+ push_str( & mut rs, "华华华华华华华华华华") ;
3020
2995
i += 1 ;
3021
2996
}
3022
2997
rs
3023
2998
}
3024
2999
fn half_a_million_letter_X( ) -> ~str {
3025
3000
let mut i = 0 ;
3026
3001
let mut rs = ~"";
3027
- while i < 100000 { push_str( & mut rs, ~ "华华华华华") ; i += 1 ; }
3002
+ while i < 100000 { push_str( & mut rs, "华华华华华") ; i += 1 ; }
3028
3003
rs
3029
3004
}
3005
+ let letters = a_million_letter_X( ) ;
3030
3006
fail_unless!( half_a_million_letter_X( ) ==
3031
- slice_DBG_UNIQ ( a_million_letter_X ( ) , 0 u, 3 u * 500000 u) ) ;
3007
+ slice_DBG_BRWD ( letters , 0 u, 3 u * 500000 u) . to_owned ( ) ) ;
3032
3008
}
3033
3009
3034
3010
#[ test]
3035
3011
fn test_slice_2( ) {
3036
- let ss = ~ "中华Việt Nam ";
3012
+ let ss = "中华Việt Nam ";
3037
3013
3038
- fail_unless!( ~ "华" == slice_DBG_UNIQ ( ss, 3 u, 6 u) ) ;
3039
- fail_unless!( ~ "Việt Nam " == slice_DBG_UNIQ ( ss, 6 u, 16 u) ) ;
3014
+ fail_unless!( "华" == slice_DBG_BRWD ( ss, 3 u, 6 u) ) ;
3015
+ fail_unless!( "Việt Nam " == slice_DBG_BRWD ( ss, 6 u, 16 u) ) ;
3040
3016
3041
- fail_unless!( ~ "ab" == slice_DBG_UNIQ ( ~ "abc", 0 u, 2 u) ) ;
3042
- fail_unless!( ~ "bc" == slice_DBG_UNIQ ( ~ "abc", 1 u, 3 u) ) ;
3043
- fail_unless!( ~ "" == slice_DBG_UNIQ ( ~ "abc", 1 u, 1 u) ) ;
3017
+ fail_unless!( "ab" == slice_DBG_BRWD ( "abc", 0 u, 2 u) ) ;
3018
+ fail_unless!( "bc" == slice_DBG_BRWD ( "abc", 1 u, 3 u) ) ;
3019
+ fail_unless!( "" == slice_DBG_BRWD ( "abc", 1 u, 1 u) ) ;
3044
3020
3045
- fail_unless!( ~ "中" == slice_DBG_UNIQ ( ss, 0 u, 3 u) ) ;
3046
- fail_unless!( ~ "华V" == slice_DBG_UNIQ ( ss, 3 u, 7 u) ) ;
3047
- fail_unless!( ~ "" == slice_DBG_UNIQ ( ss, 3 u, 3 u) ) ;
3021
+ fail_unless!( "中" == slice_DBG_BRWD ( ss, 0 u, 3 u) ) ;
3022
+ fail_unless!( "华V" == slice_DBG_BRWD ( ss, 3 u, 7 u) ) ;
3023
+ fail_unless!( "" == slice_DBG_BRWD ( ss, 3 u, 3 u) ) ;
3048
3024
/*0: 中
3049
3025
3: 华
3050
3026
6: V
@@ -3061,7 +3037,7 @@ mod tests {
3061
3037
#[ should_fail]
3062
3038
#[ ignore( cfg( windows) ) ]
3063
3039
fn test_slice_fail( ) {
3064
- slice_DBG_UNIQ ( ~ "中华Việt Nam ", 0 u, 2 u) ;
3040
+ slice_DBG_BRWD ( "中华Việt Nam ", 0 u, 2 u) ;
3065
3041
}
3066
3042
3067
3043
#[ test]
0 commit comments