use derive_builder::Builder;
use serde::{Deserialize, Serialize};
use crate::operation::{common::Parameters, request::RequestTrait};
#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
pub struct TextToSpeechParam {
#[builder(setter(into))]
pub model: String,
pub input: Input,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(setter(into, strip_option))]
#[builder(default=None)]
pub stream: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(setter(into, strip_option))]
#[builder(default=None)]
pub parameters: Option<Parameters>,
}
#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
pub struct Input {
#[builder(setter(into))]
text: String,
#[builder(setter(into))]
voice: String,
#[builder(setter(into))]
language_type:Option<String>,
}
impl RequestTrait for TextToSpeechParam {
fn model(&self) -> &str {
&self.model
}
fn parameters(&self) -> Option<&Parameters> {
None
}
type P = Parameters;
}