Macro collection_literals::btree
source · macro_rules! btree { () => { ... }; ($(map)? of $key_type:ty => $value_type:ty) => { ... }; ($($key:expr => $value:expr),* $(,)?) => { ... }; ($(map)? of $key_type:ty => $value_type:ty { $($key:expr => $value:expr),* $(,)? }) => { ... }; ($(set)? of $value_type:ty) => { ... }; ($($value:expr),* $(,)?) => { ... }; ($(set)? of $value_type:ty { $($value:expr),* $(,)? }) => { ... }; }
Expand description
Macro for initializing both BTreeMaps and BTreeSets. It can infer both type of collection and types of entries but you can provide explicit type annotations.
use std::collections::{BTreeMap, BTreeSet};
use collection_literals::btree;
let set = btree! { set of &str { "Hi", "Hoi" } };
let map = btree! { map of u8 => char {
0 => '0',
1 => '1',
2 => '2',
}};
assert_eq!(set, BTreeSet::from(["Hi", "Hoi"]));
assert_eq!(map, BTreeMap::from([(0, '0'), (1, '1'), (2, '2')]));
assert_eq!(btree! { 88, 99 }, btree! { set of i32 { 88, 99 } });
assert_eq!(btree! { 88 => 99 }, btree! { map of i32 => i32 { 88 => 99 } });