1use crate::Time;
2
3impl Time {
5 pub fn is_set(&self) -> bool {
7 *self != Self::default()
8 }
9
10 pub fn seconds(&self) -> u32 {
12 self.seconds_since_unix_epoch
13 }
14}
15
16#[derive(PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone, Copy)]
18#[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))]
19#[allow(missing_docs)]
20pub enum Sign {
21 Plus,
22 Minus,
23}
24
25#[derive(Debug, Clone, Copy)]
27pub enum Format<'a> {
28 Custom(&'a [time::format_description::FormatItem<'a>]),
30 Unix,
32 Raw,
34}
35
36pub mod format;
38mod init;
39mod write;
40
41mod sign {
42 use crate::time::Sign;
43
44 impl From<i32> for Sign {
45 fn from(v: i32) -> Self {
46 if v < 0 {
47 Sign::Minus
48 } else {
49 Sign::Plus
50 }
51 }
52 }
53}
54
55mod impls {
56 use crate::{time::Sign, Time};
57
58 impl Default for Time {
59 fn default() -> Self {
60 Time {
61 seconds_since_unix_epoch: 0,
62 offset_in_seconds: 0,
63 sign: Sign::Plus,
64 }
65 }
66 }
67}