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