async_dashscope/operation/
common.rs1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
5pub struct Parameters {
6 #[builder(setter(into, strip_option))]
7 #[builder(default=None)]
8 pub result_format: Option<String>,
9 #[builder(setter(strip_option))]
10 #[builder(default=None)]
11 pub translation_options: Option<TranslationOptions>,
12 #[builder(setter(into, strip_option))]
14 #[builder(default=None)]
15 pub incremental_output: Option<bool>,
16}
17
18#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
19pub struct StreamOptions {
20 pub include_usage: bool,
21}
22
23#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
24pub struct TranslationOptions {
25 #[builder(setter(into))]
26 pub source_lang: String,
27 #[builder(setter(into))]
28 pub target_lang: String,
29 #[builder(setter(into, strip_option))]
30 #[builder(default=None)]
31 pub terms: Option<Vec<Term>>,
32}
33
34#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
35pub struct Term {
36 pub source: String,
37 pub target: String,
38}
39
40#[derive(Serialize, Deserialize, Debug, Clone)]
41pub struct Usage {
42 #[serde(skip_serializing_if = "Option::is_none")]
44 pub input_tokens: Option<i32>,
45
46 #[serde(skip_serializing_if = "Option::is_none")]
48 pub output_tokens: Option<i32>,
49
50 #[serde(skip_serializing_if = "Option::is_none")]
52 pub total_tokens: Option<i32>,
53
54 #[serde(skip_serializing_if = "Option::is_none")]
56 pub image_tokens: Option<i32>,
57
58 #[serde(skip_serializing_if = "Option::is_none")]
60 pub video_tokens: Option<i32>,
61
62 #[serde(skip_serializing_if = "Option::is_none")]
64 pub audio_tokens: Option<i32>,
65
66 #[serde(skip_serializing_if = "Option::is_none")]
68 pub prompt_tokens_details: Option<PromptTokensDetails>,
69}
70
71#[derive(Serialize, Deserialize, Debug, Clone)]
72pub struct PromptTokensDetails {
73 pub prompt_tokens: Option<i32>,
75}