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}