use rb_interval_map::{Interval, IntervalMap}; trait Point { fn new_point(x: T) -> Interval; } impl Point for Interval { fn new_point(x: u32) -> Self { Interval::new(x, x + 1) } } fn main() { let mut interval_map = IntervalMap::::new(); interval_map.insert(Interval::new(3, 7), 20); interval_map.insert(Interval::new(2, 6), 15); let tmp_point = Interval::new_point(5); assert_eq!(tmp_point, Interval::new(5, 6)); interval_map.insert(tmp_point.clone(), 10); assert_eq!(interval_map.get(&tmp_point).unwrap(), &10); assert_eq!( interval_map.find_all_overlap(&Interval::new_point(5)).len(), 3 ); }