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 fnv::FnvHasher;
let set = indexset_with_default!{
FnvHasher;
"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 fnv::FnvBuildHasher; // = BuildHasherDefault<FnvHasher>
use std::sync::Mutex;
static INTERN: Mutex<IndexSet<String, FnvBuildHasher>> =
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"));