impl IntoIterator for HashMap
This commit is contained in:
parent
134cf707df
commit
afabb022b0
|
@ -20,7 +20,7 @@ use cmp::{max, Eq, PartialEq};
|
||||||
use default::Default;
|
use default::Default;
|
||||||
use fmt::{self, Debug};
|
use fmt::{self, Debug};
|
||||||
use hash::{self, Hash, SipHasher};
|
use hash::{self, Hash, SipHasher};
|
||||||
use iter::{self, Iterator, ExactSizeIterator, IteratorExt, FromIterator, Extend, Map};
|
use iter::{self, Iterator, ExactSizeIterator, IntoIterator, IteratorExt, FromIterator, Extend, Map};
|
||||||
use marker::Sized;
|
use marker::Sized;
|
||||||
use mem::{self, replace};
|
use mem::{self, replace};
|
||||||
use num::{Int, UnsignedInt};
|
use num::{Int, UnsignedInt};
|
||||||
|
@ -1385,6 +1385,42 @@ enum VacantEntryState<K, V, M> {
|
||||||
NoElem(EmptyBucket<K, V, M>),
|
NoElem(EmptyBucket<K, V, M>),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<'a, K, V, S, H> IntoIterator for &'a HashMap<K, V, S>
|
||||||
|
where K: Eq + Hash<H>,
|
||||||
|
S: HashState<Hasher=H>,
|
||||||
|
H: hash::Hasher<Output=u64>
|
||||||
|
{
|
||||||
|
type Iter = Iter<'a, K, V>;
|
||||||
|
|
||||||
|
fn into_iter(self) -> Iter<'a, K, V> {
|
||||||
|
self.iter()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a, K, V, S, H> IntoIterator for &'a mut HashMap<K, V, S>
|
||||||
|
where K: Eq + Hash<H>,
|
||||||
|
S: HashState<Hasher=H>,
|
||||||
|
H: hash::Hasher<Output=u64>
|
||||||
|
{
|
||||||
|
type Iter = IterMut<'a, K, V>;
|
||||||
|
|
||||||
|
fn into_iter(mut self) -> IterMut<'a, K, V> {
|
||||||
|
self.iter_mut()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<K, V, S, H> IntoIterator for HashMap<K, V, S>
|
||||||
|
where K: Eq + Hash<H>,
|
||||||
|
S: HashState<Hasher=H>,
|
||||||
|
H: hash::Hasher<Output=u64>
|
||||||
|
{
|
||||||
|
type Iter = IntoIter<K, V>;
|
||||||
|
|
||||||
|
fn into_iter(mut self) -> IntoIter<K, V> {
|
||||||
|
self.into_iter()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
impl<'a, K, V> Iterator for Iter<'a, K, V> {
|
impl<'a, K, V> Iterator for Iter<'a, K, V> {
|
||||||
type Item = (&'a K, &'a V);
|
type Item = (&'a K, &'a V);
|
||||||
|
|
Loading…
Reference in New Issue