1#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5pub enum IntervalType {
6 Opened,
8 OpenedUndef,
10 Closed,
12 ClosedUndef,
14}
15
16impl std::fmt::Display for IntervalType {
17 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
18 write!(
19 f,
20 "{}",
21 match self {
22 IntervalType::Opened => "opened",
23 IntervalType::OpenedUndef => "opened,undefined",
24 IntervalType::Closed => "closed",
25 IntervalType::ClosedUndef => "closed,undefined",
26 }
27 )
28 }
29}
30
31impl IntervalType {
32 pub fn opened(&self) -> bool {
34 matches!(self, IntervalType::Opened | IntervalType::OpenedUndef)
35 }
36
37 pub fn closed(&self) -> bool {
39 matches!(self, IntervalType::Closed | IntervalType::ClosedUndef)
40 }
41
42 pub fn undefined(&self) -> bool {
44 matches!(self, IntervalType::OpenedUndef | IntervalType::ClosedUndef)
45 }
46}