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}