1
Fork 0

Stablize {HashMap,BTreeMap}::into_{keys,values}

This commit is contained in:
Folyd 2021-04-18 19:52:20 +08:00
parent d7c3386414
commit 33cc3f5116
2 changed files with 26 additions and 34 deletions

View file

@ -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.53.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.53.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.53.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.53.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.53.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.53.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.53.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.53.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.53.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.53.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.53.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.53.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()