Merge pull request #26 from Binero/master

Added ExactSizeIterator support.
This commit is contained in:
bluss
2017-08-01 20:35:49 +02:00
committed by GitHub
+37
View File
@@ -1209,6 +1209,12 @@ impl<'a, K, V> DoubleEndedIterator for Keys<'a, K, V> {
}
}
impl<'a, K, V> ExactSizeIterator for Keys<'a, K, V> {
fn len(&self) -> usize {
self.iter.len()
}
}
pub struct Values<'a, K: 'a, V: 'a> {
iter: SliceIter<'a, Bucket<K, V>>,
}
@@ -1243,6 +1249,12 @@ impl<'a, K, V> DoubleEndedIterator for Values<'a, K, V> {
}
}
impl<'a, K, V> ExactSizeIterator for Values<'a, K, V> {
fn len(&self) -> usize {
self.iter.len()
}
}
pub struct ValuesMut<'a, K: 'a, V: 'a> {
iter: SliceIterMut<'a, Bucket<K, V>>,
}
@@ -1277,6 +1289,12 @@ impl<'a, K, V> DoubleEndedIterator for ValuesMut<'a, K, V> {
}
}
impl<'a, K, V> ExactSizeIterator for ValuesMut<'a, K, V> {
fn len(&self) -> usize {
self.iter.len()
}
}
pub struct Iter<'a, K: 'a, V: 'a> {
iter: SliceIter<'a, Bucket<K, V>>,
}
@@ -1311,6 +1329,12 @@ impl<'a, K, V> DoubleEndedIterator for Iter<'a, K, V> {
}
}
impl<'a, K, V> ExactSizeIterator for Iter<'a, K, V> {
fn len(&self) -> usize {
self.iter.len()
}
}
pub struct IterMut<'a, K: 'a, V: 'a> {
iter: SliceIterMut<'a, Bucket<K, V>>,
}
@@ -1345,6 +1369,12 @@ impl<'a, K, V> DoubleEndedIterator for IterMut<'a, K, V> {
}
}
impl<'a, K, V> ExactSizeIterator for IterMut<'a, K, V> {
fn len(&self) -> usize {
self.iter.len()
}
}
pub struct IntoIter<K, V> {
iter: VecIntoIter<Bucket<K, V>>,
}
@@ -1379,6 +1409,13 @@ impl<'a, K, V> DoubleEndedIterator for IntoIter<K, V> {
}
}
impl<K, V> ExactSizeIterator for IntoIter<K, V> {
fn len(&self) -> usize {
self.iter.len()
}
}
impl<'a, K, V, S> IntoIterator for &'a OrderMap<K, V, S>
where K: Hash + Eq,
S: BuildHasher,