diff options
Diffstat (limited to 'src/libstd/deque.rs')
| -rw-r--r-- | src/libstd/deque.rs | 16 | 
1 files changed, 13 insertions, 3 deletions
| diff --git a/src/libstd/deque.rs b/src/libstd/deque.rs index 4c7f2edc6b0..4eb359e48a8 100644 --- a/src/libstd/deque.rs +++ b/src/libstd/deque.rs @@ -63,15 +63,25 @@ pub impl<T> Deque<T> { } /// Iterate over the elements in the deque + #[cfg(stage0)] fn each(&self, f: &fn(&T) -> bool) { self.eachi(|_i, e| f(e)) } + /// Iterate over the elements in the deque + #[cfg(not(stage0))] + fn each(&self, f: &fn(&T) -> bool) -> bool { + self.eachi(|_i, e| f(e)) + } /// Iterate over the elements in the deque by index + #[cfg(stage0)] fn eachi(&self, f: &fn(uint, &T) -> bool) { - for uint::range(0, self.nelts) |i| { - if !f(i, self.get(i as int)) { return; } - } + uint::range(0, self.nelts, |i| f(i, self.get(i as int))) + } + /// Iterate over the elements in the deque by index + #[cfg(not(stage0))] + fn eachi(&self, f: &fn(uint, &T) -> bool) -> bool { + uint::range(0, self.nelts, |i| f(i, self.get(i as int))) } /// Remove and return the first element in the deque | 
