diff --git a/src/libstd/iter.rs b/src/libstd/iter.rs
index 2056f8b33ec1d..fcf0f4f24443c 100644
--- a/src/libstd/iter.rs
+++ b/src/libstd/iter.rs
@@ -1,4 +1,4 @@
-// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
+// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
@@ -1362,6 +1362,12 @@ impl<'a, A, T: Iterator> Peekable {
None => None,
}
}
+
+ /// Check whether peekable iterator is empty or not.
+ #[inline]
+ pub fn is_empty(&mut self) -> bool {
+ self.peek().is_some()
+ }
}
/// An iterator which rejects elements while `predicate` is true
@@ -2923,4 +2929,12 @@ mod tests {
ys.mut_iter().reverse_();
assert_eq!(ys, [5, 4, 3, 2, 1]);
}
+
+ fn test_peekable_is_empty() {
+ let a = [1];
+ let mut it = a.iter().peekable();
+ assert!( !it.is_empty() );
+ it.next();
+ assert!( it.is_empty() );
+ }
}