implement FusedIterator for all HeaderMap iterators (#318)

Increases minium Rust version to 1.26, when FusedIterator was
stabilized.
This commit is contained in:
Sean McArthur
2019-05-30 14:18:23 -07:00
parent 0cd6f5b118
commit 20d04ade1c
2 changed files with 22 additions and 3 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ matrix:
- rustup target add wasm32-unknown-unknown
- cargo build --target=wasm32-unknown-unknown
# minimum rustc version
- rust: 1.20.0
- rust: 1.26.0
script: cargo build
script:
+21 -2
View File
@@ -1,8 +1,8 @@
use std::{fmt, mem, ops, ptr, vec};
use std::collections::hash_map::RandomState;
use std::collections::HashMap;
use std::hash::{BuildHasher, Hash, Hasher};
use std::iter::FromIterator;
use std::hash::{BuildHasher, Hasher, Hash};
use std::iter::{FromIterator, FusedIterator};
use std::marker::PhantomData;
use convert::{HttpTryFrom, HttpTryInto};
@@ -2039,6 +2039,8 @@ impl<'a, T> Iterator for Iter<'a, T> {
}
}
impl<'a, T> FusedIterator for Iter<'a, T> {}
unsafe impl<'a, T: Sync> Sync for Iter<'a, T> {}
unsafe impl<'a, T: Sync> Send for Iter<'a, T> {}
@@ -2100,6 +2102,8 @@ impl<'a, T> Iterator for IterMut<'a, T> {
}
}
impl<'a, T> FusedIterator for IterMut<'a, T> {}
unsafe impl<'a, T: Sync> Sync for IterMut<'a, T> {}
unsafe impl<'a, T: Send> Send for IterMut<'a, T> {}
@@ -2118,6 +2122,7 @@ impl<'a, T> Iterator for Keys<'a, T> {
}
impl<'a, T> ExactSizeIterator for Keys<'a, T> {}
impl<'a, T> FusedIterator for Keys<'a, T> {}
// ===== impl Values ====
@@ -2133,6 +2138,8 @@ impl<'a, T> Iterator for Values<'a, T> {
}
}
impl<'a, T> FusedIterator for Values<'a, T> {}
// ===== impl ValuesMut ====
impl<'a, T> Iterator for ValuesMut<'a, T> {
@@ -2147,6 +2154,8 @@ impl<'a, T> Iterator for ValuesMut<'a, T> {
}
}
impl<'a, T> FusedIterator for ValuesMut<'a, T> {}
// ===== impl Drain =====
impl<'a, T> Iterator for Drain<'a, T> {
@@ -2195,6 +2204,8 @@ impl<'a, T> Iterator for Drain<'a, T> {
}
}
impl<'a, T> FusedIterator for Drain<'a, T> {}
impl<'a, T> Drop for Drain<'a, T> {
fn drop(&mut self) {
for _ in self {}
@@ -2551,6 +2562,8 @@ impl<'a, T: 'a> DoubleEndedIterator for ValueIter<'a, T> {
}
}
impl<'a, T> FusedIterator for ValueIter<'a, T> {}
// ===== impl ValueIterMut =====
impl<'a, T: 'a> Iterator for ValueIterMut<'a, T> {
@@ -2630,6 +2643,8 @@ impl<'a, T: 'a> DoubleEndedIterator for ValueIterMut<'a, T> {
}
}
impl<'a, T> FusedIterator for ValueIterMut<'a, T> {}
unsafe impl<'a, T: Sync> Sync for ValueIterMut<'a, T> {}
unsafe impl<'a, T: Send> Send for ValueIterMut<'a, T> {}
@@ -2670,6 +2685,8 @@ impl<T> Iterator for IntoIter<T> {
}
}
impl<T> FusedIterator for IntoIter<T> {}
impl<T> Drop for IntoIter<T> {
fn drop(&mut self) {
// Ensure the iterator is consumed
@@ -3040,6 +3057,8 @@ impl<'a, T> Iterator for ValueDrain<'a, T> {
}
}
impl<'a, T> FusedIterator for ValueDrain<'a, T> {}
impl<'a, T> Drop for ValueDrain<'a, T> {
fn drop(&mut self) {
while let Some(_) = self.next() {