From 53487a02467ebe8816a3bdf03f16c3db958958a2 Mon Sep 17 00:00:00 2001 From: Huon Wilson Date: Tue, 13 Aug 2013 23:08:14 +1000 Subject: std: Move the iterator param on FromIterator and Extendable to the method. If they are on the trait then it is extremely annoying to use them as generic parameters to a function, e.g. with the iterator param on the trait itself, if one was to pass an Extendable to a function that filled it either from a Range or a Map, one needs to write something like: fn foo> + Extendable>> (e: &mut E, ...) { ... } since using a generic, i.e. `foo, I: Iterator>` means that `foo` takes 2 type parameters, and the caller has to specify them (which doesn't work anyway, as they'll mismatch with the iterators used in `foo` itself). This patch changes it to: fn foo>(e: &mut E, ...) { ... } --- src/libextra/dlist.rs | 9 ++++----- src/libextra/priority_queue.rs | 8 ++++---- src/libextra/ringbuf.rs | 8 ++++---- src/libextra/treemap.rs | 16 ++++++++-------- 4 files changed, 20 insertions(+), 21 deletions(-) (limited to 'src/libextra') diff --git a/src/libextra/dlist.rs b/src/libextra/dlist.rs index 788ed726d0f..076e86dd5b0 100644 --- a/src/libextra/dlist.rs +++ b/src/libextra/dlist.rs @@ -573,16 +573,16 @@ impl DoubleEndedIterator for MoveIterator { fn next_back(&mut self) -> Option { self.list.pop_back() } } -impl> FromIterator for DList { - fn from_iterator(iterator: &mut T) -> DList { +impl FromIterator for DList { + fn from_iterator>(iterator: &mut T) -> DList { let mut ret = DList::new(); ret.extend(iterator); ret } } -impl> Extendable for DList { - fn extend(&mut self, iterator: &mut T) { +impl Extendable for DList { + fn extend>(&mut self, iterator: &mut T) { for elt in *iterator { self.push_back(elt); } } } @@ -1163,4 +1163,3 @@ mod tests { } } } - diff --git a/src/libextra/priority_queue.rs b/src/libextra/priority_queue.rs index 4b94219b30d..4f0fed5fccf 100644 --- a/src/libextra/priority_queue.rs +++ b/src/libextra/priority_queue.rs @@ -190,8 +190,8 @@ impl<'self, T> Iterator<&'self T> for PriorityQueueIterator<'self, T> { fn size_hint(&self) -> (uint, Option) { self.iter.size_hint() } } -impl> FromIterator for PriorityQueue { - fn from_iterator(iter: &mut Iter) -> PriorityQueue { +impl FromIterator for PriorityQueue { + fn from_iterator>(iter: &mut Iter) -> PriorityQueue { let mut q = PriorityQueue::new(); q.extend(iter); @@ -199,8 +199,8 @@ impl> FromIterator for PriorityQueue { } } -impl> Extendable for PriorityQueue { - fn extend(&mut self, iter: &mut Iter) { +impl Extendable for PriorityQueue { + fn extend>(&mut self, iter: &mut Iter) { let (lower, _) = iter.size_hint(); let len = self.capacity(); diff --git a/src/libextra/ringbuf.rs b/src/libextra/ringbuf.rs index bb9ac74bc77..a38cb580c50 100644 --- a/src/libextra/ringbuf.rs +++ b/src/libextra/ringbuf.rs @@ -322,8 +322,8 @@ impl Eq for RingBuf { } } -impl> FromIterator for RingBuf { - fn from_iterator(iterator: &mut T) -> RingBuf { +impl FromIterator for RingBuf { + fn from_iterator>(iterator: &mut T) -> RingBuf { let (lower, _) = iterator.size_hint(); let mut deq = RingBuf::with_capacity(lower); deq.extend(iterator); @@ -331,8 +331,8 @@ impl> FromIterator for RingBuf { } } -impl> Extendable for RingBuf { - fn extend(&mut self, iterator: &mut T) { +impl Extendable for RingBuf { + fn extend>(&mut self, iterator: &mut T) { for elt in *iterator { self.push_back(elt); } diff --git a/src/libextra/treemap.rs b/src/libextra/treemap.rs index 486a7dab5c1..118754ec028 100644 --- a/src/libextra/treemap.rs +++ b/src/libextra/treemap.rs @@ -835,34 +835,34 @@ fn remove(node: &mut Option<~TreeNode>, }; } -impl> FromIterator<(K, V), T> for TreeMap { - fn from_iterator(iter: &mut T) -> TreeMap { +impl FromIterator<(K, V)> for TreeMap { + fn from_iterator>(iter: &mut T) -> TreeMap { let mut map = TreeMap::new(); map.extend(iter); map } } -impl> Extendable<(K, V), T> for TreeMap { +impl Extendable<(K, V)> for TreeMap { #[inline] - fn extend(&mut self, iter: &mut T) { + fn extend>(&mut self, iter: &mut T) { for (k, v) in *iter { self.insert(k, v); } } } -impl> FromIterator for TreeSet { - fn from_iterator(iter: &mut Iter) -> TreeSet { +impl FromIterator for TreeSet { + fn from_iterator>(iter: &mut Iter) -> TreeSet { let mut set = TreeSet::new(); set.extend(iter); set } } -impl> Extendable for TreeSet { +impl Extendable for TreeSet { #[inline] - fn extend(&mut self, iter: &mut Iter) { + fn extend>(&mut self, iter: &mut Iter) { for elem in *iter { self.insert(elem); } -- cgit 1.4.1-3-g733a5