use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct OcrPageObject {
#[serde(rename = "index")]
pub index: i32,
#[serde(rename = "markdown")]
pub markdown: String,
#[serde(rename = "images")]
pub images: Vec<models::OcrImageObject>,
#[serde(rename = "tables", skip_serializing_if = "Option::is_none")]
pub tables: Option<Vec<models::OcrTableObject>>,
#[serde(rename = "hyperlinks", skip_serializing_if = "Option::is_none")]
pub hyperlinks: Option<Vec<String>>,
#[serde(rename = "header", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub header: Option<Option<String>>,
#[serde(rename = "footer", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub footer: Option<Option<String>>,
#[serde(rename = "dimensions", deserialize_with = "Option::deserialize")]
pub dimensions: Option<Box<models::OcrPageDimensions>>,
}
impl OcrPageObject {
pub fn new(index: i32, markdown: String, images: Vec<models::OcrImageObject>, dimensions: Option<models::OcrPageDimensions>) -> OcrPageObject {
OcrPageObject {
index,
markdown,
images,
tables: None,
hyperlinks: None,
header: None,
footer: None,
dimensions: if let Some(x) = dimensions {Some(Box::new(x))} else {None},
}
}
}