Codex Handbook
codex-api/src/images.rs 70 lines
use serde::Deserialize;use serde::Serialize;#[derive(Debug, Clone, Serialize, PartialEq)]pub struct ImageGenerationRequest {    pub prompt: String,    #[serde(skip_serializing_if = "Option::is_none")]    pub background: Option<ImageBackground>,    pub model: String,    #[serde(skip_serializing_if = "Option::is_none")]    pub n: Option<u64>,    #[serde(skip_serializing_if = "Option::is_none")]    pub quality: Option<ImageQuality>,    #[serde(skip_serializing_if = "Option::is_none")]    pub size: Option<String>,}#[derive(Debug, Clone, Serialize, PartialEq)]pub struct ImageEditRequest {    pub images: Vec<ImageUrl>,    pub prompt: String,    #[serde(skip_serializing_if = "Option::is_none")]    pub background: Option<ImageBackground>,    pub model: String,    #[serde(skip_serializing_if = "Option::is_none")]    pub n: Option<u64>,    #[serde(skip_serializing_if = "Option::is_none")]    pub quality: Option<ImageQuality>,    #[serde(skip_serializing_if = "Option::is_none")]    pub size: Option<String>,}#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]pub struct ImageUrl {    pub image_url: String,}#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]#[serde(rename_all = "lowercase")]pub enum ImageBackground {    Transparent,    Opaque,    Auto,}#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]#[serde(rename_all = "lowercase")]pub enum ImageQuality {    Low,    Medium,    High,    Auto,}#[derive(Debug, Clone, Deserialize, PartialEq, Eq)]pub struct ImageResponse {    pub created: u64,    pub data: Vec<ImageData>,    #[serde(default)]    pub background: Option<ImageBackground>,    #[serde(default)]    pub quality: Option<ImageQuality>,    #[serde(default)]    pub size: Option<String>,}#[derive(Debug, Clone, Deserialize, PartialEq, Eq)]pub struct ImageData {    pub b64_json: String,}