time-range-ext 0.1.0

An extension library for the time crate to cover reoccurring use cases, everything time related.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use time::OffsetDateTime;
use crate::time_range::TimeRange;

pub trait TimeRangeExt {
    fn ends(&self) -> Vec<OffsetDateTime>;
    fn starts(&self) -> Vec<OffsetDateTime>;

    fn contains_ts(&self, start: OffsetDateTime) -> bool;

    fn range_within_ts(&self, ts: OffsetDateTime) -> Option<&TimeRange>;
    fn overlaps(&self, other: &TimeRange) -> Option<&TimeRange>;

    fn get_overlapping_range(&self, ts: TimeRange) -> Option<TimeRange>;

    fn dedup_overlapping_ranges(self) -> Self;

    fn times_between_contents(self, bounds: Option<TimeRange>) -> Self;
}