abs_data/models/typed/
month.rs1use 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}