Skip to main content

codex_api/
images.rs

1use serde::Deserialize;
2use serde::Serialize;
3
4#[derive(Debug, Clone, Serialize, PartialEq)]
5pub struct ImageGenerationRequest {
6    pub prompt: String,
7    #[serde(skip_serializing_if = "Option::is_none")]
8    pub background: Option<ImageBackground>,
9    pub model: String,
10    #[serde(skip_serializing_if = "Option::is_none")]
11    pub n: Option<u64>,
12    #[serde(skip_serializing_if = "Option::is_none")]
13    pub quality: Option<ImageQuality>,
14    #[serde(skip_serializing_if = "Option::is_none")]
15    pub size: Option<String>,
16}
17
18#[derive(Debug, Clone, Serialize, PartialEq)]
19pub struct ImageEditRequest {
20    pub images: Vec<ImageUrl>,
21    pub prompt: String,
22    #[serde(skip_serializing_if = "Option::is_none")]
23    pub background: Option<ImageBackground>,
24    pub model: String,
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub n: Option<u64>,
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub quality: Option<ImageQuality>,
29    #[serde(skip_serializing_if = "Option::is_none")]
30    pub size: Option<String>,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
34pub struct ImageUrl {
35    pub image_url: String,
36}
37
38#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
39#[serde(rename_all = "lowercase")]
40pub enum ImageBackground {
41    Transparent,
42    Opaque,
43    Auto,
44}
45
46#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
47#[serde(rename_all = "lowercase")]
48pub enum ImageQuality {
49    Low,
50    Medium,
51    High,
52    Auto,
53}
54
55#[derive(Debug, Clone, Deserialize, PartialEq, Eq)]
56pub struct ImageResponse {
57    pub created: u64,
58    pub data: Vec<ImageData>,
59    #[serde(default)]
60    pub background: Option<ImageBackground>,
61    #[serde(default)]
62    pub quality: Option<ImageQuality>,
63    #[serde(default)]
64    pub size: Option<String>,
65}
66
67#[derive(Debug, Clone, Deserialize, PartialEq, Eq)]
68pub struct ImageData {
69    pub b64_json: String,
70}