pharia_skill/csi/language.rs
1use serde::{Deserialize, Serialize};
2
3#[derive(
4 Clone, Copy, Debug, Deserialize, strum::Display, strum::EnumString, Eq, PartialEq, Serialize,
5)]
6#[serde(rename_all = "snake_case")]
7#[strum(serialize_all = "snake_case")]
8pub enum LanguageCode {
9 /// Afrikaans -
10 Afr,
11 /// Arabic -
12 Ara,
13 /// Azerbaijani -
14 Aze,
15 /// Belarusian -
16 Bel,
17 /// Bengali -
18 Ben,
19 /// Bosnian -
20 Bos,
21 /// Bulgarian -
22 Bul,
23 /// Catalan -
24 Cat,
25 /// Czech -
26 Ces,
27 /// Welsh -
28 Cym,
29 /// Danish -
30 Dan,
31 /// German -
32 Deu,
33 /// Greek -
34 Ell,
35 /// English -
36 Eng,
37 /// Esperanto -
38 Epo,
39 /// Estonian -
40 Est,
41 /// Basque -
42 Eus,
43 /// Persian -
44 Fas,
45 /// Finnish -
46 Fin,
47 /// French -
48 Fra,
49 /// Irish -
50 Gle,
51 /// Gujarati -
52 Guj,
53 /// Hebrew -
54 Heb,
55 /// Hindi -
56 Hin,
57 /// Croatian -
58 Hrv,
59 /// Hungarian -
60 Hun,
61 /// Armenian -
62 Hye,
63 /// Indonesian -
64 Ind,
65 /// Icelandic -
66 Isl,
67 /// Italian -
68 Ita,
69 /// Japanese -
70 Jpn,
71 /// Georgian -
72 Kat,
73 /// Kazakh -
74 Kaz,
75 /// Korean -
76 Kor,
77 /// Latin -
78 Lat,
79 /// Latvian -
80 Lav,
81 /// Lithuanian -
82 Lit,
83 /// Ganda -
84 Lug,
85 /// Marathi -
86 Mar,
87 /// Macedonian -
88 Mkd,
89 /// Mongolian -
90 Mon,
91 /// Maori -
92 Mri,
93 /// Malay -
94 Msa,
95 /// Dutch -
96 Nld,
97 /// Norwegian Nynorsk -
98 Nno,
99 /// Norwegian Bokmål -
100 Nob,
101 /// Punjabi -
102 Pan,
103 /// Polish -
104 Pol,
105 /// Portuguese -
106 Por,
107 /// Romanian -
108 Ron,
109 /// Russian -
110 Rus,
111 /// Slovak -
112 Slk,
113 /// Slovene -
114 Slv,
115 /// Shona -
116 Sna,
117 /// Somali -
118 Som,
119 /// Sotho -
120 Sot,
121 /// Spanish -
122 Spa,
123 /// Serbian -
124 Srp,
125 /// Albanian -
126 Sqi,
127 /// Swahili -
128 Swa,
129 /// Swedish -
130 Swe,
131 /// Tamil -
132 Tam,
133 /// Telugu -
134 Tel,
135 /// Tagalog -
136 Tgl,
137 /// Thai -
138 Tha,
139 /// Tswana -
140 Tsn,
141 /// Tsonga -
142 Tso,
143 /// Turkish -
144 Tur,
145 /// Ukrainian -
146 Ukr,
147 /// Urdu -
148 Urd,
149 /// Vietnamese -
150 Vie,
151 /// Xhosa -
152 Xho,
153 /// Yoruba -
154 Yor,
155 /// Chinese -
156 Zho,
157 /// Zulu -
158 Zul,
159}
160
161#[derive(Debug, Serialize)]
162pub struct SelectLanguageRequest {
163 pub text: String,
164 pub languages: Vec<LanguageCode>,
165}
166
167impl SelectLanguageRequest {
168 pub fn new(text: impl Into<String>, languages: impl Into<Vec<LanguageCode>>) -> Self {
169 Self {
170 text: text.into(),
171 languages: languages.into(),
172 }
173 }
174}