1#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
3#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4#[cfg_attr(
5 feature = "rkyv",
6 derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)
7)]
8#[cfg_attr(feature = "rkyv", rkyv(derive(Debug, Clone, PartialEq, Eq, Hash)))]
9pub struct SeasonNumber(u16);
10
11impl SeasonNumber {
12 pub fn new(num: u16) -> Self {
13 SeasonNumber(num)
14 }
15
16 pub fn value(&self) -> u16 {
17 self.0
18 }
19}
20
21impl std::fmt::Display for SeasonNumber {
22 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
23 write!(f, "{}", self.0)
24 }
25}
26
27impl From<u16> for SeasonNumber {
28 fn from(num: u16) -> Self {
29 SeasonNumber(num)
30 }
31}
32
33impl Default for SeasonNumber {
34 fn default() -> Self {
35 SeasonNumber(1) }
37}
38
39#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
41#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
42#[cfg_attr(
43 feature = "rkyv",
44 derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)
45)]
46#[cfg_attr(feature = "rkyv", rkyv(derive(Debug, Clone, PartialEq, Eq, Hash)))]
47pub struct EpisodeNumber(u16);
48
49impl EpisodeNumber {
50 pub fn new(num: u16) -> Self {
51 EpisodeNumber(num)
52 }
53
54 pub fn value(&self) -> u16 {
55 self.0
56 }
57}
58
59impl std::fmt::Display for EpisodeNumber {
60 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
61 write!(f, "{}", self.0)
62 }
63}
64
65impl From<u16> for EpisodeNumber {
66 fn from(num: u16) -> Self {
67 EpisodeNumber(num)
68 }
69}
70
71impl Default for EpisodeNumber {
72 fn default() -> Self {
73 EpisodeNumber(1) }
75}