@@ -20,7 +20,7 @@ use cmp::{max, Eq, PartialEq};
20
20
use default:: Default ;
21
21
use fmt:: { self , Debug } ;
22
22
use hash:: { self , Hash , SipHasher } ;
23
- use iter:: { self , Iterator , ExactSizeIterator , IteratorExt , FromIterator , Extend , Map } ;
23
+ use iter:: { self , Iterator , ExactSizeIterator , IntoIterator , IteratorExt , FromIterator , Extend , Map } ;
24
24
use marker:: Sized ;
25
25
use mem:: { self , replace} ;
26
26
use num:: { Int , UnsignedInt } ;
@@ -1385,6 +1385,42 @@ enum VacantEntryState<K, V, M> {
1385
1385
NoElem ( EmptyBucket < K , V , M > ) ,
1386
1386
}
1387
1387
1388
+ impl < ' a , K , V , S , H > IntoIterator for & ' a HashMap < K , V , S >
1389
+ where K : Eq + Hash < H > ,
1390
+ S : HashState < Hasher =H > ,
1391
+ H : hash:: Hasher < Output =u64 >
1392
+ {
1393
+ type Iter = Iter < ' a , K , V > ;
1394
+
1395
+ fn into_iter ( self ) -> Iter < ' a , K , V > {
1396
+ self . iter ( )
1397
+ }
1398
+ }
1399
+
1400
+ impl < ' a , K , V , S , H > IntoIterator for & ' a mut HashMap < K , V , S >
1401
+ where K : Eq + Hash < H > ,
1402
+ S : HashState < Hasher =H > ,
1403
+ H : hash:: Hasher < Output =u64 >
1404
+ {
1405
+ type Iter = IterMut < ' a , K , V > ;
1406
+
1407
+ fn into_iter ( mut self ) -> IterMut < ' a , K , V > {
1408
+ self . iter_mut ( )
1409
+ }
1410
+ }
1411
+
1412
+ impl < K , V , S , H > IntoIterator for HashMap < K , V , S >
1413
+ where K : Eq + Hash < H > ,
1414
+ S : HashState < Hasher =H > ,
1415
+ H : hash:: Hasher < Output =u64 >
1416
+ {
1417
+ type Iter = IntoIter < K , V > ;
1418
+
1419
+ fn into_iter ( mut self ) -> IntoIter < K , V > {
1420
+ self . into_iter ( )
1421
+ }
1422
+ }
1423
+
1388
1424
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
1389
1425
impl < ' a , K , V > Iterator for Iter < ' a , K , V > {
1390
1426
type Item = ( & ' a K , & ' a V ) ;
0 commit comments