abs_data/models/typed/
semester.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 Semester {
10    First,
11    Second,
12}
13
14impl fmt::Display for Semester {
15    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
16        let semester_str = match self {
17            Self::First => "S1",
18            Self::Second => "S2",
19        };
20        write!(f, "{}", semester_str)
21    }
22}
23
24impl Default for Semester {
25    fn default() -> Self {
26        Self::First
27    }
28}