summaryrefslogtreecommitdiffstats
path: root/vendor/indexmap/src/macros.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/indexmap/src/macros.rs')
-rw-r--r--vendor/indexmap/src/macros.rs32
1 files changed, 16 insertions, 16 deletions
diff --git a/vendor/indexmap/src/macros.rs b/vendor/indexmap/src/macros.rs
index ca26287be..5317f1c94 100644
--- a/vendor/indexmap/src/macros.rs
+++ b/vendor/indexmap/src/macros.rs
@@ -1,4 +1,5 @@
-#[cfg(has_std)]
+#[cfg(feature = "std")]
+#[cfg_attr(docsrs, doc(cfg(feature = "std")))]
#[macro_export]
/// Create an `IndexMap` from a list of key-value pairs
///
@@ -19,23 +20,23 @@
/// assert_eq!(map.keys().next(), Some(&"a"));
/// ```
macro_rules! indexmap {
- (@single $($x:tt)*) => (());
- (@count $($rest:expr),*) => (<[()]>::len(&[$($crate::indexmap!(@single $rest)),*]));
-
($($key:expr => $value:expr,)+) => { $crate::indexmap!($($key => $value),+) };
($($key:expr => $value:expr),*) => {
{
- let _cap = $crate::indexmap!(@count $($key),*);
- let mut _map = $crate::IndexMap::with_capacity(_cap);
+ // Note: `stringify!($key)` is just here to consume the repetition,
+ // but we throw away that string literal during constant evaluation.
+ const CAP: usize = <[()]>::len(&[$({ stringify!($key); }),*]);
+ let mut map = $crate::IndexMap::with_capacity(CAP);
$(
- _map.insert($key, $value);
+ map.insert($key, $value);
)*
- _map
+ map
}
};
}
-#[cfg(has_std)]
+#[cfg(feature = "std")]
+#[cfg_attr(docsrs, doc(cfg(feature = "std")))]
#[macro_export]
/// Create an `IndexSet` from a list of values
///
@@ -56,18 +57,17 @@ macro_rules! indexmap {
/// assert_eq!(set.iter().next(), Some(&"a"));
/// ```
macro_rules! indexset {
- (@single $($x:tt)*) => (());
- (@count $($rest:expr),*) => (<[()]>::len(&[$($crate::indexset!(@single $rest)),*]));
-
($($value:expr,)+) => { $crate::indexset!($($value),+) };
($($value:expr),*) => {
{
- let _cap = $crate::indexset!(@count $($value),*);
- let mut _set = $crate::IndexSet::with_capacity(_cap);
+ // Note: `stringify!($value)` is just here to consume the repetition,
+ // but we throw away that string literal during constant evaluation.
+ const CAP: usize = <[()]>::len(&[$({ stringify!($value); }),*]);
+ let mut set = $crate::IndexSet::with_capacity(CAP);
$(
- _set.insert($value);
+ set.insert($value);
)*
- _set
+ set
}
};
}