time_range_ext/time_range/
time_range_ext.rs1use 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}