@@ -120,7 +120,7 @@ where
120120 /// assert_eq!(table.capacity(), 0);
121121 ///
122122 /// // Now we insert element inside created HashTable
123- /// table.insert_unchecked (hasher(&"One"), "One", hasher);
123+ /// table.insert_unique (hasher(&"One"), "One", hasher);
124124 /// // We can see that the HashTable holds 1 element
125125 /// assert_eq!(table.len(), 1);
126126 /// // And it also allocates some capacity
@@ -164,11 +164,11 @@ where
164164 /// assert!(empty_map_capacity >= 5);
165165 ///
166166 /// // Now we insert some 5 elements inside created HashTable
167- /// table.insert_unchecked (hasher(&"One"), "One", hasher);
168- /// table.insert_unchecked (hasher(&"Two"), "Two", hasher);
169- /// table.insert_unchecked (hasher(&"Three"), "Three", hasher);
170- /// table.insert_unchecked (hasher(&"Four"), "Four", hasher);
171- /// table.insert_unchecked (hasher(&"Five"), "Five", hasher);
167+ /// table.insert_unique (hasher(&"One"), "One", hasher);
168+ /// table.insert_unique (hasher(&"Two"), "Two", hasher);
169+ /// table.insert_unique (hasher(&"Three"), "Three", hasher);
170+ /// table.insert_unique (hasher(&"Four"), "Four", hasher);
171+ /// table.insert_unique (hasher(&"Five"), "Five", hasher);
172172 ///
173173 /// // We can see that the HashTable holds 5 elements
174174 /// assert_eq!(table.len(), 5);
@@ -210,9 +210,9 @@ where
210210 /// let mut table = HashTable::new();
211211 /// let hasher = BuildHasherDefault::<AHasher>::default();
212212 /// let hasher = |val: &_| hasher.hash_one(val);
213- /// table.insert_unchecked (hasher(&1), 1, hasher);
214- /// table.insert_unchecked (hasher(&2), 2, hasher);
215- /// table.insert_unchecked (hasher(&3), 3, hasher);
213+ /// table.insert_unique (hasher(&1), 1, hasher);
214+ /// table.insert_unique (hasher(&2), 2, hasher);
215+ /// table.insert_unique (hasher(&3), 3, hasher);
216216 /// assert_eq!(table.find(hasher(&2), |&val| val == 2), Some(&2));
217217 /// assert_eq!(table.find(hasher(&4), |&val| val == 4), None);
218218 /// # }
@@ -250,7 +250,7 @@ where
250250 /// let mut table = HashTable::new();
251251 /// let hasher = BuildHasherDefault::<AHasher>::default();
252252 /// let hasher = |val: &_| hasher.hash_one(val);
253- /// table.insert_unchecked (hasher(&1), (1, "a"), |val| hasher(&val.0));
253+ /// table.insert_unique (hasher(&1), (1, "a"), |val| hasher(&val.0));
254254 /// if let Some(val) = table.find_mut(hasher(&1), |val| val.0 == 1) {
255255 /// val.1 = "b";
256256 /// }
@@ -291,7 +291,7 @@ where
291291 /// let mut table = HashTable::new();
292292 /// let hasher = BuildHasherDefault::<AHasher>::default();
293293 /// let hasher = |val: &_| hasher.hash_one(val);
294- /// table.insert_unchecked (hasher(&1), (1, "a"), |val| hasher(&val.0));
294+ /// table.insert_unique (hasher(&1), (1, "a"), |val| hasher(&val.0));
295295 /// if let Ok(entry) = table.find_entry(hasher(&1), |val| val.0 == 1) {
296296 /// entry.remove();
297297 /// }
@@ -346,7 +346,7 @@ where
346346 /// let mut table = HashTable::new();
347347 /// let hasher = BuildHasherDefault::<AHasher>::default();
348348 /// let hasher = |val: &_| hasher.hash_one(val);
349- /// table.insert_unchecked (hasher(&1), (1, "a"), |val| hasher(&val.0));
349+ /// table.insert_unique (hasher(&1), (1, "a"), |val| hasher(&val.0));
350350 /// if let Entry::Occupied(entry) = table.entry(hasher(&1), |val| val.0 == 1, |val| hasher(&val.0))
351351 /// {
352352 /// entry.remove();
@@ -386,11 +386,29 @@ where
386386 /// without checking whether an equivalent element already exists within the
387387 /// table.
388388 ///
389- /// This is
390- ///
391389 /// `hasher` is called if entries need to be moved or copied to a new table.
392390 /// This must return the same hash value that each entry was inserted with.
393- pub fn insert_unchecked (
391+ ///
392+ /// # Examples
393+ ///
394+ /// ```
395+ /// # #[cfg(feature = "nightly")]
396+ /// # fn test() {
397+ /// use ahash::AHasher;
398+ /// use hashbrown::HashTable;
399+ /// use std::hash::{BuildHasher, BuildHasherDefault};
400+ ///
401+ /// let mut v = HashTable::new();
402+ /// let hasher = BuildHasherDefault::<AHasher>::default();
403+ /// let hasher = |val: &_| hasher.hash_one(val);
404+ /// v.insert_unique(hasher(&1), 1, hasher);
405+ /// # }
406+ /// # fn main() {
407+ /// # #[cfg(feature = "nightly")]
408+ /// # test()
409+ /// # }
410+ /// ```
411+ pub fn insert_unique (
394412 & mut self ,
395413 hash : u64 ,
396414 value : T ,
@@ -418,7 +436,7 @@ where
418436 /// let mut v = HashTable::new();
419437 /// let hasher = BuildHasherDefault::<AHasher>::default();
420438 /// let hasher = |val: &_| hasher.hash_one(val);
421- /// v.insert_unchecked (hasher(&1), 1, hasher);
439+ /// v.insert_unique (hasher(&1), 1, hasher);
422440 /// v.clear();
423441 /// assert!(v.is_empty());
424442 /// # }
@@ -450,8 +468,8 @@ where
450468 /// let mut table = HashTable::with_capacity(100);
451469 /// let hasher = BuildHasherDefault::<AHasher>::default();
452470 /// let hasher = |val: &_| hasher.hash_one(val);
453- /// table.insert_unchecked (hasher(&1), 1, hasher);
454- /// table.insert_unchecked (hasher(&2), 2, hasher);
471+ /// table.insert_unique (hasher(&1), 1, hasher);
472+ /// table.insert_unique (hasher(&2), 2, hasher);
455473 /// assert!(table.capacity() >= 100);
456474 /// table.shrink_to_fit(hasher);
457475 /// assert!(table.capacity() >= 2);
@@ -487,8 +505,8 @@ where
487505 /// let mut table = HashTable::with_capacity(100);
488506 /// let hasher = BuildHasherDefault::<AHasher>::default();
489507 /// let hasher = |val: &_| hasher.hash_one(val);
490- /// table.insert_unchecked (hasher(&1), 1, hasher);
491- /// table.insert_unchecked (hasher(&2), 2, hasher);
508+ /// table.insert_unique (hasher(&1), 1, hasher);
509+ /// table.insert_unique (hasher(&2), 2, hasher);
492510 /// assert!(table.capacity() >= 100);
493511 /// table.shrink_to(10, hasher);
494512 /// assert!(table.capacity() >= 10);
@@ -613,7 +631,7 @@ where
613631 /// let hasher = |val: &_| hasher.hash_one(val);
614632 /// let mut v = HashTable::new();
615633 /// assert_eq!(v.len(), 0);
616- /// v.insert_unchecked (hasher(&1), 1, hasher);
634+ /// v.insert_unique (hasher(&1), 1, hasher);
617635 /// assert_eq!(v.len(), 1);
618636 /// # }
619637 /// # fn main() {
@@ -640,7 +658,7 @@ where
640658 /// let hasher = |val: &_| hasher.hash_one(val);
641659 /// let mut v = HashTable::new();
642660 /// assert!(v.is_empty());
643- /// v.insert_unchecked (hasher(&1), 1, hasher);
661+ /// v.insert_unique (hasher(&1), 1, hasher);
644662 /// assert!(!v.is_empty());
645663 /// # }
646664 /// # fn main() {
@@ -667,8 +685,8 @@ where
667685 /// let mut table = HashTable::new();
668686 /// let hasher = BuildHasherDefault::<AHasher>::default();
669687 /// let hasher = |val: &_| hasher.hash_one(val);
670- /// table.insert_unchecked (hasher(&"a"), "b", hasher);
671- /// table.insert_unchecked (hasher(&"b"), "b", hasher);
688+ /// table.insert_unique (hasher(&"a"), "b", hasher);
689+ /// table.insert_unique (hasher(&"b"), "b", hasher);
672690 ///
673691 /// // Will print in an arbitrary order.
674692 /// for x in table.iter() {
@@ -703,9 +721,9 @@ where
703721 /// let mut table = HashTable::new();
704722 /// let hasher = BuildHasherDefault::<AHasher>::default();
705723 /// let hasher = |val: &_| hasher.hash_one(val);
706- /// table.insert_unchecked (hasher(&1), 1, hasher);
707- /// table.insert_unchecked (hasher(&2), 2, hasher);
708- /// table.insert_unchecked (hasher(&3), 3, hasher);
724+ /// table.insert_unique (hasher(&1), 1, hasher);
725+ /// table.insert_unique (hasher(&2), 2, hasher);
726+ /// table.insert_unique (hasher(&3), 3, hasher);
709727 ///
710728 /// // Update all values
711729 /// for val in table.iter_mut() {
@@ -756,7 +774,7 @@ where
756774 /// let hasher = BuildHasherDefault::<AHasher>::default();
757775 /// let hasher = |val: &_| hasher.hash_one(val);
758776 /// for x in 1..=6 {
759- /// table.insert_unchecked (hasher(&x), x, hasher);
777+ /// table.insert_unique (hasher(&x), x, hasher);
760778 /// }
761779 /// table.retain(|&mut x| x % 2 == 0);
762780 /// assert_eq!(table.len(), 3);
@@ -792,7 +810,7 @@ where
792810 /// let hasher = BuildHasherDefault::<AHasher>::default();
793811 /// let hasher = |val: &_| hasher.hash_one(val);
794812 /// for x in 1..=3 {
795- /// table.insert_unchecked (hasher(&x), x, hasher);
813+ /// table.insert_unique (hasher(&x), x, hasher);
796814 /// }
797815 /// assert!(!table.is_empty());
798816 ///
@@ -837,7 +855,7 @@ where
837855 /// let hasher = BuildHasherDefault::<AHasher>::default();
838856 /// let hasher = |val: &_| hasher.hash_one(val);
839857 /// for x in 0..8 {
840- /// table.insert_unchecked (hasher(&x), x, hasher);
858+ /// table.insert_unique (hasher(&x), x, hasher);
841859 /// }
842860 /// let drained: Vec<i32> = table.extract_if(|&mut v| v % 2 == 0).collect();
843861 ///
@@ -895,7 +913,7 @@ where
895913 /// ("Herzogin-Anna-Amalia-Bibliothek", 1691),
896914 /// ("Library of Congress", 1800),
897915 /// ] {
898- /// libraries.insert_unchecked (hasher(&k), (k, v), |(k, _)| hasher(&k));
916+ /// libraries.insert_unique (hasher(&k), (k, v), |(k, _)| hasher(&k));
899917 /// }
900918 ///
901919 /// let keys = ["Athenæum", "Library of Congress"];
@@ -965,7 +983,7 @@ where
965983 /// ("Herzogin-Anna-Amalia-Bibliothek", 1691),
966984 /// ("Library of Congress", 1800),
967985 /// ] {
968- /// libraries.insert_unchecked (hasher(&k), (k, v), |(k, _)| hasher(&k));
986+ /// libraries.insert_unique (hasher(&k), (k, v), |(k, _)| hasher(&k));
969987 /// }
970988 ///
971989 /// let keys = ["Athenæum", "Library of Congress"];
@@ -1090,7 +1108,7 @@ where
10901108/// let hasher = BuildHasherDefault::<AHasher>::default();
10911109/// let hasher = |val: &_| hasher.hash_one(val);
10921110/// for x in ["a", "b", "c"] {
1093- /// table.insert_unchecked (hasher(&x), x, hasher);
1111+ /// table.insert_unique (hasher(&x), x, hasher);
10941112/// }
10951113/// assert_eq!(table.len(), 3);
10961114///
@@ -1142,7 +1160,7 @@ where
11421160 /// let hasher = BuildHasherDefault::<AHasher>::default();
11431161 /// let hasher = |val: &_| hasher.hash_one(val);
11441162 /// for x in ["a", "b"] {
1145- /// table.insert_unchecked (hasher(&x), x, hasher);
1163+ /// table.insert_unique (hasher(&x), x, hasher);
11461164 /// }
11471165 ///
11481166 /// match table.entry(hasher(&"a"), |&x| x == "a", hasher) {
@@ -1394,7 +1412,7 @@ where
13941412/// let hasher = BuildHasherDefault::<AHasher>::default();
13951413/// let hasher = |val: &_| hasher.hash_one(val);
13961414/// for x in ["a", "b", "c"] {
1397- /// table.insert_unchecked (hasher(&x), x, hasher);
1415+ /// table.insert_unique (hasher(&x), x, hasher);
13981416/// }
13991417/// assert_eq!(table.len(), 3);
14001418///
@@ -1480,7 +1498,7 @@ where
14801498 /// // The table is empty
14811499 /// assert!(table.is_empty() && table.capacity() == 0);
14821500 ///
1483- /// table.insert_unchecked (hasher(&"poneyland"), "poneyland", hasher);
1501+ /// table.insert_unique (hasher(&"poneyland"), "poneyland", hasher);
14841502 /// let capacity_before_remove = table.capacity();
14851503 ///
14861504 /// if let Entry::Occupied(o) = table.entry(hasher(&"poneyland"), |&x| x == "poneyland", hasher) {
@@ -1525,7 +1543,7 @@ where
15251543 /// let mut table: HashTable<&str> = HashTable::new();
15261544 /// let hasher = BuildHasherDefault::<AHasher>::default();
15271545 /// let hasher = |val: &_| hasher.hash_one(val);
1528- /// table.insert_unchecked (hasher(&"poneyland"), "poneyland", hasher);
1546+ /// table.insert_unique (hasher(&"poneyland"), "poneyland", hasher);
15291547 ///
15301548 /// match table.entry(hasher(&"poneyland"), |&x| x == "poneyland", hasher) {
15311549 /// Entry::Vacant(_) => panic!(),
@@ -1561,7 +1579,7 @@ where
15611579 /// let mut table: HashTable<(&str, u32)> = HashTable::new();
15621580 /// let hasher = BuildHasherDefault::<AHasher>::default();
15631581 /// let hasher = |val: &_| hasher.hash_one(val);
1564- /// table.insert_unchecked (hasher(&"poneyland"), ("poneyland", 12), |(k, _)| hasher(&k));
1582+ /// table.insert_unique (hasher(&"poneyland"), ("poneyland", 12), |(k, _)| hasher(&k));
15651583 ///
15661584 /// assert_eq!(
15671585 /// table.find(hasher(&"poneyland"), |&(x, _)| x == "poneyland",),
@@ -1614,7 +1632,7 @@ where
16141632 /// let mut table: HashTable<(&str, u32)> = HashTable::new();
16151633 /// let hasher = BuildHasherDefault::<AHasher>::default();
16161634 /// let hasher = |val: &_| hasher.hash_one(val);
1617- /// table.insert_unchecked (hasher(&"poneyland"), ("poneyland", 12), |(k, _)| hasher(&k));
1635+ /// table.insert_unique (hasher(&"poneyland"), ("poneyland", 12), |(k, _)| hasher(&k));
16181636 ///
16191637 /// assert_eq!(
16201638 /// table.find(hasher(&"poneyland"), |&(x, _)| x == "poneyland",),
@@ -1786,7 +1804,7 @@ where
17861804/// let entry_v: AbsentEntry<_, _> = table.find_entry(hasher(&"a"), |&x| x == "a").unwrap_err();
17871805/// entry_v
17881806/// .into_table()
1789- /// .insert_unchecked (hasher(&"a"), "a", hasher);
1807+ /// .insert_unique (hasher(&"a"), "a", hasher);
17901808/// assert!(table.find(hasher(&"a"), |&x| x == "a").is_some() && table.len() == 1);
17911809///
17921810/// // Nonexistent key (insert)
0 commit comments