time_range_ext/time_range/
time_range_ext.rs

1use time::OffsetDateTime;
2use crate::time_range::TimeRange;
3
4pub trait TimeRangeExt {
5    fn ends(&self) -> Vec<OffsetDateTime>;
6    fn starts(&self) -> Vec<OffsetDateTime>;
7
8    fn contains_ts(&self, start: OffsetDateTime) -> bool;
9
10    fn range_within_ts(&self, ts: OffsetDateTime) -> Option<&TimeRange>;
11    fn overlaps(&self, other: &TimeRange) -> Option<&TimeRange>;
12
13    fn get_overlapping_range(&self, ts: TimeRange) -> Option<TimeRange>;
14
15    fn dedup_overlapping_ranges(self) -> Self;
16
17    fn times_between_contents(self, bounds: Option<TimeRange>) -> Self;
18}