diff options
| author | Kevin Reid <kpreid@google.com> | 2021-10-13 08:46:34 -0700 |
|---|---|---|
| committer | Kevin Reid <kpreid@switchb.org> | 2024-12-21 19:57:42 -0800 |
| commit | b5e8a5d3939935eecfe8ed2dbc97ad748e090d90 (patch) | |
| tree | 30ea9b2e2175ca4883f850184078dee6fdbb3ab4 /library/std/src/collections | |
| parent | 13170cd787cb733ed24842ee825bcbd98dc01476 (diff) | |
Document collection `From` and `FromIterator` impls that drop duplicate keys.
This behavior is worth documenting because there are other plausible alternatives, such as panicking when a duplicate is encountered, and it reminds the programmer to consider whether they should, for example, coalesce duplicate keys first.
Diffstat (limited to 'library/std/src/collections')
| -rw-r--r-- | library/std/src/collections/hash/map.rs | 9 | ||||
| -rw-r--r-- | library/std/src/collections/hash/set.rs | 4 |
2 files changed, 13 insertions, 0 deletions
diff --git a/library/std/src/collections/hash/map.rs b/library/std/src/collections/hash/map.rs index 109bc394634..5b2cd53763b 100644 --- a/library/std/src/collections/hash/map.rs +++ b/library/std/src/collections/hash/map.rs @@ -1446,6 +1446,11 @@ impl<K, V, const N: usize> From<[(K, V); N]> for HashMap<K, V, RandomState> where K: Eq + Hash, { + /// Converts a `[(K, V); N]` into a `HashMap<K, V>`. + /// + /// If any entries in the array have equal keys, all but the last entry for each such key + /// are discarded. + /// /// # Examples /// /// ``` @@ -3219,6 +3224,10 @@ where K: Eq + Hash, S: BuildHasher + Default, { + /// Constructs a `HashMap<K, V>` from an iterator of key-value pairs. + /// + /// If the iterator produces any pairs with equal keys, + /// all but the last value for each such key are discarded. fn from_iter<T: IntoIterator<Item = (K, V)>>(iter: T) -> HashMap<K, V, S> { let mut map = HashMap::with_hasher(Default::default()); map.extend(iter); diff --git a/library/std/src/collections/hash/set.rs b/library/std/src/collections/hash/set.rs index 4c81aaff458..8e840aaa07f 100644 --- a/library/std/src/collections/hash/set.rs +++ b/library/std/src/collections/hash/set.rs @@ -1091,6 +1091,10 @@ impl<T, const N: usize> From<[T; N]> for HashSet<T, RandomState> where T: Eq + Hash, { + /// Converts a `[T; N]` into a `HashSet<T>`. + /// + /// If the array contains any equal values, all but the last instance of each are discarded. + /// /// # Examples /// /// ``` |
