allen_intervals/interval/
interval_full.rs1use core::ops::RangeFull;
2
3use crate::{
4 Contains, Equals, Finishes, Interval, IntervalFrom, IntervalTo, Meets, NonEmpty, Overlaps,
5 Precedes, Starts,
6};
7
8#[derive(Clone, Copy, Debug, Hash, Eq, PartialEq)]
10pub struct IntervalFull;
11
12impl From<RangeFull> for IntervalFull {
13 fn from(_value: RangeFull) -> Self {
14 Self
15 }
16}
17
18impl From<IntervalFull> for RangeFull {
19 fn from(_value: IntervalFull) -> Self {
20 Self
21 }
22}
23
24impl Precedes<NonEmpty<IntervalFull>> for NonEmpty<IntervalFull> {}
27
28impl Meets<NonEmpty<IntervalFull>> for NonEmpty<IntervalFull> {}
29
30impl Overlaps<NonEmpty<IntervalFull>> for NonEmpty<IntervalFull> {}
31
32impl Starts<NonEmpty<IntervalFull>> for NonEmpty<IntervalFull> {}
33
34impl Contains<NonEmpty<IntervalFull>> for NonEmpty<IntervalFull> {}
35
36impl Finishes<NonEmpty<IntervalFull>> for NonEmpty<IntervalFull> {}
37
38impl Equals<NonEmpty<IntervalFull>> for NonEmpty<IntervalFull> {
39 #[inline]
40 fn equals(&self, _other: &NonEmpty<IntervalFull>) -> bool {
41 true
42 }
43}
44
45impl<T> Precedes<NonEmpty<IntervalTo<T>>> for NonEmpty<IntervalFull> {}
48
49impl<T> Meets<NonEmpty<IntervalTo<T>>> for NonEmpty<IntervalFull> {}
50
51impl<T> Overlaps<NonEmpty<IntervalTo<T>>> for NonEmpty<IntervalFull> {}
52
53impl<T> Starts<NonEmpty<IntervalTo<T>>> for NonEmpty<IntervalFull> {}
54
55impl<T> Contains<NonEmpty<IntervalTo<T>>> for NonEmpty<IntervalFull> {}
56
57impl<T> Finishes<NonEmpty<IntervalTo<T>>> for NonEmpty<IntervalFull> {}
58
59impl<T> Equals<NonEmpty<IntervalTo<T>>> for NonEmpty<IntervalFull> {}
60
61impl<T> Precedes<NonEmpty<IntervalFrom<T>>> for NonEmpty<IntervalFull> {}
64
65impl<T> Meets<NonEmpty<IntervalFrom<T>>> for NonEmpty<IntervalFull> {}
66
67impl<T> Overlaps<NonEmpty<IntervalFrom<T>>> for NonEmpty<IntervalFull> {}
68
69impl<T> Starts<NonEmpty<IntervalFrom<T>>> for NonEmpty<IntervalFull> {}
70
71impl<T> Contains<NonEmpty<IntervalFrom<T>>> for NonEmpty<IntervalFull> {}
72
73impl<T> Finishes<NonEmpty<IntervalFrom<T>>> for NonEmpty<IntervalFull> {}
74
75impl<T> Equals<NonEmpty<IntervalFrom<T>>> for NonEmpty<IntervalFull> {}
76
77impl<T> Precedes<NonEmpty<Interval<T>>> for NonEmpty<IntervalFull> {}
80
81impl<T> Meets<NonEmpty<Interval<T>>> for NonEmpty<IntervalFull> {}
82
83impl<T> Overlaps<NonEmpty<Interval<T>>> for NonEmpty<IntervalFull> {}
84
85impl<T> Starts<NonEmpty<Interval<T>>> for NonEmpty<IntervalFull> {}
86
87impl<T> Contains<NonEmpty<Interval<T>>> for NonEmpty<IntervalFull> {
88 fn contains(&self, _other: &NonEmpty<Interval<T>>) -> bool {
89 true
90 }
91}
92
93impl<T> Finishes<NonEmpty<Interval<T>>> for NonEmpty<IntervalFull> {}
94
95impl<T> Equals<NonEmpty<Interval<T>>> for NonEmpty<IntervalFull> {}