Function split_int_range

Source
fn split_int_range(
    min: BigInt,
    max: BigInt,
    other_ctors: impl Iterator<Item = Constructor> + Clone,
) -> Vec<Constructor>
Expand description

Takes a list of integer range constructors which are possibly overlapping and creates consecutive non-overlapping constructors with edges at each point where any original edge has a range.

The following input:

  |-------------------------| // "self"
|------|  |----------|   |----|
   |-------| |-------|

would be iterated over as follows:

   |---|--||-|---|---|---|--|