auto merge of #11479 : khodzha/rust/peekable_empty, r=brson

to fix https://github.com/mozilla/rust/issues/11218
This commit is contained in:
bors 2014-01-17 06:32:01 -08:00
commit 1e1871f35e

View File

@ -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<A>> Peekable<A, T> {
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() );
}
}