@@ -13,12 +13,11 @@ use core::fmt::Debug;
13
13
use core:: hash:: { Hash , Hasher } ;
14
14
use core:: iter:: { FromIterator , Peekable , FusedIterator } ;
15
15
use core:: marker:: PhantomData ;
16
- use core:: ops:: Index ;
16
+ use core:: ops:: { Index , RangeBounds } ;
17
+ use core:: ops:: Bound :: { Excluded , Included , Unbounded } ;
17
18
use core:: { fmt, intrinsics, mem, ptr} ;
18
19
19
20
use borrow:: Borrow ;
20
- use Bound :: { Excluded , Included , Unbounded } ;
21
- use range:: RangeArgument ;
22
21
23
22
use super :: node:: { self , Handle , NodeRef , marker} ;
24
23
use super :: search;
@@ -790,11 +789,11 @@ impl<K: Ord, V> BTreeMap<K, V> {
790
789
/// ```
791
790
#[ stable( feature = "btree_range" , since = "1.17.0" ) ]
792
791
pub fn range < T : ?Sized , R > ( & self , range : R ) -> Range < K , V >
793
- where T : Ord , K : Borrow < T > , R : RangeArgument < T >
792
+ where T : Ord , K : Borrow < T > , R : Into < RangeBounds < T > >
794
793
{
795
794
let root1 = self . root . as_ref ( ) ;
796
795
let root2 = self . root . as_ref ( ) ;
797
- let ( f, b) = range_search ( root1, root2, range) ;
796
+ let ( f, b) = range_search ( root1, root2, range. into ( ) ) ;
798
797
799
798
Range { front : f, back : b}
800
799
}
@@ -830,11 +829,11 @@ impl<K: Ord, V> BTreeMap<K, V> {
830
829
/// ```
831
830
#[ stable( feature = "btree_range" , since = "1.17.0" ) ]
832
831
pub fn range_mut < T : ?Sized , R > ( & mut self , range : R ) -> RangeMut < K , V >
833
- where T : Ord , K : Borrow < T > , R : RangeArgument < T >
832
+ where T : Ord , K : Borrow < T > , R : Into < RangeBounds < T > >
834
833
{
835
834
let root1 = self . root . as_mut ( ) ;
836
835
let root2 = unsafe { ptr:: read ( & root1) } ;
837
- let ( f, b) = range_search ( root1, root2, range) ;
836
+ let ( f, b) = range_search ( root1, root2, range. into ( ) ) ;
838
837
839
838
RangeMut {
840
839
front : f,
@@ -1780,15 +1779,15 @@ fn last_leaf_edge<BorrowType, K, V>
1780
1779
}
1781
1780
}
1782
1781
1783
- fn range_search < BorrowType , K , V , Q : ?Sized , R : RangeArgument < Q > > (
1782
+ fn range_search < BorrowType , K , V , Q : ?Sized > (
1784
1783
root1 : NodeRef < BorrowType , K , V , marker:: LeafOrInternal > ,
1785
1784
root2 : NodeRef < BorrowType , K , V , marker:: LeafOrInternal > ,
1786
- range : R
1785
+ range : RangeBounds < & Q >
1787
1786
) -> ( Handle < NodeRef < BorrowType , K , V , marker:: Leaf > , marker:: Edge > ,
1788
1787
Handle < NodeRef < BorrowType , K , V , marker:: Leaf > , marker:: Edge > )
1789
1788
where Q : Ord , K : Borrow < Q >
1790
1789
{
1791
- match ( range. start ( ) , range. end ( ) ) {
1790
+ match ( range. start , range. end ) {
1792
1791
( Excluded ( s) , Excluded ( e) ) if s==e =>
1793
1792
panic ! ( "range start and end are equal and excluded in BTreeMap" ) ,
1794
1793
( Included ( s) , Included ( e) ) |
0 commit comments