Skip to main content

example/
example.rs

1use common_range_tools::Intersector;
2
3fn main() {
4    // RangeInclusive used to make this more readable.
5    let src = [1..=4, 0..=3, 3..=11, 10..=22];
6    // Forwards
7    println!("Forwards");
8    for r in Intersector::num_from(&src) {
9        println!("Common Range: {}->{}", r.start(), r.end());
10    }
11    // Output will be
12    //  Forwards
13    //  Common Range: 0->0
14    //  Common Range: 1->2
15    //  Common Range: 3->3
16    //  Common Range: 4->4
17    //  Common Range: 5->9
18    //  Common Range: 10->11
19    //  Common Range: 12->22
20
21    // add a small bumper to the output
22    print!("\n\n");
23    // Backwards
24    println!("Backwards");
25    for r in Intersector::num_from(&src).rev() {
26        println!("Common Range: {}->{}", r.start(), r.end());
27    }
28    // Outout will be
29    //  Backwards
30    //  Common Range: 12->22
31    //  Common Range: 10->11
32    //  Common Range: 5->9
33    //  Common Range: 4->4
34    //  Common Range: 3->3
35    //  Common Range: 1->2
36    //  Common Range: 0->0
37}