abs_data/models/typed/
quarter.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 Quarter {
10    First,
11    Second,
12    Third,
13    Fourth,
14}
15
16impl fmt::Display for Quarter {
17    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
18        let quarter_str = match self {
19            Self::First => "Q1",
20            Self::Second => "Q2",
21            Self::Third => "Q3",
22            Self::Fourth => "Q4",
23        };
24        write!(f, "{}", quarter_str)
25    }
26}
27
28impl Default for Quarter {
29    fn default() -> Self {
30        Self::First
31    }
32}