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