1pub use sys::ffi::PDDateTime;
2
3use crate::api::Api;
4
5
6pub trait PDDateTimeExt {
7 fn to_epoch(&self) -> u32;
8 fn from_epoch(epoch: u32) -> Self;
9
10 fn from_epoch_to(dt: &mut Self, epoch: u32);
11}
12
13
14impl PDDateTimeExt for PDDateTime {
15 fn to_epoch(&self) -> u32 {
16 let f = super::api::Default::default().convert_date_time_to_epoch();
17 unsafe { f(self as *const _ as *mut _) }
18 }
19
20 fn from_epoch(epoch: u32) -> Self {
21 let mut dt = PDDateTime { year: 0,
22 month: 0,
23 day: 0,
24 weekday: 0,
25 hour: 0,
26 minute: 0,
27 second: 0 };
28 let f = super::api::Default::default().convert_epoch_to_date_time();
29 unsafe { f(epoch, &mut dt) };
30 dt
31 }
32
33 fn from_epoch_to(dt: &mut Self, epoch: u32) {
34 let f = super::api::Default::default().convert_epoch_to_date_time();
35 unsafe { f(epoch, dt) }
36 }
37}