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
#[derive(Serialize, Deserialize)]
pub enum Lang {
#[serde(rename = "ko")]
Ko,
#[serde(rename = "en")]
En,
#[serde(rename = "cn")]
Cn,
#[serde(rename = "tw")]
Tw,
#[serde(rename = "es")]
Es,
#[serde(rename = "fr")]
Fr,
#[serde(rename = "vi")]
Vi,
#[serde(rename = "th")]
Th,
#[serde(rename = "id")]
Id,
}
#[derive(Serialize, Deserialize)]
pub struct PapagoReq {
pub source: Lang,
pub target: Lang,
pub text: String,
}
#[derive(Serialize, Deserialize)]
pub struct Message {
#[serde(rename = "@type")]
pub _type: String,
#[serde(rename = "@service")]
pub _service: String,
#[serde(rename = "@version")]
pub _version: String,
pub result: PapagoResult,
}
#[derive(Serialize, Deserialize)]
pub struct PapagoResult {
#[serde(rename = "translatedText")]
pub translated_text: String,
}
#[derive(Serialize, Deserialize)]
#[serde(untagged)]
pub enum PapagoResponse {
Success {
message: Message,
},
Fail {
#[serde(rename = "errorMessage")]
error_message: String,
#[serde(rename = "errorCode")]
error_code: String,
},
}