#[derive(Clone, Debug, Default)]
pub struct Version {
pub id: String,
pub index: i32,
pub current: Option<bool>,
pub base_loc: crate::schemas::definitions::StLoc,
}
#[derive(Clone, Debug, Default)]
pub struct Versions {
pub version: Vec<Version>,
}
#[derive(Clone, Debug, Default)]
pub struct DocBody {
pub doc_info: CtDocInfo,
pub doc_root: crate::schemas::definitions::StLoc,
pub versions: Option<Versions>,
pub signatures: Option<crate::schemas::definitions::StLoc>,
}
#[derive(Clone, Debug, Default)]
pub struct Ofd {
pub version: String,
pub doc_type: OfdDocType,
pub doc_body: Vec<DocBody>,
}
#[derive(Clone, Debug, Default)]
pub struct Keywords {
pub keyword: Vec<String>,
}
#[derive(Clone, Debug, Default)]
pub struct CustomData {
pub name: String,
pub xml_value: String,
}
#[derive(Clone, Debug, Default)]
pub struct CustomDatas {
pub custom_data: Vec<CustomData>,
}
#[derive(Clone, Debug, Default)]
pub struct CtDocInfo {
pub doc_id: String,
pub title: Option<String>,
pub author: Option<String>,
pub subject: Option<String>,
pub r#abstract: Option<String>,
pub creation_date: Option<String>,
pub mod_date: Option<String>,
pub doc_usage: Option<String>,
pub cover: Option<crate::schemas::definitions::StLoc>,
pub keywords: Option<Keywords>,
pub creator: Option<String>,
pub creator_version: Option<String>,
pub custom_datas: Option<CustomDatas>,
}
#[derive(Clone, Debug, Default)]
pub struct DocInfo(pub CtDocInfo);
impl From<CtDocInfo> for DocInfo {
fn from(value: CtDocInfo) -> Self {
Self(value)
}
}
impl From<DocInfo> for CtDocInfo {
fn from(value: DocInfo) -> Self {
value.0
}
}
impl std::ops::Deref for DocInfo {
type Target = CtDocInfo;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl std::ops::DerefMut for DocInfo {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
#[derive(Clone, Debug, Default)]
pub enum OfdDocType {
#[default]
Ofd,
}