diff options
| author | Huon Wilson <dbau.pp+github@gmail.com> | 2013-12-27 00:24:10 +1100 |
|---|---|---|
| committer | Huon Wilson <dbau.pp+github@gmail.com> | 2013-12-27 00:29:02 +1100 |
| commit | 2ca0b58f60e55afdffc68a8aef24704ad2a2a2e3 (patch) | |
| tree | fb022da879fe2939dca8e05677554bdf930c7ff3 /src | |
| parent | 2277d78d33f1a110ba107064b4da5c2f5b7d941f (diff) | |
| download | rust-2ca0b58f60e55afdffc68a8aef24704ad2a2a2e3.tar.gz rust-2ca0b58f60e55afdffc68a8aef24704ad2a2a2e3.zip | |
std::hashmap: add an example to mangle.
Diffstat (limited to 'src')
| -rw-r--r-- | src/libstd/hashmap.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/libstd/hashmap.rs b/src/libstd/hashmap.rs index b5d5b8a6149..e93a76e5556 100644 --- a/src/libstd/hashmap.rs +++ b/src/libstd/hashmap.rs @@ -354,6 +354,43 @@ impl<K: Hash + Eq, V> HashMap<K, V> { /// Modify and return the value corresponding to the key in the map, or /// insert and return a new value if it doesn't exist. + /// + /// This method allows for all insertion behaviours of a hashmap, + /// see methods like `insert`, `find_or_insert` and + /// `insert_or_update_with` for less general and more friendly + /// variations of this. + /// + /// # Example + /// + /// ```rust + /// use std::hashmap::HashMap; + /// + /// // map some strings to vectors of strings + /// let mut map = HashMap::<~str, ~[~str]>::new(); + /// map.insert(~"a key", ~[~"value"]); + /// map.insert(~"z key", ~[~"value"]); + /// + /// let new = ~[~"a key", ~"b key", ~"z key"]; + /// for k in new.move_iter() { + /// map.mangle(k, ~"new value", + /// // if the key doesn't exist in the map yet, add it in + /// // the obvious way. + /// |_k, v| ~[v], + /// // if the key does exist either prepend or append this + /// // new value based on the first letter of the key. + /// |key, already, new| { + /// if key.starts_with("z") { + /// already.unshift(new); + /// } else { + /// already.push(new); + /// } + /// }); + /// } + /// + /// for (k, v) in map.iter() { + /// println!("{} -> {:?}", *k, *v); + /// } + /// ``` pub fn mangle<'a, A>( &'a mut self, |
