Skip to main content

u_sdk/translate/
types_rs.rs

1use crate::translate::Client;
2use bon::Builder;
3use serde::{Deserialize, Serialize};
4
5// region    --- translate
6/// 官方文档[Translate](https://help.aliyun.com/zh/machine-translation/developer-reference/api-alimt-2018-10-12-translate)
7#[derive(Builder, Serialize)]
8#[serde(rename_all = "PascalCase")]
9pub struct Translate<'a> {
10    #[builder(start_fn)]
11    #[serde(skip_serializing)]
12    pub(crate) client: &'a Client,
13
14    // 请求参数
15    format_type: &'a str,
16    target_language: &'a str,
17    source_language: &'a str,
18    pub(crate) source_text: &'a str,
19    pub(crate) scene: &'a str,
20    #[serde(skip_serializing_if = "Option::is_none")]
21    context: Option<&'a str>,
22}
23
24#[derive(Deserialize, Debug)]
25#[serde(rename_all = "PascalCase")]
26pub struct TranslateResponse {
27    pub message: Option<String>,
28    #[serde(rename = "RequestId")]
29    pub request_id: String,
30    pub data: Option<TranslateData>,
31    pub code: String,
32}
33
34#[derive(Deserialize, Debug)]
35#[serde(rename_all = "PascalCase")]
36pub struct TranslateData {
37    pub word_count: String,
38    pub translated: String,
39    pub detected_language: Option<String>,
40}
41// endregion --- translate
42
43// region    --- detect language
44#[derive(Builder)]
45pub struct GetDetectLanguage<'a> {
46    #[builder(start_fn)]
47    pub(crate) client: &'a Client,
48    pub(crate) source_text: &'a str,
49}
50#[derive(Deserialize)]
51#[serde(rename_all = "PascalCase")]
52pub(crate) struct GetDetectLanguageResp {
53    pub detected_language: String,
54}
55// endregion --- detect language