Skip to content

Commit e1bff77

Browse files
committed
---
yaml --- r: 42383 b: refs/heads/master c: fe841f3 h: refs/heads/master i: 42381: 05b1ad1 42379: 9880add 42375: a07b00a 42367: 5530c1c v: v3
1 parent 3f0b4ac commit e1bff77

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: a2f922f28264547429ca8abd064623be272c8f3b
2+
refs/heads/master: fe841f3e56291f2b1521fb124fcf9277b931c53f
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 2f46b763da2c098913884f101b6d71d69af41b49
55
refs/heads/try: 3d5418789064fdb463e872a4e651af1c628a3650

trunk/src/libstd/smallintmap.rs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
*/
1515

1616
use core::container::{Container, Mutable, Map, Set};
17-
use core::iter::BaseIter;
17+
use core::iter::{BaseIter, ReverseIter};
1818
use core::option::{Some, None};
1919
use core::prelude::*;
2020

@@ -36,6 +36,18 @@ impl<V> SmallIntMap<V>: BaseIter<(uint, &V)> {
3636
pure fn size_hint(&self) -> Option<uint> { Some(self.len()) }
3737
}
3838

39+
impl<V> SmallIntMap<V>: ReverseIter<(uint, &V)> {
40+
/// Visit all key-value pairs in reverse order
41+
pure fn each_reverse(&self, it: fn(&(uint, &self/V)) -> bool) {
42+
for uint::range_rev(self.v.len(), 0) |i| {
43+
match self.v[i - 1] {
44+
Some(ref elt) => if !it(&(i - 1, elt)) { break },
45+
None => ()
46+
}
47+
}
48+
}
49+
}
50+
3951
impl<V> SmallIntMap<V>: Container {
4052
/// Return the number of elements in the map
4153
pure fn len(&self) -> uint {

0 commit comments

Comments
 (0)