76 lines
1.7 KiB
Rust
76 lines
1.7 KiB
Rust
// Copyright 2017 Serde Developers
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
|
// option. This file may not be copied, modified, or distributed
|
|
// except according to those terms.
|
|
|
|
macro_rules! btreeset {
|
|
() => {
|
|
BTreeSet::new()
|
|
};
|
|
($($value:expr),+) => {
|
|
{
|
|
let mut set = BTreeSet::new();
|
|
$(set.insert($value);)+
|
|
set
|
|
}
|
|
}
|
|
}
|
|
|
|
macro_rules! btreemap {
|
|
() => {
|
|
BTreeMap::new()
|
|
};
|
|
($($key:expr => $value:expr),+) => {
|
|
{
|
|
let mut map = BTreeMap::new();
|
|
$(map.insert($key, $value);)+
|
|
map
|
|
}
|
|
}
|
|
}
|
|
|
|
macro_rules! hashset {
|
|
() => {
|
|
HashSet::new()
|
|
};
|
|
($($value:expr),+) => {
|
|
{
|
|
let mut set = HashSet::new();
|
|
$(set.insert($value);)+
|
|
set
|
|
}
|
|
};
|
|
($hasher:ident @ $($value:expr),+) => {
|
|
{
|
|
use std::hash::BuildHasherDefault;
|
|
let mut set = HashSet::with_hasher(BuildHasherDefault::<$hasher>::default());
|
|
$(set.insert($value);)+
|
|
set
|
|
}
|
|
}
|
|
}
|
|
|
|
macro_rules! hashmap {
|
|
() => {
|
|
HashMap::new()
|
|
};
|
|
($($key:expr => $value:expr),+) => {
|
|
{
|
|
let mut map = HashMap::new();
|
|
$(map.insert($key, $value);)+
|
|
map
|
|
}
|
|
};
|
|
($hasher:ident @ $($key:expr => $value:expr),+) => {
|
|
{
|
|
use std::hash::BuildHasherDefault;
|
|
let mut map = HashMap::with_hasher(BuildHasherDefault::<$hasher>::default());
|
|
$(map.insert($key, $value);)+
|
|
map
|
|
}
|
|
}
|
|
}
|