Macro iset::interval_map
source · macro_rules! interval_map { ( [$ix:ty] $(,)? ) => { ... }; ( () ) => { ... }; ( [$ix:ty] $(,)? $( $k:expr => $v:expr ),* $(,)? ) => { ... }; ( $( $k:expr => $v:expr ),* $(,)? ) => { ... }; }
Expand description
Macros for IntervalMap creation.
use iset::interval_map;
let map = interval_map!{ 0..10 => "a", 5..15 => "b", -5..20 => "c" };
let a: Vec<_> = map.iter(..).collect();
assert_eq!(a, &[(-5..20, &"c"), (0..10, &"a"), (5..15, &"b")]);
// Creates an interval map with `u8` index type (up to 255 values in the map).
let set = interval_map!{ [u8] 0..10 => "a", 5..15 => "b", -5..20 => "c" };
Panics if there are duplicate intervals.