async_dashscope/operation/
common.rsuse derive_builder::Builder;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Builder,Serialize,Deserialize, PartialEq)]
pub struct Parameters {
#[builder(setter(into, strip_option))]
#[builder(default=None)]
pub result_format: Option<String>,
#[builder(setter(strip_option))]
#[builder(default=None)]
pub translation_options: Option<TranslationOptions>,
#[builder(setter(into, strip_option))]
#[builder(default=None)]
pub incremental_output: Option<bool>,
}
#[derive(Debug, Clone, Builder,Serialize,Deserialize, PartialEq)]
pub struct StreamOptions {
pub include_usage: bool,
}
#[derive(Debug, Clone, Builder,Serialize,Deserialize, PartialEq)]
pub struct TranslationOptions {
#[builder(setter(into))]
pub source_lang: String,
#[builder(setter(into))]
pub target_lang: String,
#[builder(setter(into, strip_option))]
#[builder(default=None)]
pub terms: Option<Vec<Term>>,
}
#[derive(Debug, Clone, Builder,Serialize,Deserialize, PartialEq)]
pub struct Term {
pub source: String,
pub target: String,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Usage {
#[serde(skip_serializing_if = "Option::is_none")]
pub input_tokens: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub output_tokens: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total_tokens: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image_tokens: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub video_tokens: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub audio_tokens: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub prompt_tokens_details: Option<PromptTokensDetails>
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct PromptTokensDetails {
pub prompt_tokens: i32,
}