#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct CreateImageRequest {
#[serde(rename = "prompt")]
pub prompt: String,
#[serde(rename = "n", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub n: Option<Option<i32>>,
#[serde(rename = "size", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub size: Option<Option<Size>>,
#[serde(rename = "response_format", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub response_format: Option<Option<ResponseFormat>>,
#[serde(rename = "user", skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
}
impl CreateImageRequest {
pub fn new(prompt: String) -> CreateImageRequest {
CreateImageRequest {
prompt,
n: None,
size: None,
response_format: None,
user: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Size {
#[serde(rename = "256x256")]
Variant256x256,
#[serde(rename = "512x512")]
Variant512x512,
#[serde(rename = "1024x1024")]
Variant1024x1024,
}
impl Default for Size {
fn default() -> Size {
Self::Variant256x256
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ResponseFormat {
#[serde(rename = "url")]
Url,
#[serde(rename = "b64_json")]
B64Json,
}
impl Default for ResponseFormat {
fn default() -> ResponseFormat {
Self::Url
}
}