1use crate::hangeul::HangeulCharGroup;
6use crate::hangeul::ksx1001::ksx1001_letters;
7
8pub mod base;
9pub mod hangeul;
10
11pub struct HangeulId {
13 pub char_group: HangeulCharGroup
14}
15
16impl HangeulId {
17 pub fn new() -> HangeulId {
19 HangeulId {
20 char_group: HangeulCharGroup::KSX1001
21 }
22 }
23
24 pub fn new_with_char_group(char_group: HangeulCharGroup) -> HangeulId {
38 HangeulId {
39 char_group
40 }
41 }
42
43 pub fn int_to_hangeul_id(&self, integer: usize) -> String {
59 match self.char_group {
60 HangeulCharGroup::KSX1001 => ksx1001_letters(integer),
61 }
62 }
63}
64
65
66#[cfg(test)]
67mod tests {
68 use super::*;
69 #[test]
70 fn int_to_hangeul_id_default_test() {
71 let hangeulid = HangeulId::new();
72 let res = hangeulid.int_to_hangeul_id(5529549);
73 assert_eq!(res, "각간힝".to_string());
74 }
75
76 #[test]
77 fn int_to_hangeul_id_ksx1001_test() {
78 let hangeulid = HangeulId::new_with_char_group(HangeulCharGroup::KSX1001);
79 let res = hangeulid.int_to_hangeul_id(5529549);
80 assert_eq!(res, "각간힝".to_string());
81 }
82}