thai_year_conv/lib.rs
1/// Trait สำหรับการแปลงปี
2pub trait YearConversion {
3 /// แปลงปีจาก ค.ศ. เป็น พ.ศ.
4 ///
5 /// # ตัวอย่าง
6 ///
7 /// ```
8 /// use thai_year_conv::Year;
9 /// let year = Year::new(2021);
10 /// assert_eq!(year.to_buddhist_year(), 2564);
11 /// ```
12 fn to_buddhist_year(&self) -> i32;
13
14 /// แปลงปีจาก พ.ศ. เป็น ค.ศ.
15 ///
16 /// # ตัวอย่าง
17 ///
18 /// ```
19 /// use thai_year_conv::Year;
20 /// let year = Year::new(2564);
21 /// assert_eq!(year.to_christian_year(), 2021);
22 /// ```
23 fn to_christian_year(&self) -> i32;
24}
25
26/// Struct สำหรับเก็บปี
27pub struct Year {
28 year: i32,
29}
30
31impl Year {
32 /// สร้าง `Year` ใหม่
33 ///
34 /// # ตัวอย่าง
35 ///
36 /// ```
37 /// use thai_year_conv::Year;
38 /// let year = Year::new(2021);
39 /// ```
40 pub fn new(year: i32) -> Self {
41 Self { year }
42 }
43}
44
45impl YearConversion for Year {
46 fn to_buddhist_year(&self) -> i32 {
47 self.year + 543
48 }
49
50 fn to_christian_year(&self) -> i32 {
51 self.year - 543
52 }
53}