Rollup merge of #84328 - Folyd:stablize_map_into_keys_values, r=m-ou-se
Stablize {HashMap,BTreeMap}::into_{keys,values} I would propose to stabilize `{HashMap,BTreeMap}::into_{keys,values}`( aka. `map_into_keys_values`). Closes #75294.
This commit is contained in:
commit
6a6c644016
@ -398,12 +398,12 @@ impl<K, V: fmt::Debug> fmt::Debug for ValuesMut<'_, K, V> {
|
||||
/// See its documentation for more.
|
||||
///
|
||||
/// [`into_keys`]: BTreeMap::into_keys
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
pub struct IntoKeys<K, V> {
|
||||
inner: IntoIter<K, V>,
|
||||
}
|
||||
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K: fmt::Debug, V> fmt::Debug for IntoKeys<K, V> {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
f.debug_list().entries(self.inner.iter().map(|(key, _)| key)).finish()
|
||||
@ -416,12 +416,12 @@ impl<K: fmt::Debug, V> fmt::Debug for IntoKeys<K, V> {
|
||||
/// See its documentation for more.
|
||||
///
|
||||
/// [`into_values`]: BTreeMap::into_values
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
pub struct IntoValues<K, V> {
|
||||
inner: IntoIter<K, V>,
|
||||
}
|
||||
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V: fmt::Debug> fmt::Debug for IntoValues<K, V> {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
f.debug_list().entries(self.inner.iter().map(|(_, val)| val)).finish()
|
||||
@ -1242,7 +1242,6 @@ impl<K, V> BTreeMap<K, V> {
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(map_into_keys_values)]
|
||||
/// use std::collections::BTreeMap;
|
||||
///
|
||||
/// let mut a = BTreeMap::new();
|
||||
@ -1253,7 +1252,7 @@ impl<K, V> BTreeMap<K, V> {
|
||||
/// assert_eq!(keys, [1, 2]);
|
||||
/// ```
|
||||
#[inline]
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
pub fn into_keys(self) -> IntoKeys<K, V> {
|
||||
IntoKeys { inner: self.into_iter() }
|
||||
}
|
||||
@ -1265,7 +1264,6 @@ impl<K, V> BTreeMap<K, V> {
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(map_into_keys_values)]
|
||||
/// use std::collections::BTreeMap;
|
||||
///
|
||||
/// let mut a = BTreeMap::new();
|
||||
@ -1276,7 +1274,7 @@ impl<K, V> BTreeMap<K, V> {
|
||||
/// assert_eq!(values, ["hello", "goodbye"]);
|
||||
/// ```
|
||||
#[inline]
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
pub fn into_values(self) -> IntoValues<K, V> {
|
||||
IntoValues { inner: self.into_iter() }
|
||||
}
|
||||
@ -1776,7 +1774,7 @@ impl<'a, K, V> Range<'a, K, V> {
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V> Iterator for IntoKeys<K, V> {
|
||||
type Item = K;
|
||||
|
||||
@ -1801,24 +1799,24 @@ impl<K, V> Iterator for IntoKeys<K, V> {
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V> DoubleEndedIterator for IntoKeys<K, V> {
|
||||
fn next_back(&mut self) -> Option<K> {
|
||||
self.inner.next_back().map(|(k, _)| k)
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V> ExactSizeIterator for IntoKeys<K, V> {
|
||||
fn len(&self) -> usize {
|
||||
self.inner.len()
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V> FusedIterator for IntoKeys<K, V> {}
|
||||
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V> Iterator for IntoValues<K, V> {
|
||||
type Item = V;
|
||||
|
||||
@ -1835,21 +1833,21 @@ impl<K, V> Iterator for IntoValues<K, V> {
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V> DoubleEndedIterator for IntoValues<K, V> {
|
||||
fn next_back(&mut self) -> Option<V> {
|
||||
self.inner.next_back().map(|(_, v)| v)
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V> ExactSizeIterator for IntoValues<K, V> {
|
||||
fn len(&self) -> usize {
|
||||
self.inner.len()
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V> FusedIterator for IntoValues<K, V> {}
|
||||
|
||||
#[stable(feature = "btree_range", since = "1.17.0")]
|
||||
|
@ -962,7 +962,6 @@ where
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(map_into_keys_values)]
|
||||
/// use std::collections::HashMap;
|
||||
///
|
||||
/// let mut map = HashMap::new();
|
||||
@ -973,7 +972,7 @@ where
|
||||
/// let vec: Vec<&str> = map.into_keys().collect();
|
||||
/// ```
|
||||
#[inline]
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
pub fn into_keys(self) -> IntoKeys<K, V> {
|
||||
IntoKeys { inner: self.into_iter() }
|
||||
}
|
||||
@ -985,7 +984,6 @@ where
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(map_into_keys_values)]
|
||||
/// use std::collections::HashMap;
|
||||
///
|
||||
/// let mut map = HashMap::new();
|
||||
@ -996,7 +994,7 @@ where
|
||||
/// let vec: Vec<i32> = map.into_values().collect();
|
||||
/// ```
|
||||
#[inline]
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
pub fn into_values(self) -> IntoValues<K, V> {
|
||||
IntoValues { inner: self.into_iter() }
|
||||
}
|
||||
@ -1405,15 +1403,13 @@ pub struct ValuesMut<'a, K: 'a, V: 'a> {
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(map_into_keys_values)]
|
||||
///
|
||||
/// use std::collections::HashMap;
|
||||
///
|
||||
/// let mut map = HashMap::new();
|
||||
/// map.insert("a", 1);
|
||||
/// let iter_keys = map.into_keys();
|
||||
/// ```
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
pub struct IntoKeys<K, V> {
|
||||
inner: IntoIter<K, V>,
|
||||
}
|
||||
@ -1428,15 +1424,13 @@ pub struct IntoKeys<K, V> {
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(map_into_keys_values)]
|
||||
///
|
||||
/// use std::collections::HashMap;
|
||||
///
|
||||
/// let mut map = HashMap::new();
|
||||
/// map.insert("a", 1);
|
||||
/// let iter_keys = map.into_values();
|
||||
/// ```
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
pub struct IntoValues<K, V> {
|
||||
inner: IntoIter<K, V>,
|
||||
}
|
||||
@ -2137,7 +2131,7 @@ impl<K, V: fmt::Debug> fmt::Debug for ValuesMut<'_, K, V> {
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V> Iterator for IntoKeys<K, V> {
|
||||
type Item = K;
|
||||
|
||||
@ -2150,24 +2144,24 @@ impl<K, V> Iterator for IntoKeys<K, V> {
|
||||
self.inner.size_hint()
|
||||
}
|
||||
}
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V> ExactSizeIterator for IntoKeys<K, V> {
|
||||
#[inline]
|
||||
fn len(&self) -> usize {
|
||||
self.inner.len()
|
||||
}
|
||||
}
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V> FusedIterator for IntoKeys<K, V> {}
|
||||
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K: Debug, V> fmt::Debug for IntoKeys<K, V> {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
f.debug_list().entries(self.inner.iter().map(|(k, _)| k)).finish()
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V> Iterator for IntoValues<K, V> {
|
||||
type Item = V;
|
||||
|
||||
@ -2180,17 +2174,17 @@ impl<K, V> Iterator for IntoValues<K, V> {
|
||||
self.inner.size_hint()
|
||||
}
|
||||
}
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V> ExactSizeIterator for IntoValues<K, V> {
|
||||
#[inline]
|
||||
fn len(&self) -> usize {
|
||||
self.inner.len()
|
||||
}
|
||||
}
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V> FusedIterator for IntoValues<K, V> {}
|
||||
|
||||
#[unstable(feature = "map_into_keys_values", issue = "75294")]
|
||||
#[stable(feature = "map_into_keys_values", since = "1.54.0")]
|
||||
impl<K, V: Debug> fmt::Debug for IntoValues<K, V> {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
f.debug_list().entries(self.inner.iter().map(|(_, v)| v)).finish()
|
||||
|
Loading…
x
Reference in New Issue
Block a user