@@ -379,77 +379,3 @@ macro_rules! dbg {
379379 ($($crate::dbg!($val)),+,)
380380 };
381381}
382-
383- #[doc(hidden)]
384- #[macro_export]
385- #[allow_internal_unstable(hash_map_internals)]
386- #[unstable(feature = "hash_map_internals", issue = "none")]
387- macro_rules! repetition_utils {
388- (@count $($tokens:tt),*) => {{
389- [$($crate::repetition_utils!(@replace $tokens => ())),*].len()
390- }};
391-
392- (@replace $x:tt => $y:tt) => { $y }
393- }
394-
395- /// Creates a [`HashMap`] containing the arguments.
396- ///
397- /// `hash_map!` allows specifying the entries that make
398- /// up the [`HashMap`] where the key and value are separated by a `=>`.
399- ///
400- /// The entries are separated by commas with a trailing comma being allowed.
401- ///
402- /// It is semantically equivalent to using repeated [`HashMap::insert`]
403- /// on a newly created hashmap.
404- ///
405- /// `hash_map!` will attempt to avoid repeated reallocations by
406- /// using [`HashMap::with_capacity`].
407- ///
408- /// # Examples
409- ///
410- /// ```rust
411- /// #![feature(hash_map_macro)]
412- ///
413- /// let map = hash_map! {
414- /// "key" => "value",
415- /// "key1" => "value1"
416- /// };
417- ///
418- /// assert_eq!(map.get("key"), Some(&"value"));
419- /// assert_eq!(map.get("key1"), Some(&"value1"));
420- /// assert!(map.get("brrrrrrooooommm").is_none());
421- /// ```
422- ///
423- /// And with a trailing comma
424- ///
425- ///```rust
426- /// #![feature(hash_map_macro)]
427- ///
428- /// let map = hash_map! {
429- /// "key" => "value", // notice the ,
430- /// };
431- ///
432- /// assert_eq!(map.get("key"), Some(&"value"));
433- /// ```
434- ///
435- /// The key and value are moved into the HashMap.
436- ///
437- /// [`HashMap`]: crate::collections::HashMap
438- /// [`HashMap::insert`]: crate::collections::HashMap::insert
439- /// [`HashMap::with_capacity`]: crate::collections::HashMap::with_capacity
440- #[macro_export]
441- #[allow_internal_unstable(hash_map_internals)]
442- #[unstable(feature = "hash_map_macro", issue = "144032")]
443- macro_rules! hash_map {
444- () => {{
445- $crate::collections::HashMap::new()
446- }};
447-
448- ( $( $key:expr => $value:expr ),* $(,)? ) => {{
449- let mut map = $crate::collections::HashMap::with_capacity(
450- const { $crate::repetition_utils!(@count $($key),*) }
451- );
452- $( map.insert($key, $value); )*
453- map
454- }}
455- }
0 commit comments