abs_data/models/typed/
month.rs

1use std::fmt;
2
3use serde::{Deserialize, Serialize};
4use strum_macros::EnumIter;
5
6#[derive(
7    Debug, Copy, Clone, Hash, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, EnumIter,
8)]
9pub enum Month {
10    Jan,
11    Feb,
12    Mar,
13    Apr,
14    May,
15    Jun,
16    Jul,
17    Aug,
18    Sep,
19    Oct,
20    Nov,
21    Dec,
22}
23
24impl fmt::Display for Month {
25    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
26        let month_number = match self {
27            Self::Jan => "01",
28            Self::Feb => "02",
29            Self::Mar => "03",
30            Self::Apr => "04",
31            Self::May => "05",
32            Self::Jun => "06",
33            Self::Jul => "07",
34            Self::Aug => "08",
35            Self::Sep => "09",
36            Self::Oct => "10",
37            Self::Nov => "11",
38            Self::Dec => "12",
39        };
40        write!(f, "{}", month_number)
41    }
42}
43
44impl Default for Month {
45    fn default() -> Self {
46        Self::Jan
47    }
48}