1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#[derive(Copy, Clone, PartialEq, std::fmt::Debug)]
pub enum Language {
Belarusian,
Bulgarian,
Russian,
Serbian,
Ukrainian,
Nil
}
pub(crate) struct Belarusian {}
pub(crate) struct Bulgarian {}
pub(crate) struct Russian {}
pub(crate) struct Serbian {}
pub(crate) struct Ukrainian {}
pub(crate) struct Nil {}
mod belarusian;
mod bulgarian;
mod russian;
mod serbian;
mod ukrainian;
mod nil;
impl ToString for Language {
fn to_string(&self) -> String {
match self {
Language::Belarusian => String::from("бел"),
Language::Bulgarian => String::from("блг"),
Language::Russian => String::from("рус"),
Language::Serbian => String::from("срб"),
Language::Ukrainian => String::from("укр"),
Language::Nil => String::from("nil")
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_translator_language_to_string() {
assert_eq!(Language::Belarusian.to_string(), String::from("бел"));
assert_eq!(Language::Bulgarian.to_string(), String::from("блг"));
assert_eq!(Language::Russian.to_string(), String::from("рус"));
assert_eq!(Language::Serbian.to_string(), String::from("срб"));
assert_eq!(Language::Ukrainian.to_string(), String::from("укр"));
assert_eq!(Language::Nil.to_string(), String::from("nil"));
}
}