Skip to main content

tldr/
tldr.rs

1// Import the Intersector
2use common_range_tools::Intersector;
3
4fn main() {
5    let mut isec = Intersector::num_defaults();
6
7    // 1 to 3
8    let range: std::ops::Range<i32> = 1..4;
9    isec.add_range(&range);
10
11    // 3 to 5
12    let range_inclusive: std::ops::RangeInclusive<i32> = 3..=5;
13    isec.add_range(&range_inclusive);
14
15    //  -2147483648 to 7
16    let min_to_end: std::ops::RangeToInclusive<i32> = ..=7;
17    isec.add_range(&min_to_end);
18
19    // 7 to 2147483647
20    let begin_to_max: std::ops::RangeFrom<i32> = 7..;
21    isec.add_range(&begin_to_max);
22
23    // Note 7.. and ..7 include our min and max all ready!
24    let min_to_max: std::ops::RangeFull = ..;
25    isec.add_range(&min_to_max);
26
27    for i in isec.into_iter() {
28        println!("Common Range: {:^14}->{:^14}", i.start(), i.end());
29    }
30
31    // The Output will be:
32    //  Common Range:  -2147483648  ->      0
33    //  Common Range:       1       ->      2
34    //  Common Range:       3       ->      3
35    //  Common Range:       4       ->      5
36    //  Common Range:       6       ->      6
37    //  Common Range:       7       ->      7
38    //  Common Range:       8       ->  2147483647
39}