1use serde::{Deserialize, Serialize};
12use utoipa::ToSchema;
13
14
15use crate::models;
16
17#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, ToSchema)]
18pub struct TextContent {
19 #[serde(rename = "type")]
20 pub r#type: Type,
21 #[serde(rename = "text")]
22 pub text: String,
23 #[serde(rename = "language")]
24 pub language: Language,
25}
26
27impl TextContent {
28 pub fn new(r#type: Type, text: String, language: Language) -> TextContent {
29 TextContent {
30 r#type,
31 text,
32 language,
33 }
34 }
35}
36#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
38pub enum Type {
39 #[serde(rename = "text")]
40 Text,
41}
42
43impl Default for Type {
44 fn default() -> Type {
45 Self::Text
46 }
47}
48#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
50pub enum Language {
51 #[serde(rename = "aa")]
52 Aa,
53 #[serde(rename = "ab")]
54 Ab,
55 #[serde(rename = "ae")]
56 Ae,
57 #[serde(rename = "af")]
58 Af,
59 #[serde(rename = "ak")]
60 Ak,
61 #[serde(rename = "am")]
62 Am,
63 #[serde(rename = "an")]
64 An,
65 #[serde(rename = "ar")]
66 Ar,
67 #[serde(rename = "as")]
68 As,
69 #[serde(rename = "av")]
70 Av,
71 #[serde(rename = "ay")]
72 Ay,
73 #[serde(rename = "az")]
74 Az,
75 #[serde(rename = "ba")]
76 Ba,
77 #[serde(rename = "be")]
78 Be,
79 #[serde(rename = "bg")]
80 Bg,
81 #[serde(rename = "bh")]
82 Bh,
83 #[serde(rename = "bi")]
84 Bi,
85 #[serde(rename = "bm")]
86 Bm,
87 #[serde(rename = "bn")]
88 Bn,
89 #[serde(rename = "bo")]
90 Bo,
91 #[serde(rename = "br")]
92 Br,
93 #[serde(rename = "bs")]
94 Bs,
95 #[serde(rename = "ca")]
96 Ca,
97 #[serde(rename = "ce")]
98 Ce,
99 #[serde(rename = "ch")]
100 Ch,
101 #[serde(rename = "co")]
102 Co,
103 #[serde(rename = "cr")]
104 Cr,
105 #[serde(rename = "cs")]
106 Cs,
107 #[serde(rename = "cu")]
108 Cu,
109 #[serde(rename = "cv")]
110 Cv,
111 #[serde(rename = "cy")]
112 Cy,
113 #[serde(rename = "da")]
114 Da,
115 #[serde(rename = "de")]
116 De,
117 #[serde(rename = "dv")]
118 Dv,
119 #[serde(rename = "dz")]
120 Dz,
121 #[serde(rename = "ee")]
122 Ee,
123 #[serde(rename = "el")]
124 El,
125 #[serde(rename = "en")]
126 En,
127 #[serde(rename = "eo")]
128 Eo,
129 #[serde(rename = "es")]
130 Es,
131 #[serde(rename = "et")]
132 Et,
133 #[serde(rename = "eu")]
134 Eu,
135 #[serde(rename = "fa")]
136 Fa,
137 #[serde(rename = "ff")]
138 Ff,
139 #[serde(rename = "fi")]
140 Fi,
141 #[serde(rename = "fj")]
142 Fj,
143 #[serde(rename = "fo")]
144 Fo,
145 #[serde(rename = "fr")]
146 Fr,
147 #[serde(rename = "fy")]
148 Fy,
149 #[serde(rename = "ga")]
150 Ga,
151 #[serde(rename = "gd")]
152 Gd,
153 #[serde(rename = "gl")]
154 Gl,
155 #[serde(rename = "gn")]
156 Gn,
157 #[serde(rename = "gu")]
158 Gu,
159 #[serde(rename = "gv")]
160 Gv,
161 #[serde(rename = "ha")]
162 Ha,
163 #[serde(rename = "he")]
164 He,
165 #[serde(rename = "hi")]
166 Hi,
167 #[serde(rename = "ho")]
168 Ho,
169 #[serde(rename = "hr")]
170 Hr,
171 #[serde(rename = "ht")]
172 Ht,
173 #[serde(rename = "hu")]
174 Hu,
175 #[serde(rename = "hy")]
176 Hy,
177 #[serde(rename = "hz")]
178 Hz,
179 #[serde(rename = "ia")]
180 Ia,
181 #[serde(rename = "id")]
182 Id,
183 #[serde(rename = "ie")]
184 Ie,
185 #[serde(rename = "ig")]
186 Ig,
187 #[serde(rename = "ii")]
188 Ii,
189 #[serde(rename = "ik")]
190 Ik,
191 #[serde(rename = "io")]
192 Io,
193 #[serde(rename = "is")]
194 Is,
195 #[serde(rename = "it")]
196 It,
197 #[serde(rename = "iu")]
198 Iu,
199 #[serde(rename = "ja")]
200 Ja,
201 #[serde(rename = "jv")]
202 Jv,
203 #[serde(rename = "ka")]
204 Ka,
205 #[serde(rename = "kg")]
206 Kg,
207 #[serde(rename = "ki")]
208 Ki,
209 #[serde(rename = "kj")]
210 Kj,
211 #[serde(rename = "kk")]
212 Kk,
213 #[serde(rename = "kl")]
214 Kl,
215 #[serde(rename = "km")]
216 Km,
217 #[serde(rename = "kn")]
218 Kn,
219 #[serde(rename = "ko")]
220 Ko,
221 #[serde(rename = "kr")]
222 Kr,
223 #[serde(rename = "ks")]
224 Ks,
225 #[serde(rename = "ku")]
226 Ku,
227 #[serde(rename = "kv")]
228 Kv,
229 #[serde(rename = "kw")]
230 Kw,
231 #[serde(rename = "ky")]
232 Ky,
233 #[serde(rename = "la")]
234 La,
235 #[serde(rename = "lb")]
236 Lb,
237 #[serde(rename = "lg")]
238 Lg,
239 #[serde(rename = "li")]
240 Li,
241 #[serde(rename = "ln")]
242 Ln,
243 #[serde(rename = "lo")]
244 Lo,
245 #[serde(rename = "lt")]
246 Lt,
247 #[serde(rename = "lu")]
248 Lu,
249 #[serde(rename = "lv")]
250 Lv,
251 #[serde(rename = "mg")]
252 Mg,
253 #[serde(rename = "mh")]
254 Mh,
255 #[serde(rename = "mi")]
256 Mi,
257 #[serde(rename = "mk")]
258 Mk,
259 #[serde(rename = "ml")]
260 Ml,
261 #[serde(rename = "mn")]
262 Mn,
263 #[serde(rename = "mr")]
264 Mr,
265 #[serde(rename = "ms")]
266 Ms,
267 #[serde(rename = "mt")]
268 Mt,
269 #[serde(rename = "my")]
270 My,
271 #[serde(rename = "na")]
272 Na,
273 #[serde(rename = "nb")]
274 Nb,
275 #[serde(rename = "nd")]
276 Nd,
277 #[serde(rename = "ne")]
278 Ne,
279 #[serde(rename = "ng")]
280 Ng,
281 #[serde(rename = "nl")]
282 Nl,
283 #[serde(rename = "nn")]
284 Nn,
285 #[serde(rename = "no")]
286 No,
287 #[serde(rename = "nr")]
288 Nr,
289 #[serde(rename = "nv")]
290 Nv,
291 #[serde(rename = "ny")]
292 Ny,
293 #[serde(rename = "oc")]
294 Oc,
295 #[serde(rename = "oj")]
296 Oj,
297 #[serde(rename = "om")]
298 Om,
299 #[serde(rename = "or")]
300 Or,
301 #[serde(rename = "os")]
302 Os,
303 #[serde(rename = "pa")]
304 Pa,
305 #[serde(rename = "pi")]
306 Pi,
307 #[serde(rename = "pl")]
308 Pl,
309 #[serde(rename = "ps")]
310 Ps,
311 #[serde(rename = "pt")]
312 Pt,
313 #[serde(rename = "qu")]
314 Qu,
315 #[serde(rename = "rm")]
316 Rm,
317 #[serde(rename = "rn")]
318 Rn,
319 #[serde(rename = "ro")]
320 Ro,
321 #[serde(rename = "ru")]
322 Ru,
323 #[serde(rename = "rw")]
324 Rw,
325 #[serde(rename = "sa")]
326 Sa,
327 #[serde(rename = "sc")]
328 Sc,
329 #[serde(rename = "sd")]
330 Sd,
331 #[serde(rename = "se")]
332 Se,
333 #[serde(rename = "sg")]
334 Sg,
335 #[serde(rename = "si")]
336 Si,
337 #[serde(rename = "sk")]
338 Sk,
339 #[serde(rename = "sl")]
340 Sl,
341 #[serde(rename = "sm")]
342 Sm,
343 #[serde(rename = "sn")]
344 Sn,
345 #[serde(rename = "so")]
346 So,
347 #[serde(rename = "sq")]
348 Sq,
349 #[serde(rename = "sr")]
350 Sr,
351 #[serde(rename = "ss")]
352 Ss,
353 #[serde(rename = "st")]
354 St,
355 #[serde(rename = "su")]
356 Su,
357 #[serde(rename = "sv")]
358 Sv,
359 #[serde(rename = "sw")]
360 Sw,
361 #[serde(rename = "ta")]
362 Ta,
363 #[serde(rename = "te")]
364 Te,
365 #[serde(rename = "tg")]
366 Tg,
367 #[serde(rename = "th")]
368 Th,
369 #[serde(rename = "ti")]
370 Ti,
371 #[serde(rename = "tk")]
372 Tk,
373 #[serde(rename = "tl")]
374 Tl,
375 #[serde(rename = "tn")]
376 Tn,
377 #[serde(rename = "to")]
378 To,
379 #[serde(rename = "tr")]
380 Tr,
381 #[serde(rename = "ts")]
382 Ts,
383 #[serde(rename = "tt")]
384 Tt,
385 #[serde(rename = "tw")]
386 Tw,
387 #[serde(rename = "ty")]
388 Ty,
389 #[serde(rename = "ug")]
390 Ug,
391 #[serde(rename = "uk")]
392 Uk,
393 #[serde(rename = "ur")]
394 Ur,
395 #[serde(rename = "uz")]
396 Uz,
397 #[serde(rename = "ve")]
398 Ve,
399 #[serde(rename = "vi")]
400 Vi,
401 #[serde(rename = "vo")]
402 Vo,
403 #[serde(rename = "wa")]
404 Wa,
405 #[serde(rename = "wo")]
406 Wo,
407 #[serde(rename = "xh")]
408 Xh,
409 #[serde(rename = "yi")]
410 Yi,
411 #[serde(rename = "yue")]
412 Yue,
413 #[serde(rename = "yo")]
414 Yo,
415 #[serde(rename = "za")]
416 Za,
417 #[serde(rename = "zh")]
418 Zh,
419 #[serde(rename = "zu")]
420 Zu,
421}
422
423impl Default for Language {
424 fn default() -> Language {
425 Self::Aa
426 }
427}