pub fn intersect_intervals(start: usize, end: usize, intervals: &[(usize, usize)]) -> bool {
match intervals.binary_search_by_key(&end, |&(s, _)| s) {
Ok(_) => {
true
}
Err(insertion_idx) => {
if insertion_idx > 0 {
let (last_start, last_len) = intervals[insertion_idx - 1];
debug_assert!(last_start < end);
if start <= last_start && last_start < end {
return true;
}
debug_assert!(last_start < start);
if last_start + last_len > start {
return true;
}
debug_assert!(last_start + last_len - 1 < start);
false
} else {
false
}
}
}
}