Skip to main content

date_differencer/diff/
jiff_support.rs

1use jiff::{Zoned, civil::DateTime};
2
3use super::DateTimeParts;
4
5impl DateTimeParts for DateTime {
6    #[inline]
7    fn year(&self) -> i32 {
8        i32::from(DateTime::year(*self))
9    }
10
11    #[inline]
12    fn month(&self) -> u8 {
13        DateTime::month(*self) as u8
14    }
15
16    #[inline]
17    fn day(&self) -> u8 {
18        DateTime::day(*self) as u8
19    }
20
21    #[inline]
22    fn hour(&self) -> u8 {
23        DateTime::hour(*self) as u8
24    }
25
26    #[inline]
27    fn minute(&self) -> u8 {
28        DateTime::minute(*self) as u8
29    }
30
31    #[inline]
32    fn second(&self) -> u8 {
33        DateTime::second(*self) as u8
34    }
35
36    #[inline]
37    fn nanosecond(&self) -> u32 {
38        DateTime::subsec_nanosecond(*self) as u32
39    }
40}
41
42impl DateTimeParts for Zoned {
43    #[inline]
44    fn year(&self) -> i32 {
45        i32::from(self.year())
46    }
47
48    #[inline]
49    fn month(&self) -> u8 {
50        self.month() as u8
51    }
52
53    #[inline]
54    fn day(&self) -> u8 {
55        self.day() as u8
56    }
57
58    #[inline]
59    fn hour(&self) -> u8 {
60        self.hour() as u8
61    }
62
63    #[inline]
64    fn minute(&self) -> u8 {
65        self.minute() as u8
66    }
67
68    #[inline]
69    fn second(&self) -> u8 {
70        self.second() as u8
71    }
72
73    #[inline]
74    fn nanosecond(&self) -> u32 {
75        self.subsec_nanosecond() as u32
76    }
77}