1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
pub use Arc;
use crateIntCO;
/// Immutable canonical closed-open integer interval set.
///
/// Internally this is an `Arc<[I]>`, so cloning an `IntCOSet<I>` is cheap.
///
/// Canonical invariant:
///
/// ```text
/// for every adjacent pair a, b:
/// a.end_excl() < b.start()
/// ```
///
/// The strict `<` means both overlap and adjacency have already been merged.
///
/// `I::Ord` is expected to follow interval boundary ordering, consistent with
/// the primitive interval implementations provided by `int_interval`.