about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorKevin Ballard <kevin@sb.org>2013-08-21 13:58:00 -0700
committerKevin Ballard <kevin@sb.org>2013-08-22 15:36:29 -0700
commit77a3de3b95e74b50a1b62ac80ca90b3cf832f8d7 (patch)
tree1eda938f14be2e870c24750e8da6ae6d84d1a1fb /src/libstd
parent063a005459a3ece4022e1fdb6400548c7ad2358e (diff)
downloadrust-77a3de3b95e74b50a1b62ac80ca90b3cf832f8d7.tar.gz
rust-77a3de3b95e74b50a1b62ac80ca90b3cf832f8d7.zip
Implement size_hint() on RangeInclusive
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/iterator.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/libstd/iterator.rs b/src/libstd/iterator.rs
index c2d2e62a3c8..1af49ecd208 100644
--- a/src/libstd/iterator.rs
+++ b/src/libstd/iterator.rs
@@ -1592,6 +1592,21 @@ impl<A: Add<A, A> + Ord + Clone> Iterator<A> for RangeInclusive<A> {
             }
         }
     }
+
+    #[inline]
+    fn size_hint(&self) -> (uint, Option<uint>) {
+        let (lo, hi) = self.range.size_hint();
+        if self.done {
+            (lo, hi)
+        } else {
+            let lo = lo.saturating_add(1);
+            let hi = match hi {
+                Some(x) => x.checked_add(&1),
+                None => None
+            };
+            (lo, hi)
+        }
+    }
 }
 
 impl<A: Sub<A, A> + Integer + Ord + Clone> DoubleEndedIterator<A> for RangeInclusive<A> {