1use common_range_tools::Intersector;
2use std::time::{Duration, UNIX_EPOCH};
3
4fn main() {
5 let min = UNIX_EPOCH;
6 let max = UNIX_EPOCH + Duration::from_millis(u64::MAX);
7 let step = Duration::from_secs(1);
8 let rebound = Duration::from_secs(1);
9
10 let mut isec = Intersector::any(step, rebound, min, max);
11
12 let mut pos = 0;
13 for _ in 1..=5 {
14 let start = UNIX_EPOCH + Duration::from_secs(pos);
15 let end = UNIX_EPOCH + Duration::from_secs(pos + 10);
16 pos += 5;
17 let range = start..=end;
18 isec.add_raw_range(range);
19 }
20 for r in isec.into_iter() {
21 let start = r.start().duration_since(UNIX_EPOCH).unwrap().as_secs();
22 let end = r.end().duration_since(UNIX_EPOCH).unwrap().as_secs();
23 println!("Start: {}, End: {}", start, end);
24 }
25}