about summary refs log tree commit diff
diff options
context:
space:
mode:
authordjzin <noreply@github.com>2016-12-23 23:51:00 +0000
committerdjzin <noreply@github.com>2017-01-14 16:51:50 +0000
commit18f1b1fce4a57f35dc7f436f4c86158b61bb4482 (patch)
treedb22198ee4f3a4fae0e1f5e955aa88808ffb21d7
parent3711d2f9029126bfc5410fc273ff9f9f66d6e0a5 (diff)
downloadrust-18f1b1fce4a57f35dc7f436f4c86158b61bb4482.tar.gz
rust-18f1b1fce4a57f35dc7f436f4c86158b61bb4482.zip
change argument for btree_range
-rw-r--r--src/libcollections/btree/map.rs10
-rw-r--r--src/libcollections/btree/set.rs11
2 files changed, 9 insertions, 12 deletions
diff --git a/src/libcollections/btree/map.rs b/src/libcollections/btree/map.rs
index 85e1e133b7d..e588c99d169 100644
--- a/src/libcollections/btree/map.rs
+++ b/src/libcollections/btree/map.rs
@@ -18,6 +18,7 @@ use core::{fmt, intrinsics, mem, ptr};
 
 use borrow::Borrow;
 use Bound::{self, Excluded, Included, Unbounded};
+use range::RangeArgument;
 
 use super::node::{self, Handle, NodeRef, marker};
 use super::search;
@@ -681,12 +682,11 @@ impl<K: Ord, V> BTreeMap<K, V> {
     #[unstable(feature = "btree_range",
                reason = "matches collection reform specification, waiting for dust to settle",
                issue = "27787")]
-    pub fn range<Min: ?Sized + Ord, Max: ?Sized + Ord>(&self,
-                                                       min: Bound<&Min>,
-                                                       max: Bound<&Max>)
-                                                       -> Range<K, V>
-        where K: Borrow<Min> + Borrow<Max>
+    pub fn range<T: ?Sized, R>(&self, range: R) -> Range<K, V>
+        where T: Ord, K: Borrow<T>, R: RangeArgument<T>
     {
+        let min = range.start();
+        let max = range.end();
         let front = match min {
             Included(key) => {
                 match search::search_tree(self.root.as_ref(), key) {
diff --git a/src/libcollections/btree/set.rs b/src/libcollections/btree/set.rs
index 34674e3a0bd..f941b40dcf7 100644
--- a/src/libcollections/btree/set.rs
+++ b/src/libcollections/btree/set.rs
@@ -21,7 +21,7 @@ use core::ops::{BitOr, BitAnd, BitXor, Sub};
 use borrow::Borrow;
 use btree_map::{BTreeMap, Keys};
 use super::Recover;
-use Bound;
+use range::RangeArgument;
 
 // FIXME(conventions): implement bounded iterators
 
@@ -232,13 +232,10 @@ impl<T: Ord> BTreeSet<T> {
     #[unstable(feature = "btree_range",
                reason = "matches collection reform specification, waiting for dust to settle",
                issue = "27787")]
-    pub fn range<'a, Min: ?Sized + Ord, Max: ?Sized + Ord>(&'a self,
-                                                           min: Bound<&Min>,
-                                                           max: Bound<&Max>)
-                                                           -> Range<'a, T>
-        where T: Borrow<Min> + Borrow<Max>
+    pub fn range<K: ?Sized, R>(&self, range: R) -> Range<T>
+        where K: Ord, T: Borrow<K>, R: RangeArgument<K>
     {
-        Range { iter: self.map.range(min, max) }
+        Range { iter: self.map.range(range) }
     }
 }