diff --git a/.travis.yml b/.travis.yml index 053ba1f..0a037ee 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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: diff --git a/src/header/map.rs b/src/header/map.rs index 2bb62b5..a0f3fad 100644 --- a/src/header/map.rs +++ b/src/header/map.rs @@ -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 Iterator for IntoIter { } } +impl FusedIterator for IntoIter {} + impl Drop for IntoIter { 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() {