@@ -92,7 +92,7 @@ use option::{None, Option, Some};
92
92
use ptr;
93
93
use from_str:: FromStr ;
94
94
use slice;
95
- use slice:: { OwnedVector , ImmutableVector , MutableVector } ;
95
+ use slice:: { OwnedVector , ImmutableVector , MutableVector , CloneableVector } ;
96
96
use slice:: { Vector } ;
97
97
use vec:: Vec ;
98
98
use default:: Default ;
@@ -1343,16 +1343,14 @@ pub mod raw {
1343
1343
use raw:: Slice ;
1344
1344
use slice:: { MutableVector , ImmutableVector , OwnedVector , Vector } ;
1345
1345
use str:: { is_utf8, StrSlice } ;
1346
- use vec:: Vec ;
1347
1346
1348
1347
/// Create a Rust string from a *u8 buffer of the given length
1349
1348
pub unsafe fn from_buf_len ( buf : * u8 , len : uint ) -> ~str {
1350
- let mut v = Vec :: with_capacity ( len) ;
1351
- ptr:: copy_memory ( v. as_mut_ptr ( ) , buf, len) ;
1352
- v. set_len ( len) ;
1353
-
1354
- assert ! ( is_utf8( v. as_slice( ) ) ) ;
1355
- :: cast:: transmute ( v. move_iter ( ) . collect :: < ~[ u8 ] > ( ) )
1349
+ let v = Slice { data : buf, len : len } ;
1350
+ let bytes: & [ u8 ] = :: cast:: transmute ( v) ;
1351
+ assert ! ( is_utf8( bytes) ) ;
1352
+ let s: & str = :: cast:: transmute ( bytes) ;
1353
+ s. to_owned ( )
1356
1354
}
1357
1355
1358
1356
#[ lang="strdup_uniq" ]
@@ -2041,7 +2039,7 @@ pub trait StrSlice<'a> {
2041
2039
fn to_owned ( & self ) -> ~str ;
2042
2040
2043
2041
/// Converts to a vector of `u16` encoded as UTF-16.
2044
- fn to_utf16 ( & self ) -> ~ [ u16 ] ;
2042
+ fn to_utf16 ( & self ) -> Vec < u16 > ;
2045
2043
2046
2044
/// Check that `index`-th byte lies at the start and/or end of a
2047
2045
/// UTF-8 code point sequence.
@@ -2545,24 +2543,19 @@ impl<'a> StrSlice<'a> for &'a str {
2545
2543
2546
2544
#[ inline]
2547
2545
fn to_owned ( & self ) -> ~str {
2548
- let len = self . len ( ) ;
2549
2546
unsafe {
2550
- let mut v = Vec :: with_capacity ( len) ;
2551
-
2552
- ptr:: copy_memory ( v. as_mut_ptr ( ) , self . as_ptr ( ) , len) ;
2553
- v. set_len ( len) ;
2554
- :: cast:: transmute ( v. move_iter ( ) . collect :: < ~[ u8 ] > ( ) )
2547
+ :: cast:: transmute ( self . as_bytes ( ) . to_owned ( ) )
2555
2548
}
2556
2549
}
2557
2550
2558
- fn to_utf16 ( & self ) -> ~ [ u16 ] {
2551
+ fn to_utf16 ( & self ) -> Vec < u16 > {
2559
2552
let mut u = Vec :: new ( ) ; ;
2560
2553
for ch in self . chars ( ) {
2561
2554
let mut buf = [ 0u16 , ..2 ] ;
2562
2555
let n = ch. encode_utf16 ( buf /* as mut slice! */ ) ;
2563
2556
u. push_all ( buf. slice_to ( n) ) ;
2564
2557
}
2565
- u. move_iter ( ) . collect ( )
2558
+ u
2566
2559
}
2567
2560
2568
2561
#[ inline]
@@ -3393,7 +3386,8 @@ mod tests {
3393
3386
assert_eq ! ( a. subslice_offset( c) , 0 ) ;
3394
3387
3395
3388
let string = "a\n b\n c" ;
3396
- let lines: ~[ & str ] = string. lines ( ) . collect ( ) ;
3389
+ let lines: Vec < & str > = string. lines ( ) . collect ( ) ;
3390
+ let lines = lines. as_slice ( ) ;
3397
3391
assert_eq ! ( string. subslice_offset( lines[ 0 ] ) , 0 ) ;
3398
3392
assert_eq ! ( string. subslice_offset( lines[ 1 ] ) , 2 ) ;
3399
3393
assert_eq ! ( string. subslice_offset( lines[ 2 ] ) , 4 ) ;
@@ -3456,21 +3450,21 @@ mod tests {
3456
3450
fn test_utf16 ( ) {
3457
3451
let pairs =
3458
3452
[ ( "𐍅𐌿𐌻𐍆𐌹𐌻𐌰\n " . to_owned ( ) ,
3459
- box [ 0xd800_u16 , 0xdf45_u16 , 0xd800_u16 , 0xdf3f_u16 ,
3453
+ vec ! [ 0xd800_u16 , 0xdf45_u16 , 0xd800_u16 , 0xdf3f_u16 ,
3460
3454
0xd800_u16 , 0xdf3b_u16 , 0xd800_u16 , 0xdf46_u16 ,
3461
3455
0xd800_u16 , 0xdf39_u16 , 0xd800_u16 , 0xdf3b_u16 ,
3462
3456
0xd800_u16 , 0xdf30_u16 , 0x000a_u16 ] ) ,
3463
3457
3464
3458
( "𐐒𐑉𐐮𐑀𐐲𐑋 𐐏𐐲𐑍\n " . to_owned ( ) ,
3465
- box [ 0xd801_u16 , 0xdc12_u16 , 0xd801_u16 ,
3459
+ vec ! [ 0xd801_u16 , 0xdc12_u16 , 0xd801_u16 ,
3466
3460
0xdc49_u16 , 0xd801_u16 , 0xdc2e_u16 , 0xd801_u16 ,
3467
3461
0xdc40_u16 , 0xd801_u16 , 0xdc32_u16 , 0xd801_u16 ,
3468
3462
0xdc4b_u16 , 0x0020_u16 , 0xd801_u16 , 0xdc0f_u16 ,
3469
3463
0xd801_u16 , 0xdc32_u16 , 0xd801_u16 , 0xdc4d_u16 ,
3470
3464
0x000a_u16 ] ) ,
3471
3465
3472
3466
( "𐌀𐌖𐌋𐌄𐌑𐌉·𐌌𐌄𐌕𐌄𐌋𐌉𐌑\n " . to_owned ( ) ,
3473
- box [ 0xd800_u16 , 0xdf00_u16 , 0xd800_u16 , 0xdf16_u16 ,
3467
+ vec ! [ 0xd800_u16 , 0xdf00_u16 , 0xd800_u16 , 0xdf16_u16 ,
3474
3468
0xd800_u16 , 0xdf0b_u16 , 0xd800_u16 , 0xdf04_u16 ,
3475
3469
0xd800_u16 , 0xdf11_u16 , 0xd800_u16 , 0xdf09_u16 ,
3476
3470
0x00b7_u16 , 0xd800_u16 , 0xdf0c_u16 , 0xd800_u16 ,
@@ -3479,7 +3473,7 @@ mod tests {
3479
3473
0xdf09_u16 , 0xd800_u16 , 0xdf11_u16 , 0x000a_u16 ] ) ,
3480
3474
3481
3475
( "𐒋𐒘𐒈𐒑𐒛𐒒 𐒕𐒓 𐒈𐒚𐒍 𐒏𐒜𐒒𐒖𐒆 𐒕𐒆\n " . to_owned ( ) ,
3482
- box [ 0xd801_u16 , 0xdc8b_u16 , 0xd801_u16 , 0xdc98_u16 ,
3476
+ vec ! [ 0xd801_u16 , 0xdc8b_u16 , 0xd801_u16 , 0xdc98_u16 ,
3483
3477
0xd801_u16 , 0xdc88_u16 , 0xd801_u16 , 0xdc91_u16 ,
3484
3478
0xd801_u16 , 0xdc9b_u16 , 0xd801_u16 , 0xdc92_u16 ,
3485
3479
0x0020_u16 , 0xd801_u16 , 0xdc95_u16 , 0xd801_u16 ,
@@ -3492,18 +3486,18 @@ mod tests {
3492
3486
0x000a_u16 ] ) ,
3493
3487
// Issue #12318, even-numbered non-BMP planes
3494
3488
( "\U 00020000" . to_owned ( ) ,
3495
- box [ 0xD840 , 0xDC00 ] ) ] ;
3489
+ vec ! [ 0xD840 , 0xDC00 ] ) ] ;
3496
3490
3497
3491
for p in pairs. iter ( ) {
3498
3492
let ( s, u) = ( * p) . clone ( ) ;
3499
- assert ! ( is_utf16( u) ) ;
3493
+ assert ! ( is_utf16( u. as_slice ( ) ) ) ;
3500
3494
assert_eq ! ( s. to_utf16( ) , u) ;
3501
3495
3502
- assert_eq ! ( from_utf16( u) . unwrap( ) , s) ;
3503
- assert_eq ! ( from_utf16_lossy( u) , s) ;
3496
+ assert_eq ! ( from_utf16( u. as_slice ( ) ) . unwrap( ) , s) ;
3497
+ assert_eq ! ( from_utf16_lossy( u. as_slice ( ) ) , s) ;
3504
3498
3505
- assert_eq ! ( from_utf16( s. to_utf16( ) ) . unwrap( ) , s) ;
3506
- assert_eq ! ( from_utf16( u) . unwrap( ) . to_utf16( ) , u) ;
3499
+ assert_eq ! ( from_utf16( s. to_utf16( ) . as_slice ( ) ) . unwrap( ) , s) ;
3500
+ assert_eq ! ( from_utf16( u. as_slice ( ) ) . unwrap( ) . to_utf16( ) , u) ;
3507
3501
}
3508
3502
}
3509
3503
@@ -3760,105 +3754,105 @@ mod tests {
3760
3754
fn test_split_char_iterator ( ) {
3761
3755
let data = "\n Märy häd ä little lämb\n Little lämb\n " ;
3762
3756
3763
- let split: ~ [ & str ] = data. split ( ' ' ) . collect ( ) ;
3764
- assert_eq ! ( split, box [ "\n Märy" , "häd" , "ä" , "little" , "lämb\n Little" , "lämb\n " ] ) ;
3757
+ let split: Vec < & str > = data. split ( ' ' ) . collect ( ) ;
3758
+ assert_eq ! ( split, vec! [ "\n Märy" , "häd" , "ä" , "little" , "lämb\n Little" , "lämb\n " ] ) ;
3765
3759
3766
- let mut rsplit: ~ [ & str ] = data. split ( ' ' ) . rev ( ) . collect ( ) ;
3760
+ let mut rsplit: Vec < & str > = data. split ( ' ' ) . rev ( ) . collect ( ) ;
3767
3761
rsplit. reverse ( ) ;
3768
- assert_eq ! ( rsplit, box [ "\n Märy" , "häd" , "ä" , "little" , "lämb\n Little" , "lämb\n " ] ) ;
3762
+ assert_eq ! ( rsplit, vec! [ "\n Märy" , "häd" , "ä" , "little" , "lämb\n Little" , "lämb\n " ] ) ;
3769
3763
3770
- let split: ~ [ & str ] = data. split ( |c : char | c == ' ' ) . collect ( ) ;
3771
- assert_eq ! ( split, box [ "\n Märy" , "häd" , "ä" , "little" , "lämb\n Little" , "lämb\n " ] ) ;
3764
+ let split: Vec < & str > = data. split ( |c : char | c == ' ' ) . collect ( ) ;
3765
+ assert_eq ! ( split, vec! [ "\n Märy" , "häd" , "ä" , "little" , "lämb\n Little" , "lämb\n " ] ) ;
3772
3766
3773
- let mut rsplit: ~ [ & str ] = data. split ( |c : char | c == ' ' ) . rev ( ) . collect ( ) ;
3767
+ let mut rsplit: Vec < & str > = data. split ( |c : char | c == ' ' ) . rev ( ) . collect ( ) ;
3774
3768
rsplit. reverse ( ) ;
3775
- assert_eq ! ( rsplit, box [ "\n Märy" , "häd" , "ä" , "little" , "lämb\n Little" , "lämb\n " ] ) ;
3769
+ assert_eq ! ( rsplit, vec! [ "\n Märy" , "häd" , "ä" , "little" , "lämb\n Little" , "lämb\n " ] ) ;
3776
3770
3777
3771
// Unicode
3778
- let split: ~ [ & str ] = data. split ( 'ä' ) . collect ( ) ;
3779
- assert_eq ! ( split, box [ "\n M" , "ry h" , "d " , " little l" , "mb\n Little l" , "mb\n " ] ) ;
3772
+ let split: Vec < & str > = data. split ( 'ä' ) . collect ( ) ;
3773
+ assert_eq ! ( split, vec! [ "\n M" , "ry h" , "d " , " little l" , "mb\n Little l" , "mb\n " ] ) ;
3780
3774
3781
- let mut rsplit: ~ [ & str ] = data. split ( 'ä' ) . rev ( ) . collect ( ) ;
3775
+ let mut rsplit: Vec < & str > = data. split ( 'ä' ) . rev ( ) . collect ( ) ;
3782
3776
rsplit. reverse ( ) ;
3783
- assert_eq ! ( rsplit, box [ "\n M" , "ry h" , "d " , " little l" , "mb\n Little l" , "mb\n " ] ) ;
3777
+ assert_eq ! ( rsplit, vec! [ "\n M" , "ry h" , "d " , " little l" , "mb\n Little l" , "mb\n " ] ) ;
3784
3778
3785
- let split: ~ [ & str ] = data. split ( |c : char | c == 'ä' ) . collect ( ) ;
3786
- assert_eq ! ( split, box [ "\n M" , "ry h" , "d " , " little l" , "mb\n Little l" , "mb\n " ] ) ;
3779
+ let split: Vec < & str > = data. split ( |c : char | c == 'ä' ) . collect ( ) ;
3780
+ assert_eq ! ( split, vec! [ "\n M" , "ry h" , "d " , " little l" , "mb\n Little l" , "mb\n " ] ) ;
3787
3781
3788
- let mut rsplit: ~ [ & str ] = data. split ( |c : char | c == 'ä' ) . rev ( ) . collect ( ) ;
3782
+ let mut rsplit: Vec < & str > = data. split ( |c : char | c == 'ä' ) . rev ( ) . collect ( ) ;
3789
3783
rsplit. reverse ( ) ;
3790
- assert_eq ! ( rsplit, box [ "\n M" , "ry h" , "d " , " little l" , "mb\n Little l" , "mb\n " ] ) ;
3784
+ assert_eq ! ( rsplit, vec! [ "\n M" , "ry h" , "d " , " little l" , "mb\n Little l" , "mb\n " ] ) ;
3791
3785
}
3792
3786
3793
3787
#[ test]
3794
3788
fn test_splitn_char_iterator ( ) {
3795
3789
let data = "\n Märy häd ä little lämb\n Little lämb\n " ;
3796
3790
3797
- let split: ~ [ & str ] = data. splitn ( ' ' , 3 ) . collect ( ) ;
3798
- assert_eq ! ( split, box [ "\n Märy" , "häd" , "ä" , "little lämb\n Little lämb\n " ] ) ;
3791
+ let split: Vec < & str > = data. splitn ( ' ' , 3 ) . collect ( ) ;
3792
+ assert_eq ! ( split, vec! [ "\n Märy" , "häd" , "ä" , "little lämb\n Little lämb\n " ] ) ;
3799
3793
3800
- let split: ~ [ & str ] = data. splitn ( |c : char | c == ' ' , 3 ) . collect ( ) ;
3801
- assert_eq ! ( split, box [ "\n Märy" , "häd" , "ä" , "little lämb\n Little lämb\n " ] ) ;
3794
+ let split: Vec < & str > = data. splitn ( |c : char | c == ' ' , 3 ) . collect ( ) ;
3795
+ assert_eq ! ( split, vec! [ "\n Märy" , "häd" , "ä" , "little lämb\n Little lämb\n " ] ) ;
3802
3796
3803
3797
// Unicode
3804
- let split: ~ [ & str ] = data. splitn ( 'ä' , 3 ) . collect ( ) ;
3805
- assert_eq ! ( split, box [ "\n M" , "ry h" , "d " , " little lämb\n Little lämb\n " ] ) ;
3798
+ let split: Vec < & str > = data. splitn ( 'ä' , 3 ) . collect ( ) ;
3799
+ assert_eq ! ( split, vec! [ "\n M" , "ry h" , "d " , " little lämb\n Little lämb\n " ] ) ;
3806
3800
3807
- let split: ~ [ & str ] = data. splitn ( |c : char | c == 'ä' , 3 ) . collect ( ) ;
3808
- assert_eq ! ( split, box [ "\n M" , "ry h" , "d " , " little lämb\n Little lämb\n " ] ) ;
3801
+ let split: Vec < & str > = data. splitn ( |c : char | c == 'ä' , 3 ) . collect ( ) ;
3802
+ assert_eq ! ( split, vec! [ "\n M" , "ry h" , "d " , " little lämb\n Little lämb\n " ] ) ;
3809
3803
}
3810
3804
3811
3805
#[ test]
3812
3806
fn test_rsplitn_char_iterator ( ) {
3813
3807
let data = "\n Märy häd ä little lämb\n Little lämb\n " ;
3814
3808
3815
- let mut split: ~ [ & str ] = data. rsplitn ( ' ' , 3 ) . collect ( ) ;
3809
+ let mut split: Vec < & str > = data. rsplitn ( ' ' , 3 ) . collect ( ) ;
3816
3810
split. reverse ( ) ;
3817
- assert_eq ! ( split, box [ "\n Märy häd ä" , "little" , "lämb\n Little" , "lämb\n " ] ) ;
3811
+ assert_eq ! ( split, vec! [ "\n Märy häd ä" , "little" , "lämb\n Little" , "lämb\n " ] ) ;
3818
3812
3819
- let mut split: ~ [ & str ] = data. rsplitn ( |c : char | c == ' ' , 3 ) . collect ( ) ;
3813
+ let mut split: Vec < & str > = data. rsplitn ( |c : char | c == ' ' , 3 ) . collect ( ) ;
3820
3814
split. reverse ( ) ;
3821
- assert_eq ! ( split, box [ "\n Märy häd ä" , "little" , "lämb\n Little" , "lämb\n " ] ) ;
3815
+ assert_eq ! ( split, vec! [ "\n Märy häd ä" , "little" , "lämb\n Little" , "lämb\n " ] ) ;
3822
3816
3823
3817
// Unicode
3824
- let mut split: ~ [ & str ] = data. rsplitn ( 'ä' , 3 ) . collect ( ) ;
3818
+ let mut split: Vec < & str > = data. rsplitn ( 'ä' , 3 ) . collect ( ) ;
3825
3819
split. reverse ( ) ;
3826
- assert_eq ! ( split, box [ "\n Märy häd " , " little l" , "mb\n Little l" , "mb\n " ] ) ;
3820
+ assert_eq ! ( split, vec! [ "\n Märy häd " , " little l" , "mb\n Little l" , "mb\n " ] ) ;
3827
3821
3828
- let mut split: ~ [ & str ] = data. rsplitn ( |c : char | c == 'ä' , 3 ) . collect ( ) ;
3822
+ let mut split: Vec < & str > = data. rsplitn ( |c : char | c == 'ä' , 3 ) . collect ( ) ;
3829
3823
split. reverse ( ) ;
3830
- assert_eq ! ( split, box [ "\n Märy häd " , " little l" , "mb\n Little l" , "mb\n " ] ) ;
3824
+ assert_eq ! ( split, vec! [ "\n Märy häd " , " little l" , "mb\n Little l" , "mb\n " ] ) ;
3831
3825
}
3832
3826
3833
3827
#[ test]
3834
3828
fn test_split_char_iterator_no_trailing ( ) {
3835
3829
let data = "\n Märy häd ä little lämb\n Little lämb\n " ;
3836
3830
3837
- let split: ~ [ & str ] = data. split ( '\n' ) . collect ( ) ;
3838
- assert_eq ! ( split, box [ "" , "Märy häd ä little lämb" , "Little lämb" , "" ] ) ;
3831
+ let split: Vec < & str > = data. split ( '\n' ) . collect ( ) ;
3832
+ assert_eq ! ( split, vec! [ "" , "Märy häd ä little lämb" , "Little lämb" , "" ] ) ;
3839
3833
3840
- let split: ~ [ & str ] = data. split_terminator ( '\n' ) . collect ( ) ;
3841
- assert_eq ! ( split, box [ "" , "Märy häd ä little lämb" , "Little lämb" ] ) ;
3834
+ let split: Vec < & str > = data. split_terminator ( '\n' ) . collect ( ) ;
3835
+ assert_eq ! ( split, vec! [ "" , "Märy häd ä little lämb" , "Little lämb" ] ) ;
3842
3836
}
3843
3837
3844
3838
#[ test]
3845
3839
fn test_rev_split_char_iterator_no_trailing ( ) {
3846
3840
let data = "\n Märy häd ä little lämb\n Little lämb\n " ;
3847
3841
3848
- let mut split: ~ [ & str ] = data. split ( '\n' ) . rev ( ) . collect ( ) ;
3842
+ let mut split: Vec < & str > = data. split ( '\n' ) . rev ( ) . collect ( ) ;
3849
3843
split. reverse ( ) ;
3850
- assert_eq ! ( split, box [ "" , "Märy häd ä little lämb" , "Little lämb" , "" ] ) ;
3844
+ assert_eq ! ( split, vec! [ "" , "Märy häd ä little lämb" , "Little lämb" , "" ] ) ;
3851
3845
3852
- let mut split: ~ [ & str ] = data. split_terminator ( '\n' ) . rev ( ) . collect ( ) ;
3846
+ let mut split: Vec < & str > = data. split_terminator ( '\n' ) . rev ( ) . collect ( ) ;
3853
3847
split. reverse ( ) ;
3854
- assert_eq ! ( split, box [ "" , "Märy häd ä little lämb" , "Little lämb" ] ) ;
3848
+ assert_eq ! ( split, vec! [ "" , "Märy häd ä little lämb" , "Little lämb" ] ) ;
3855
3849
}
3856
3850
3857
3851
#[ test]
3858
3852
fn test_words ( ) {
3859
3853
let data = "\n \t Märy häd\t ä little lämb\n Little lämb\n " ;
3860
- let words: ~ [ & str ] = data. words ( ) . collect ( ) ;
3861
- assert_eq ! ( words, box [ "Märy" , "häd" , "ä" , "little" , "lämb" , "Little" , "lämb" ] )
3854
+ let words: Vec < & str > = data. words ( ) . collect ( ) ;
3855
+ assert_eq ! ( words, vec! [ "Märy" , "häd" , "ä" , "little" , "lämb" , "Little" , "lämb" ] )
3862
3856
}
3863
3857
3864
3858
#[ test]
@@ -3892,34 +3886,34 @@ mod tests {
3892
3886
#[ test]
3893
3887
fn test_lines ( ) {
3894
3888
let data = "\n Märy häd ä little lämb\n \n Little lämb\n " ;
3895
- let lines: ~ [ & str ] = data. lines ( ) . collect ( ) ;
3896
- assert_eq ! ( lines, box [ "" , "Märy häd ä little lämb" , "" , "Little lämb" ] ) ;
3889
+ let lines: Vec < & str > = data. lines ( ) . collect ( ) ;
3890
+ assert_eq ! ( lines, vec! [ "" , "Märy häd ä little lämb" , "" , "Little lämb" ] ) ;
3897
3891
3898
3892
let data = "\n Märy häd ä little lämb\n \n Little lämb" ; // no trailing \n
3899
- let lines: ~ [ & str ] = data. lines ( ) . collect ( ) ;
3900
- assert_eq ! ( lines, box [ "" , "Märy häd ä little lämb" , "" , "Little lämb" ] ) ;
3893
+ let lines: Vec < & str > = data. lines ( ) . collect ( ) ;
3894
+ assert_eq ! ( lines, vec! [ "" , "Märy häd ä little lämb" , "" , "Little lämb" ] ) ;
3901
3895
}
3902
3896
3903
3897
#[ test]
3904
3898
fn test_split_strator ( ) {
3905
- fn t < ' a > ( s : & str , sep : & ' a str , u : ~ [ & str ] ) {
3906
- let v: ~ [ & str ] = s. split_str ( sep) . collect ( ) ;
3907
- assert_eq ! ( v, u) ;
3899
+ fn t ( s : & str , sep : & str , u : & [ & str ] ) {
3900
+ let v: Vec < & str > = s. split_str ( sep) . collect ( ) ;
3901
+ assert_eq ! ( v. as_slice ( ) , u. as_slice ( ) ) ;
3908
3902
}
3909
- t ( "--1233345--" , "12345" , box [ "--1233345--" ] ) ;
3910
- t ( "abc::hello::there" , "::" , box [ "abc" , "hello" , "there" ] ) ;
3911
- t ( "::hello::there" , "::" , box [ "" , "hello" , "there" ] ) ;
3912
- t ( "hello::there::" , "::" , box [ "hello" , "there" , "" ] ) ;
3913
- t ( "::hello::there::" , "::" , box [ "" , "hello" , "there" , "" ] ) ;
3914
- t ( "ประเทศไทย中华Việt Nam" , "中华" , box [ "ประเทศไทย" , "Việt Nam" ] ) ;
3915
- t ( "zzXXXzzYYYzz" , "zz" , box [ "" , "XXX" , "YYY" , "" ] ) ;
3916
- t ( "zzXXXzYYYz" , "XXX" , box [ "zz" , "zYYYz" ] ) ;
3917
- t ( ".XXX.YYY." , "." , box [ "" , "XXX" , "YYY" , "" ] ) ;
3918
- t ( "" , "." , box [ "" ] ) ;
3919
- t ( "zz" , "zz" , box [ "" , "" ] ) ;
3920
- t ( "ok" , "z" , box [ "ok" ] ) ;
3921
- t ( "zzz" , "zz" , box [ "" , "z" ] ) ;
3922
- t ( "zzzzz" , "zz" , box [ "" , "" , "z" ] ) ;
3903
+ t ( "--1233345--" , "12345" , [ "--1233345--" ] ) ;
3904
+ t ( "abc::hello::there" , "::" , [ "abc" , "hello" , "there" ] ) ;
3905
+ t ( "::hello::there" , "::" , [ "" , "hello" , "there" ] ) ;
3906
+ t ( "hello::there::" , "::" , [ "hello" , "there" , "" ] ) ;
3907
+ t ( "::hello::there::" , "::" , [ "" , "hello" , "there" , "" ] ) ;
3908
+ t ( "ประเทศไทย中华Việt Nam" , "中华" , [ "ประเทศไทย" , "Việt Nam" ] ) ;
3909
+ t ( "zzXXXzzYYYzz" , "zz" , [ "" , "XXX" , "YYY" , "" ] ) ;
3910
+ t ( "zzXXXzYYYz" , "XXX" , [ "zz" , "zYYYz" ] ) ;
3911
+ t ( ".XXX.YYY." , "." , [ "" , "XXX" , "YYY" , "" ] ) ;
3912
+ t ( "" , "." , [ "" ] ) ;
3913
+ t ( "zz" , "zz" , [ "" , "" ] ) ;
3914
+ t ( "ok" , "z" , [ "ok" ] ) ;
3915
+ t ( "zzz" , "zz" , [ "" , "z" ] ) ;
3916
+ t ( "zzzzz" , "zz" , [ "" , "" , "z" ] ) ;
3923
3917
}
3924
3918
3925
3919
#[ test]
0 commit comments