@@ -652,44 +652,6 @@ pub fn contains<T:Eq>(v: &[T], x: &T) -> bool {
652
652
false
653
653
}
654
654
655
- /**
656
- * Search for the first element that matches a given predicate within a range
657
- *
658
- * Apply function `f` to each element of `v` within the range
659
- * [`start`, `end`). When function `f` returns true then an option containing
660
- * the element is returned. If `f` matches no elements then none is returned.
661
- */
662
- pub fn find_between < T : Copy > ( v : & [ T ] , start : uint , end : uint ,
663
- f : & fn ( t : & T ) -> bool ) -> Option < T > {
664
- position_between ( v, start, end, f) . map ( |i| copy v[ * i] )
665
- }
666
-
667
- /**
668
- * Search for the last element that matches a given predicate
669
- *
670
- * Apply function `f` to each element of `v` in reverse order. When function
671
- * `f` returns true then an option containing the element is returned. If `f`
672
- * matches no elements then none is returned.
673
- */
674
- pub fn rfind < T : Copy > ( v : & [ T ] , f : & fn ( t : & T ) -> bool ) -> Option < T > {
675
- rfind_between ( v, 0 u, v. len ( ) , f)
676
- }
677
-
678
- /**
679
- * Search for the last element that matches a given predicate within a range
680
- *
681
- * Apply function `f` to each element of `v` in reverse order within the range
682
- * [`start`, `end`). When function `f` returns true then an option containing
683
- * the element is returned. If `f` matches no elements then none is return.
684
- */
685
- pub fn rfind_between < T : Copy > ( v : & [ T ] ,
686
- start : uint ,
687
- end : uint ,
688
- f : & fn ( t : & T ) -> bool )
689
- -> Option < T > {
690
- rposition_between ( v, start, end, f) . map ( |i| copy v[ * i] )
691
- }
692
-
693
655
/// Find the first index containing a matching value
694
656
pub fn position_elem < T : Eq > ( v : & [ T ] , x : & T ) -> Option < uint > {
695
657
v. iter ( ) . position_ ( |y| * x == * y)
@@ -1422,7 +1384,6 @@ impl<'self,T:Eq> ImmutableEqVector<T> for &'self [T] {
1422
1384
#[ allow( missing_doc) ]
1423
1385
pub trait ImmutableCopyableVector < T > {
1424
1386
fn filtered ( & self , f : & fn ( & T ) -> bool ) -> ~[ T ] ;
1425
- fn rfind ( & self , f : & fn ( t : & T ) -> bool ) -> Option < T > ;
1426
1387
fn partitioned ( & self , f : & fn ( & T ) -> bool ) -> ( ~[ T ] , ~[ T ] ) ;
1427
1388
unsafe fn unsafe_get ( & self , elem : uint ) -> T ;
1428
1389
}
@@ -1441,18 +1402,6 @@ impl<'self,T:Copy> ImmutableCopyableVector<T> for &'self [T] {
1441
1402
filtered ( * self , f)
1442
1403
}
1443
1404
1444
- /**
1445
- * Search for the last element that matches a given predicate
1446
- *
1447
- * Apply function `f` to each element of `v` in reverse order. When
1448
- * function `f` returns true then an option containing the element is
1449
- * returned. If `f` matches no elements then none is returned.
1450
- */
1451
- #[ inline]
1452
- fn rfind ( & self , f : & fn ( t : & T ) -> bool ) -> Option < T > {
1453
- rfind ( * self , f)
1454
- }
1455
-
1456
1405
/**
1457
1406
* Partitions the vector into those that satisfies the predicate, and
1458
1407
* those that do not.
@@ -2964,34 +2913,6 @@ mod tests {
2964
2913
assert ! ( position_between( v, 4 u, 4 u, f) . is_none( ) ) ;
2965
2914
}
2966
2915
2967
- #[ test]
2968
- fn test_find_between ( ) {
2969
- assert ! ( find_between( [ ] , 0 u, 0 u, f) . is_none( ) ) ;
2970
-
2971
- fn f ( xy : & ( int , char ) ) -> bool { let ( _x, y) = * xy; y == 'b' }
2972
- let v = ~[ ( 0 , 'a' ) , ( 1 , 'b' ) , ( 2 , 'c' ) , ( 3 , 'b' ) ] ;
2973
-
2974
- assert ! ( find_between( v, 0 u, 0 u, f) . is_none( ) ) ;
2975
- assert ! ( find_between( v, 0 u, 1 u, f) . is_none( ) ) ;
2976
- assert_eq ! ( find_between( v, 0 u, 2 u, f) , Some ( ( 1 , 'b' ) ) ) ;
2977
- assert_eq ! ( find_between( v, 0 u, 3 u, f) , Some ( ( 1 , 'b' ) ) ) ;
2978
- assert_eq ! ( find_between( v, 0 u, 4 u, f) , Some ( ( 1 , 'b' ) ) ) ;
2979
-
2980
- assert ! ( find_between( v, 1 u, 1 u, f) . is_none( ) ) ;
2981
- assert_eq ! ( find_between( v, 1 u, 2 u, f) , Some ( ( 1 , 'b' ) ) ) ;
2982
- assert_eq ! ( find_between( v, 1 u, 3 u, f) , Some ( ( 1 , 'b' ) ) ) ;
2983
- assert_eq ! ( find_between( v, 1 u, 4 u, f) , Some ( ( 1 , 'b' ) ) ) ;
2984
-
2985
- assert ! ( find_between( v, 2 u, 2 u, f) . is_none( ) ) ;
2986
- assert ! ( find_between( v, 2 u, 3 u, f) . is_none( ) ) ;
2987
- assert_eq ! ( find_between( v, 2 u, 4 u, f) , Some ( ( 3 , 'b' ) ) ) ;
2988
-
2989
- assert ! ( find_between( v, 3 u, 3 u, f) . is_none( ) ) ;
2990
- assert_eq ! ( find_between( v, 3 u, 4 u, f) , Some ( ( 3 , 'b' ) ) ) ;
2991
-
2992
- assert ! ( find_between( v, 4 u, 4 u, f) . is_none( ) ) ;
2993
- }
2994
-
2995
2916
#[ test]
2996
2917
fn test_rposition ( ) {
2997
2918
fn f ( xy : & ( int , char ) ) -> bool { let ( _x, y) = * xy; y == 'b' }
@@ -3030,46 +2951,6 @@ mod tests {
3030
2951
assert ! ( rposition_between( v, 4 u, 4 u, f) . is_none( ) ) ;
3031
2952
}
3032
2953
3033
- #[ test]
3034
- fn test_rfind ( ) {
3035
- assert ! ( rfind( [ ] , f) . is_none( ) ) ;
3036
-
3037
- fn f ( xy : & ( int , char ) ) -> bool { let ( _x, y) = * xy; y == 'b' }
3038
- fn g ( xy : & ( int , char ) ) -> bool { let ( _x, y) = * xy; y == 'd' }
3039
- let v = ~[ ( 0 , 'a' ) , ( 1 , 'b' ) , ( 2 , 'c' ) , ( 3 , 'b' ) ] ;
3040
-
3041
- assert_eq ! ( rfind( v, f) , Some ( ( 3 , 'b' ) ) ) ;
3042
- assert ! ( rfind( v, g) . is_none( ) ) ;
3043
- }
3044
-
3045
- #[ test]
3046
- fn test_rfind_between ( ) {
3047
- assert ! ( rfind_between( [ ] , 0 u, 0 u, f) . is_none( ) ) ;
3048
-
3049
- fn f ( xy : & ( int , char ) ) -> bool { let ( _x, y) = * xy; y == 'b' }
3050
- let v = ~[ ( 0 , 'a' ) , ( 1 , 'b' ) , ( 2 , 'c' ) , ( 3 , 'b' ) ] ;
3051
-
3052
- assert ! ( rfind_between( v, 0 u, 0 u, f) . is_none( ) ) ;
3053
- assert ! ( rfind_between( v, 0 u, 1 u, f) . is_none( ) ) ;
3054
- assert_eq ! ( rfind_between( v, 0 u, 2 u, f) , Some ( ( 1 , 'b' ) ) ) ;
3055
- assert_eq ! ( rfind_between( v, 0 u, 3 u, f) , Some ( ( 1 , 'b' ) ) ) ;
3056
- assert_eq ! ( rfind_between( v, 0 u, 4 u, f) , Some ( ( 3 , 'b' ) ) ) ;
3057
-
3058
- assert ! ( rfind_between( v, 1 u, 1 u, f) . is_none( ) ) ;
3059
- assert_eq ! ( rfind_between( v, 1 u, 2 u, f) , Some ( ( 1 , 'b' ) ) ) ;
3060
- assert_eq ! ( rfind_between( v, 1 u, 3 u, f) , Some ( ( 1 , 'b' ) ) ) ;
3061
- assert_eq ! ( rfind_between( v, 1 u, 4 u, f) , Some ( ( 3 , 'b' ) ) ) ;
3062
-
3063
- assert ! ( rfind_between( v, 2 u, 2 u, f) . is_none( ) ) ;
3064
- assert ! ( rfind_between( v, 2 u, 3 u, f) . is_none( ) ) ;
3065
- assert_eq ! ( rfind_between( v, 2 u, 4 u, f) , Some ( ( 3 , 'b' ) ) ) ;
3066
-
3067
- assert ! ( rfind_between( v, 3 u, 3 u, f) . is_none( ) ) ;
3068
- assert_eq ! ( rfind_between( v, 3 u, 4 u, f) , Some ( ( 3 , 'b' ) ) ) ;
3069
-
3070
- assert ! ( rfind_between( v, 4 u, 4 u, f) . is_none( ) ) ;
3071
- }
3072
-
3073
2954
#[ test]
3074
2955
fn test_bsearch_elem ( ) {
3075
2956
assert_eq ! ( bsearch_elem( [ 1 , 2 , 3 , 4 , 5 ] , & 5 ) , Some ( 4 ) ) ;
0 commit comments