Improvided map_entry_replace examples
The current examples should be more realistic.
This commit is contained in:
parent
0f8ee171b2
commit
0fb37fc67d
|
@ -2247,17 +2247,18 @@ impl<'a, K, V> OccupiedEntry<'a, K, V> {
|
|||
/// ```
|
||||
/// #![feature(map_entry_replace)]
|
||||
/// use std::collections::hash_map::{Entry, HashMap};
|
||||
/// use std::rc::Rc;
|
||||
///
|
||||
/// let mut map: HashMap<String, u32> = HashMap::new();
|
||||
/// map.insert("poneyland".to_string(), 15);
|
||||
/// let mut map: HashMap<Rc<String>, u32> = HashMap::new();
|
||||
/// map.insert(Rc::new("Stringthing".to_string()), 15);
|
||||
///
|
||||
/// if let Entry::Occupied(entry) = map.entry("poneyland".to_string()) {
|
||||
/// let (old_key, old_value): (String, u32) = entry.replace_entry(16);
|
||||
/// assert_eq!(old_key, "poneyland");
|
||||
/// assert_eq!(old_value, 15);
|
||||
/// let my_key = Rc::new("Stringthing".to_string());
|
||||
///
|
||||
/// if let Entry::Occupied(entry) = map.entry(my_key) {
|
||||
/// // Also replace the key with a handle to our other key.
|
||||
/// let (old_key, old_value): (Rc<String>, u32) = entry.replace_entry(16);
|
||||
/// }
|
||||
///
|
||||
/// assert_eq!(map.get("poneyland"), Some(&16));
|
||||
/// ```
|
||||
#[unstable(feature = "map_entry_replace", issue = "44286")]
|
||||
pub fn replace_entry(mut self, value: V) -> (K, V) {
|
||||
|
@ -2276,13 +2277,22 @@ impl<'a, K, V> OccupiedEntry<'a, K, V> {
|
|||
/// ```
|
||||
/// #![feature(map_entry_replace)]
|
||||
/// use std::collections::hash_map::{Entry, HashMap};
|
||||
/// use std::rc::Rc;
|
||||
///
|
||||
/// let mut map: HashMap<String, u32> = HashMap::new();
|
||||
/// map.insert("poneyland".to_string(), 15);
|
||||
/// let mut map: HashMap<Rc<String>, u32> = HashMap::new();
|
||||
/// let mut known_strings: Vec<Rc<String>> = Vec::new();
|
||||
///
|
||||
/// if let Entry::Occupied(entry) = map.entry("poneyland".to_string()) {
|
||||
/// let old_key = entry.replace_key();
|
||||
/// assert_eq!(old_key, "poneyland");
|
||||
/// // Initialise known strings, run program, etc.
|
||||
///
|
||||
/// reclaim_memory(&mut map, &known_strings);
|
||||
///
|
||||
/// fn reclaim_memory(map: &mut HashMap<Rc<String>, u32>, known_strings: &[Rc<String>] ) {
|
||||
/// for s in known_strings {
|
||||
/// if let Entry::Occupied(entry) = map.entry(s.clone()) {
|
||||
/// // Replaces the entry's key with our version of it in `known_strings`.
|
||||
/// entry.replace_key();
|
||||
/// }
|
||||
/// }
|
||||
/// }
|
||||
/// ```
|
||||
#[unstable(feature = "map_entry_replace", issue = "44286")]
|
||||
|
|
Loading…
Reference in New Issue