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.