@@ -315,8 +315,7 @@ impl<T> SliceExt for [T] {
315
315
SplitN {
316
316
inner : GenericSplitN {
317
317
iter : self . split ( pred) ,
318
- count : n,
319
- invert : false
318
+ count : n
320
319
}
321
320
}
322
321
}
@@ -327,9 +326,8 @@ impl<T> SliceExt for [T] {
327
326
{
328
327
RSplitN {
329
328
inner : GenericSplitN {
330
- iter : self . split ( pred) ,
331
- count : n,
332
- invert : true
329
+ iter : self . rsplit ( pred) ,
330
+ count : n
333
331
}
334
332
}
335
333
}
@@ -504,8 +502,7 @@ impl<T> SliceExt for [T] {
504
502
SplitNMut {
505
503
inner : GenericSplitN {
506
504
iter : self . split_mut ( pred) ,
507
- count : n,
508
- invert : false
505
+ count : n
509
506
}
510
507
}
511
508
}
@@ -516,9 +513,8 @@ impl<T> SliceExt for [T] {
516
513
{
517
514
RSplitNMut {
518
515
inner : GenericSplitN {
519
- iter : self . split_mut ( pred) ,
520
- count : n,
521
- invert : true
516
+ iter : self . rsplit_mut ( pred) ,
517
+ count : n
522
518
}
523
519
}
524
520
}
@@ -1881,7 +1877,6 @@ impl<'a, T, P> FusedIterator for RSplitMut<'a, T, P> where P: FnMut(&T) -> bool
1881
1877
struct GenericSplitN < I > {
1882
1878
iter : I ,
1883
1879
count : usize ,
1884
- invert : bool
1885
1880
}
1886
1881
1887
1882
impl < T , I : SplitIter < Item =T > > Iterator for GenericSplitN < I > {
@@ -1892,10 +1887,7 @@ impl<T, I: SplitIter<Item=T>> Iterator for GenericSplitN<I> {
1892
1887
match self . count {
1893
1888
0 => None ,
1894
1889
1 => { self . count -= 1 ; self . iter . finish ( ) }
1895
- _ => {
1896
- self . count -= 1 ;
1897
- if self . invert { self . iter . next_back ( ) } else { self . iter . next ( ) }
1898
- }
1890
+ _ => { self . count -= 1 ; self . iter . next ( ) }
1899
1891
}
1900
1892
}
1901
1893
@@ -1937,7 +1929,7 @@ impl<'a, T: 'a + fmt::Debug, P> fmt::Debug for SplitN<'a, T, P> where P: FnMut(&
1937
1929
/// [slices]: ../../std/primitive.slice.html
1938
1930
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
1939
1931
pub struct RSplitN < ' a , T : ' a , P > where P : FnMut ( & T ) -> bool {
1940
- inner : GenericSplitN < Split < ' a , T , P > >
1932
+ inner : GenericSplitN < RSplit < ' a , T , P > >
1941
1933
}
1942
1934
1943
1935
#[ stable( feature = "core_impl_debug" , since = "1.9.0" ) ]
@@ -1980,7 +1972,7 @@ impl<'a, T: 'a + fmt::Debug, P> fmt::Debug for SplitNMut<'a, T, P> where P: FnMu
1980
1972
/// [slices]: ../../std/primitive.slice.html
1981
1973
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
1982
1974
pub struct RSplitNMut < ' a , T : ' a , P > where P : FnMut ( & T ) -> bool {
1983
- inner : GenericSplitN < SplitMut < ' a , T , P > >
1975
+ inner : GenericSplitN < RSplitMut < ' a , T , P > >
1984
1976
}
1985
1977
1986
1978
#[ stable( feature = "core_impl_debug" , since = "1.9.0" ) ]
0 commit comments