@@ -136,6 +136,7 @@ pub struct BTreeMap<K, V> {
136
136
length : usize ,
137
137
}
138
138
139
+ #[ stable( feature = "btree_drop" , since = "1.7.0" ) ]
139
140
impl < K , V > Drop for BTreeMap < K , V > {
140
141
#[ unsafe_destructor_blind_to_params]
141
142
fn drop ( & mut self ) {
@@ -146,6 +147,7 @@ impl<K, V> Drop for BTreeMap<K, V> {
146
147
}
147
148
}
148
149
150
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
149
151
impl < K : Clone , V : Clone > Clone for BTreeMap < K , V > {
150
152
fn clone ( & self ) -> BTreeMap < K , V > {
151
153
fn clone_subtree < K : Clone , V : Clone > ( node : node:: NodeRef < marker:: Immut ,
@@ -1125,6 +1127,7 @@ impl<K: Ord, V> BTreeMap<K, V> {
1125
1127
}
1126
1128
}
1127
1129
1130
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1128
1131
impl < ' a , K : ' a , V : ' a > IntoIterator for & ' a BTreeMap < K , V > {
1129
1132
type Item = ( & ' a K , & ' a V ) ;
1130
1133
type IntoIter = Iter < ' a , K , V > ;
@@ -1134,6 +1137,7 @@ impl<'a, K: 'a, V: 'a> IntoIterator for &'a BTreeMap<K, V> {
1134
1137
}
1135
1138
}
1136
1139
1140
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1137
1141
impl < ' a , K : ' a , V : ' a > Iterator for Iter < ' a , K , V > {
1138
1142
type Item = ( & ' a K , & ' a V ) ;
1139
1143
@@ -1154,6 +1158,7 @@ impl<'a, K: 'a, V: 'a> Iterator for Iter<'a, K, V> {
1154
1158
#[ unstable( feature = "fused" , issue = "35602" ) ]
1155
1159
impl < ' a , K , V > FusedIterator for Iter < ' a , K , V > { }
1156
1160
1161
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1157
1162
impl < ' a , K : ' a , V : ' a > DoubleEndedIterator for Iter < ' a , K , V > {
1158
1163
fn next_back ( & mut self ) -> Option < ( & ' a K , & ' a V ) > {
1159
1164
if self . length == 0 {
@@ -1165,12 +1170,14 @@ impl<'a, K: 'a, V: 'a> DoubleEndedIterator for Iter<'a, K, V> {
1165
1170
}
1166
1171
}
1167
1172
1173
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1168
1174
impl < ' a , K : ' a , V : ' a > ExactSizeIterator for Iter < ' a , K , V > {
1169
1175
fn len ( & self ) -> usize {
1170
1176
self . length
1171
1177
}
1172
1178
}
1173
1179
1180
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1174
1181
impl < ' a , K , V > Clone for Iter < ' a , K , V > {
1175
1182
fn clone ( & self ) -> Iter < ' a , K , V > {
1176
1183
Iter {
@@ -1180,6 +1187,7 @@ impl<'a, K, V> Clone for Iter<'a, K, V> {
1180
1187
}
1181
1188
}
1182
1189
1190
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1183
1191
impl < ' a , K : ' a , V : ' a > IntoIterator for & ' a mut BTreeMap < K , V > {
1184
1192
type Item = ( & ' a K , & ' a mut V ) ;
1185
1193
type IntoIter = IterMut < ' a , K , V > ;
@@ -1189,6 +1197,7 @@ impl<'a, K: 'a, V: 'a> IntoIterator for &'a mut BTreeMap<K, V> {
1189
1197
}
1190
1198
}
1191
1199
1200
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1192
1201
impl < ' a , K : ' a , V : ' a > Iterator for IterMut < ' a , K , V > {
1193
1202
type Item = ( & ' a K , & ' a mut V ) ;
1194
1203
@@ -1206,6 +1215,7 @@ impl<'a, K: 'a, V: 'a> Iterator for IterMut<'a, K, V> {
1206
1215
}
1207
1216
}
1208
1217
1218
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1209
1219
impl < ' a , K : ' a , V : ' a > DoubleEndedIterator for IterMut < ' a , K , V > {
1210
1220
fn next_back ( & mut self ) -> Option < ( & ' a K , & ' a mut V ) > {
1211
1221
if self . length == 0 {
@@ -1217,6 +1227,7 @@ impl<'a, K: 'a, V: 'a> DoubleEndedIterator for IterMut<'a, K, V> {
1217
1227
}
1218
1228
}
1219
1229
1230
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1220
1231
impl < ' a , K : ' a , V : ' a > ExactSizeIterator for IterMut < ' a , K , V > {
1221
1232
fn len ( & self ) -> usize {
1222
1233
self . length
@@ -1226,6 +1237,7 @@ impl<'a, K: 'a, V: 'a> ExactSizeIterator for IterMut<'a, K, V> {
1226
1237
#[ unstable( feature = "fused" , issue = "35602" ) ]
1227
1238
impl < ' a , K , V > FusedIterator for IterMut < ' a , K , V > { }
1228
1239
1240
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1229
1241
impl < K , V > IntoIterator for BTreeMap < K , V > {
1230
1242
type Item = ( K , V ) ;
1231
1243
type IntoIter = IntoIter < K , V > ;
@@ -1244,6 +1256,7 @@ impl<K, V> IntoIterator for BTreeMap<K, V> {
1244
1256
}
1245
1257
}
1246
1258
1259
+ #[ stable( feature = "btree_drop" , since = "1.7.0" ) ]
1247
1260
impl < K , V > Drop for IntoIter < K , V > {
1248
1261
fn drop ( & mut self ) {
1249
1262
for _ in & mut * self {
@@ -1260,6 +1273,7 @@ impl<K, V> Drop for IntoIter<K, V> {
1260
1273
}
1261
1274
}
1262
1275
1276
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1263
1277
impl < K , V > Iterator for IntoIter < K , V > {
1264
1278
type Item = ( K , V ) ;
1265
1279
@@ -1304,6 +1318,7 @@ impl<K, V> Iterator for IntoIter<K, V> {
1304
1318
}
1305
1319
}
1306
1320
1321
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1307
1322
impl < K , V > DoubleEndedIterator for IntoIter < K , V > {
1308
1323
fn next_back ( & mut self ) -> Option < ( K , V ) > {
1309
1324
if self . length == 0 {
@@ -1342,6 +1357,7 @@ impl<K, V> DoubleEndedIterator for IntoIter<K, V> {
1342
1357
}
1343
1358
}
1344
1359
1360
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1345
1361
impl < K , V > ExactSizeIterator for IntoIter < K , V > {
1346
1362
fn len ( & self ) -> usize {
1347
1363
self . length
@@ -1351,6 +1367,7 @@ impl<K, V> ExactSizeIterator for IntoIter<K, V> {
1351
1367
#[ unstable( feature = "fused" , issue = "35602" ) ]
1352
1368
impl < K , V > FusedIterator for IntoIter < K , V > { }
1353
1369
1370
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1354
1371
impl < ' a , K , V > Iterator for Keys < ' a , K , V > {
1355
1372
type Item = & ' a K ;
1356
1373
@@ -1363,12 +1380,14 @@ impl<'a, K, V> Iterator for Keys<'a, K, V> {
1363
1380
}
1364
1381
}
1365
1382
1383
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1366
1384
impl < ' a , K , V > DoubleEndedIterator for Keys < ' a , K , V > {
1367
1385
fn next_back ( & mut self ) -> Option < & ' a K > {
1368
1386
self . inner . next_back ( ) . map ( |( k, _) | k)
1369
1387
}
1370
1388
}
1371
1389
1390
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1372
1391
impl < ' a , K , V > ExactSizeIterator for Keys < ' a , K , V > {
1373
1392
fn len ( & self ) -> usize {
1374
1393
self . inner . len ( )
@@ -1378,12 +1397,14 @@ impl<'a, K, V> ExactSizeIterator for Keys<'a, K, V> {
1378
1397
#[ unstable( feature = "fused" , issue = "35602" ) ]
1379
1398
impl < ' a , K , V > FusedIterator for Keys < ' a , K , V > { }
1380
1399
1400
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1381
1401
impl < ' a , K , V > Clone for Keys < ' a , K , V > {
1382
1402
fn clone ( & self ) -> Keys < ' a , K , V > {
1383
1403
Keys { inner : self . inner . clone ( ) }
1384
1404
}
1385
1405
}
1386
1406
1407
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1387
1408
impl < ' a , K , V > Iterator for Values < ' a , K , V > {
1388
1409
type Item = & ' a V ;
1389
1410
@@ -1396,12 +1417,14 @@ impl<'a, K, V> Iterator for Values<'a, K, V> {
1396
1417
}
1397
1418
}
1398
1419
1420
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1399
1421
impl < ' a , K , V > DoubleEndedIterator for Values < ' a , K , V > {
1400
1422
fn next_back ( & mut self ) -> Option < & ' a V > {
1401
1423
self . inner . next_back ( ) . map ( |( _, v) | v)
1402
1424
}
1403
1425
}
1404
1426
1427
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1405
1428
impl < ' a , K , V > ExactSizeIterator for Values < ' a , K , V > {
1406
1429
fn len ( & self ) -> usize {
1407
1430
self . inner . len ( )
@@ -1411,6 +1434,7 @@ impl<'a, K, V> ExactSizeIterator for Values<'a, K, V> {
1411
1434
#[ unstable( feature = "fused" , issue = "35602" ) ]
1412
1435
impl < ' a , K , V > FusedIterator for Values < ' a , K , V > { }
1413
1436
1437
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1414
1438
impl < ' a , K , V > Clone for Values < ' a , K , V > {
1415
1439
fn clone ( & self ) -> Values < ' a , K , V > {
1416
1440
Values { inner : self . inner . clone ( ) }
@@ -1635,6 +1659,7 @@ impl<'a, K, V> RangeMut<'a, K, V> {
1635
1659
}
1636
1660
}
1637
1661
1662
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1638
1663
impl < K : Ord , V > FromIterator < ( K , V ) > for BTreeMap < K , V > {
1639
1664
fn from_iter < T : IntoIterator < Item = ( K , V ) > > ( iter : T ) -> BTreeMap < K , V > {
1640
1665
let mut map = BTreeMap :: new ( ) ;
@@ -1643,6 +1668,7 @@ impl<K: Ord, V> FromIterator<(K, V)> for BTreeMap<K, V> {
1643
1668
}
1644
1669
}
1645
1670
1671
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1646
1672
impl < K : Ord , V > Extend < ( K , V ) > for BTreeMap < K , V > {
1647
1673
#[ inline]
1648
1674
fn extend < T : IntoIterator < Item = ( K , V ) > > ( & mut self , iter : T ) {
@@ -1652,12 +1678,14 @@ impl<K: Ord, V> Extend<(K, V)> for BTreeMap<K, V> {
1652
1678
}
1653
1679
}
1654
1680
1681
+ #[ stable( feature = "extend_ref" , since = "1.2.0" ) ]
1655
1682
impl < ' a , K : Ord + Copy , V : Copy > Extend < ( & ' a K , & ' a V ) > for BTreeMap < K , V > {
1656
1683
fn extend < I : IntoIterator < Item = ( & ' a K , & ' a V ) > > ( & mut self , iter : I ) {
1657
1684
self . extend ( iter. into_iter ( ) . map ( |( & key, & value) | ( key, value) ) ) ;
1658
1685
}
1659
1686
}
1660
1687
1688
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1661
1689
impl < K : Hash , V : Hash > Hash for BTreeMap < K , V > {
1662
1690
fn hash < H : Hasher > ( & self , state : & mut H ) {
1663
1691
for elt in self {
@@ -1666,41 +1694,48 @@ impl<K: Hash, V: Hash> Hash for BTreeMap<K, V> {
1666
1694
}
1667
1695
}
1668
1696
1697
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1669
1698
impl < K : Ord , V > Default for BTreeMap < K , V > {
1670
1699
/// Creates an empty `BTreeMap<K, V>`.
1671
1700
fn default ( ) -> BTreeMap < K , V > {
1672
1701
BTreeMap :: new ( )
1673
1702
}
1674
1703
}
1675
1704
1705
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1676
1706
impl < K : PartialEq , V : PartialEq > PartialEq for BTreeMap < K , V > {
1677
1707
fn eq ( & self , other : & BTreeMap < K , V > ) -> bool {
1678
1708
self . len ( ) == other. len ( ) && self . iter ( ) . zip ( other) . all ( |( a, b) | a == b)
1679
1709
}
1680
1710
}
1681
1711
1712
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1682
1713
impl < K : Eq , V : Eq > Eq for BTreeMap < K , V > { }
1683
1714
1715
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1684
1716
impl < K : PartialOrd , V : PartialOrd > PartialOrd for BTreeMap < K , V > {
1685
1717
#[ inline]
1686
1718
fn partial_cmp ( & self , other : & BTreeMap < K , V > ) -> Option < Ordering > {
1687
1719
self . iter ( ) . partial_cmp ( other. iter ( ) )
1688
1720
}
1689
1721
}
1690
1722
1723
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1691
1724
impl < K : Ord , V : Ord > Ord for BTreeMap < K , V > {
1692
1725
#[ inline]
1693
1726
fn cmp ( & self , other : & BTreeMap < K , V > ) -> Ordering {
1694
1727
self . iter ( ) . cmp ( other. iter ( ) )
1695
1728
}
1696
1729
}
1697
1730
1731
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1698
1732
impl < K : Debug , V : Debug > Debug for BTreeMap < K , V > {
1699
1733
fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
1700
1734
f. debug_map ( ) . entries ( self . iter ( ) ) . finish ( )
1701
1735
}
1702
1736
}
1703
1737
1738
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1704
1739
impl < ' a , K : Ord , Q : ?Sized , V > Index < & ' a Q > for BTreeMap < K , V >
1705
1740
where K : Borrow < Q > ,
1706
1741
Q : Ord
0 commit comments