use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ResponseObject {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "object")]
pub object: ObjectTrue,
#[serde(rename = "created_at")]
pub created_at: f64,
#[serde(rename = "status")]
pub status: StatusTrue,
#[serde(
rename = "error",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub error: Option<Option<String>>,
#[serde(rename = "output")]
pub output: Vec<models::ResponseOutputMessage>,
}
impl ResponseObject {
pub fn new(
id: String,
object: ObjectTrue,
created_at: f64,
status: StatusTrue,
output: Vec<models::ResponseOutputMessage>,
) -> ResponseObject {
ResponseObject {
id,
object,
created_at,
status,
error: None,
output,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ObjectTrue {
#[serde(rename = "response")]
Response,
}
impl Default for ObjectTrue {
fn default() -> ObjectTrue {
Self::Response
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum StatusTrue {
#[serde(rename = "completed")]
Completed,
#[serde(rename = "failed")]
Failed,
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "incomplete")]
Incomplete,
}
impl Default for StatusTrue {
fn default() -> StatusTrue {
Self::Completed
}
}