macro_rules! indexset_with_default {
() => { ... };
($H:ty $(;)?) => { ... };
($H:ty; $($value:expr),+ $(,)?) => { ... };
}Expand description
Create an IndexSet from a list of values
and a BuildHasherDefault-wrapped custom hasher.
ยงExample
use indexmap::indexset_with_default;
use std::collections::hash_map::DefaultHasher;
let set = indexset_with_default!{
DefaultHasher;
"a",
"b",
};
assert!(set.contains("a"));
assert!(set.contains("b"));
assert!(!set.contains("c"));
// "a" is the first value
assert_eq!(set.iter().next(), Some(&"a"));This can also be initialized in const contexts:
use indexmap::{IndexSet, indexset_with_default};
use std::collections::hash_map::DefaultHasher;
use std::hash::BuildHasherDefault;
use std::sync::Mutex;
type DefaultHashBuilder = BuildHasherDefault<DefaultHasher>;
static INTERN: Mutex<IndexSet<String, DefaultHashBuilder>> =
Mutex::new(indexset_with_default!());
if let Ok(mut set) = INTERN.lock() {
set.insert("a".into());
set.insert("b".into());
set.insert("c".into());
}
assert!(INTERN.lock().unwrap().contains("a"));
assert!(INTERN.lock().unwrap().contains("b"));
assert!(INTERN.lock().unwrap().contains("c"));