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