#![allow(dead_code)]
use serde::{Deserialize, Serialize};
use super::deser_i32_or_u32;
use super::section::{
HxCaption, HxFlip, HxOffset, HxPoint, HxRenderingInfo, HxRotationInfo, HxSizeAttr, HxSubList,
HxTableMargin, HxTablePos, HxTableSz,
};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxLineShape {
#[serde(rename = "@color", default)]
pub color: String,
#[serde(rename = "@width", default, deserialize_with = "deser_i32_or_u32")]
pub width: i32,
#[serde(rename = "@style", default)]
pub style: String,
#[serde(rename = "@endCap", default)]
pub end_cap: String,
#[serde(rename = "@headStyle", default)]
pub head_style: String,
#[serde(rename = "@tailStyle", default)]
pub tail_style: String,
#[serde(rename = "@headfill", default)]
pub head_fill: u32,
#[serde(rename = "@tailfill", default)]
pub tail_fill: u32,
#[serde(rename = "@headSz", default)]
pub head_sz: String,
#[serde(rename = "@tailSz", default)]
pub tail_sz: String,
#[serde(rename = "@outlineStyle", default)]
pub outline_style: String,
#[serde(rename = "@alpha", default, deserialize_with = "deser_i32_or_u32")]
pub alpha: i32,
}
impl HxLineShape {
pub fn default_solid() -> Self {
Self {
color: "#000000".to_string(),
width: 33,
style: "SOLID".to_string(),
end_cap: "FLAT".to_string(),
head_style: "NORMAL".to_string(),
tail_style: "NORMAL".to_string(),
head_fill: 1,
tail_fill: 1,
head_sz: "MEDIUM_MEDIUM".to_string(),
tail_sz: "MEDIUM_MEDIUM".to_string(),
outline_style: "NORMAL".to_string(),
alpha: 0,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxWinBrush {
#[serde(rename = "@faceColor", default)]
pub face_color: String,
#[serde(rename = "@hatchColor", default)]
pub hatch_color: String,
#[serde(rename = "@hatchStyle", default, skip_serializing_if = "Option::is_none")]
pub hatch_style: Option<String>,
#[serde(rename = "@alpha", default, deserialize_with = "deser_i32_or_u32")]
pub alpha: i32,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxFillBrush {
#[serde(
rename(serialize = "hc:winBrush", deserialize = "winBrush"),
default,
skip_serializing_if = "Option::is_none"
)]
pub win_brush: Option<HxWinBrush>,
#[serde(
rename(serialize = "hc:gradation", deserialize = "gradation"),
default,
skip_serializing_if = "Option::is_none"
)]
pub gradation: Option<HxGradation>,
}
impl HxFillBrush {
pub fn default_white() -> Self {
Self {
win_brush: Some(HxWinBrush {
face_color: "#FFFFFF".to_string(),
hatch_color: "#000000".to_string(),
hatch_style: None,
alpha: 0,
}),
gradation: None,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxGradation {
#[serde(rename = "@type", default)]
pub gradation_type: String,
#[serde(rename = "@angle", default, deserialize_with = "deser_i32_or_u32")]
pub angle: i32,
#[serde(rename = "@centerX", default, deserialize_with = "deser_i32_or_u32")]
pub center_x: i32,
#[serde(rename = "@centerY", default, deserialize_with = "deser_i32_or_u32")]
pub center_y: i32,
#[serde(rename = "@step", default, deserialize_with = "deser_i32_or_u32")]
pub step: i32,
#[serde(rename = "@colorNum", default, deserialize_with = "deser_i32_or_u32")]
pub color_num: i32,
#[serde(rename = "@stepCenter", default, deserialize_with = "deser_i32_or_u32")]
pub step_center: i32,
#[serde(rename = "@alpha", default, deserialize_with = "deser_i32_or_u32")]
pub alpha: i32,
#[serde(rename(serialize = "hc:color", deserialize = "color"), default)]
pub colors: Vec<HxGradColor>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxGradColor {
#[serde(rename = "@value", default)]
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxShadow {
#[serde(rename = "@type", default)]
pub shadow_type: String,
#[serde(rename = "@color", default)]
pub color: String,
#[serde(rename = "@offsetX", default, deserialize_with = "deser_i32_or_u32")]
pub offset_x: i32,
#[serde(rename = "@offsetY", default, deserialize_with = "deser_i32_or_u32")]
pub offset_y: i32,
#[serde(rename = "@alpha", default, deserialize_with = "deser_i32_or_u32")]
pub alpha: i32,
}
impl HxShadow {
pub fn default_none() -> Self {
Self {
shadow_type: "NONE".to_string(),
color: "#B2B2B2".to_string(),
offset_x: 0,
offset_y: 0,
alpha: 0,
}
}
}
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxShapeComment {
#[serde(rename = "$text", default)]
pub text: String,
}
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxRect {
#[serde(rename = "@id", default)]
pub id: String,
#[serde(rename = "@zOrder", default)]
pub z_order: u32,
#[serde(rename = "@numberingType", default)]
pub numbering_type: String,
#[serde(rename = "@textWrap", default)]
pub text_wrap: String,
#[serde(rename = "@textFlow", default)]
pub text_flow: String,
#[serde(rename = "@lock", default)]
pub lock: u32,
#[serde(rename = "@dropcapstyle", default)]
pub dropcap_style: String,
#[serde(rename = "@href", default)]
pub href: String,
#[serde(rename = "@groupLevel", default)]
pub group_level: u32,
#[serde(rename = "@instid", default)]
pub instid: String,
#[serde(rename = "@ratio", default)]
pub ratio: u8,
#[serde(
rename(serialize = "hp:offset", deserialize = "offset"),
default,
skip_serializing_if = "Option::is_none"
)]
pub offset: Option<HxOffset>,
#[serde(
rename(serialize = "hp:orgSz", deserialize = "orgSz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub org_sz: Option<HxSizeAttr>,
#[serde(
rename(serialize = "hp:curSz", deserialize = "curSz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub cur_sz: Option<HxSizeAttr>,
#[serde(
rename(serialize = "hp:flip", deserialize = "flip"),
default,
skip_serializing_if = "Option::is_none"
)]
pub flip: Option<HxFlip>,
#[serde(
rename(serialize = "hp:rotationInfo", deserialize = "rotationInfo"),
default,
skip_serializing_if = "Option::is_none"
)]
pub rotation_info: Option<HxRotationInfo>,
#[serde(
rename(serialize = "hp:renderingInfo", deserialize = "renderingInfo"),
default,
skip_serializing_if = "Option::is_none"
)]
pub rendering_info: Option<HxRenderingInfo>,
#[serde(
rename(serialize = "hp:lineShape", deserialize = "lineShape"),
default,
skip_serializing_if = "Option::is_none"
)]
pub line_shape: Option<HxLineShape>,
#[serde(
rename(serialize = "hc:fillBrush", deserialize = "fillBrush"),
default,
skip_serializing_if = "Option::is_none"
)]
pub fill_brush: Option<HxFillBrush>,
#[serde(
rename(serialize = "hp:shadow", deserialize = "shadow"),
default,
skip_serializing_if = "Option::is_none"
)]
pub shadow: Option<HxShadow>,
#[serde(
rename(serialize = "hp:drawText", deserialize = "drawText"),
default,
skip_serializing_if = "Option::is_none"
)]
pub draw_text: Option<HxDrawText>,
#[serde(
rename(serialize = "hp:caption", deserialize = "caption"),
default,
skip_serializing_if = "Option::is_none"
)]
pub caption: Option<HxCaption>,
#[serde(
rename(serialize = "hc:pt0", deserialize = "pt0"),
default,
skip_serializing_if = "Option::is_none"
)]
pub pt0: Option<HxPoint>,
#[serde(
rename(serialize = "hc:pt1", deserialize = "pt1"),
default,
skip_serializing_if = "Option::is_none"
)]
pub pt1: Option<HxPoint>,
#[serde(
rename(serialize = "hc:pt2", deserialize = "pt2"),
default,
skip_serializing_if = "Option::is_none"
)]
pub pt2: Option<HxPoint>,
#[serde(
rename(serialize = "hc:pt3", deserialize = "pt3"),
default,
skip_serializing_if = "Option::is_none"
)]
pub pt3: Option<HxPoint>,
#[serde(
rename(serialize = "hp:sz", deserialize = "sz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub sz: Option<HxTableSz>,
#[serde(
rename(serialize = "hp:pos", deserialize = "pos"),
default,
skip_serializing_if = "Option::is_none"
)]
pub pos: Option<HxTablePos>,
#[serde(
rename(serialize = "hp:outMargin", deserialize = "outMargin"),
default,
skip_serializing_if = "Option::is_none"
)]
pub out_margin: Option<HxTableMargin>,
#[serde(
rename(serialize = "hp:shapeComment", deserialize = "shapeComment"),
default,
skip_serializing_if = "Option::is_none"
)]
pub shape_comment: Option<HxShapeComment>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxDrawText {
#[serde(rename = "@lastWidth", default)]
pub last_width: u32,
#[serde(rename = "@name", default)]
pub name: String,
#[serde(rename = "@editable", default)]
pub editable: u32,
#[serde(rename(serialize = "hp:subList", deserialize = "subList"))]
pub sub_list: HxSubList,
#[serde(
rename(serialize = "hp:textMargin", deserialize = "textMargin"),
default,
skip_serializing_if = "Option::is_none"
)]
pub text_margin: Option<HxTableMargin>,
}
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxLine {
#[serde(rename = "@id", default)]
pub id: String,
#[serde(rename = "@zOrder", default)]
pub z_order: u32,
#[serde(rename = "@numberingType", default)]
pub numbering_type: String,
#[serde(rename = "@textWrap", default)]
pub text_wrap: String,
#[serde(rename = "@textFlow", default)]
pub text_flow: String,
#[serde(rename = "@lock", default)]
pub lock: u32,
#[serde(rename = "@dropcapstyle", default)]
pub dropcap_style: String,
#[serde(rename = "@href", default)]
pub href: String,
#[serde(rename = "@groupLevel", default)]
pub group_level: u32,
#[serde(rename = "@instid", default)]
pub instid: String,
#[serde(rename = "@isReverseHV", default)]
pub is_reverse_hv: u32,
#[serde(
rename(serialize = "hp:offset", deserialize = "offset"),
default,
skip_serializing_if = "Option::is_none"
)]
pub offset: Option<HxOffset>,
#[serde(
rename(serialize = "hp:orgSz", deserialize = "orgSz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub org_sz: Option<HxSizeAttr>,
#[serde(
rename(serialize = "hp:curSz", deserialize = "curSz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub cur_sz: Option<HxSizeAttr>,
#[serde(
rename(serialize = "hp:flip", deserialize = "flip"),
default,
skip_serializing_if = "Option::is_none"
)]
pub flip: Option<HxFlip>,
#[serde(
rename(serialize = "hp:rotationInfo", deserialize = "rotationInfo"),
default,
skip_serializing_if = "Option::is_none"
)]
pub rotation_info: Option<HxRotationInfo>,
#[serde(
rename(serialize = "hp:renderingInfo", deserialize = "renderingInfo"),
default,
skip_serializing_if = "Option::is_none"
)]
pub rendering_info: Option<HxRenderingInfo>,
#[serde(
rename(serialize = "hp:lineShape", deserialize = "lineShape"),
default,
skip_serializing_if = "Option::is_none"
)]
pub line_shape: Option<HxLineShape>,
#[serde(
rename(serialize = "hc:fillBrush", deserialize = "fillBrush"),
default,
skip_serializing_if = "Option::is_none"
)]
pub fill_brush: Option<HxFillBrush>,
#[serde(
rename(serialize = "hp:shadow", deserialize = "shadow"),
default,
skip_serializing_if = "Option::is_none"
)]
pub shadow: Option<HxShadow>,
#[serde(
rename(serialize = "hc:startPt", deserialize = "startPt"),
default,
skip_serializing_if = "Option::is_none"
)]
pub start_pt: Option<HxPoint>,
#[serde(
rename(serialize = "hc:endPt", deserialize = "endPt"),
default,
skip_serializing_if = "Option::is_none"
)]
pub end_pt: Option<HxPoint>,
#[serde(
rename(serialize = "hp:sz", deserialize = "sz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub sz: Option<HxTableSz>,
#[serde(
rename(serialize = "hp:pos", deserialize = "pos"),
default,
skip_serializing_if = "Option::is_none"
)]
pub pos: Option<HxTablePos>,
#[serde(
rename(serialize = "hp:outMargin", deserialize = "outMargin"),
default,
skip_serializing_if = "Option::is_none"
)]
pub out_margin: Option<HxTableMargin>,
#[serde(
rename(serialize = "hp:shapeComment", deserialize = "shapeComment"),
default,
skip_serializing_if = "Option::is_none"
)]
pub shape_comment: Option<HxShapeComment>,
#[serde(
rename(serialize = "hp:caption", deserialize = "caption"),
default,
skip_serializing_if = "Option::is_none"
)]
pub caption: Option<HxCaption>,
}
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxEllipse {
#[serde(rename = "@id", default)]
pub id: String,
#[serde(rename = "@zOrder", default)]
pub z_order: u32,
#[serde(rename = "@numberingType", default)]
pub numbering_type: String,
#[serde(rename = "@textWrap", default)]
pub text_wrap: String,
#[serde(rename = "@textFlow", default)]
pub text_flow: String,
#[serde(rename = "@lock", default)]
pub lock: u32,
#[serde(rename = "@dropcapstyle", default)]
pub dropcap_style: String,
#[serde(rename = "@href", default)]
pub href: String,
#[serde(rename = "@groupLevel", default)]
pub group_level: u32,
#[serde(rename = "@instid", default)]
pub instid: String,
#[serde(rename = "@intervalDirty", default)]
pub interval_dirty: u32,
#[serde(rename = "@hasArcPr", default)]
pub has_arc_pr: u32,
#[serde(rename = "@arcType", default)]
pub arc_type: String,
#[serde(
rename(serialize = "hp:offset", deserialize = "offset"),
default,
skip_serializing_if = "Option::is_none"
)]
pub offset: Option<HxOffset>,
#[serde(
rename(serialize = "hp:orgSz", deserialize = "orgSz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub org_sz: Option<HxSizeAttr>,
#[serde(
rename(serialize = "hp:curSz", deserialize = "curSz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub cur_sz: Option<HxSizeAttr>,
#[serde(
rename(serialize = "hp:flip", deserialize = "flip"),
default,
skip_serializing_if = "Option::is_none"
)]
pub flip: Option<HxFlip>,
#[serde(
rename(serialize = "hp:rotationInfo", deserialize = "rotationInfo"),
default,
skip_serializing_if = "Option::is_none"
)]
pub rotation_info: Option<HxRotationInfo>,
#[serde(
rename(serialize = "hp:renderingInfo", deserialize = "renderingInfo"),
default,
skip_serializing_if = "Option::is_none"
)]
pub rendering_info: Option<HxRenderingInfo>,
#[serde(
rename(serialize = "hp:lineShape", deserialize = "lineShape"),
default,
skip_serializing_if = "Option::is_none"
)]
pub line_shape: Option<HxLineShape>,
#[serde(
rename(serialize = "hc:fillBrush", deserialize = "fillBrush"),
default,
skip_serializing_if = "Option::is_none"
)]
pub fill_brush: Option<HxFillBrush>,
#[serde(
rename(serialize = "hp:shadow", deserialize = "shadow"),
default,
skip_serializing_if = "Option::is_none"
)]
pub shadow: Option<HxShadow>,
#[serde(
rename(serialize = "hc:center", deserialize = "center"),
default,
skip_serializing_if = "Option::is_none"
)]
pub center: Option<HxPoint>,
#[serde(
rename(serialize = "hc:ax1", deserialize = "ax1"),
default,
skip_serializing_if = "Option::is_none"
)]
pub ax1: Option<HxPoint>,
#[serde(
rename(serialize = "hc:ax2", deserialize = "ax2"),
default,
skip_serializing_if = "Option::is_none"
)]
pub ax2: Option<HxPoint>,
#[serde(
rename(serialize = "hc:start1", deserialize = "start1"),
default,
skip_serializing_if = "Option::is_none"
)]
pub start1: Option<HxPoint>,
#[serde(
rename(serialize = "hc:end1", deserialize = "end1"),
default,
skip_serializing_if = "Option::is_none"
)]
pub end1: Option<HxPoint>,
#[serde(
rename(serialize = "hc:start2", deserialize = "start2"),
default,
skip_serializing_if = "Option::is_none"
)]
pub start2: Option<HxPoint>,
#[serde(
rename(serialize = "hc:end2", deserialize = "end2"),
default,
skip_serializing_if = "Option::is_none"
)]
pub end2: Option<HxPoint>,
#[serde(
rename(serialize = "hp:sz", deserialize = "sz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub sz: Option<HxTableSz>,
#[serde(
rename(serialize = "hp:pos", deserialize = "pos"),
default,
skip_serializing_if = "Option::is_none"
)]
pub pos: Option<HxTablePos>,
#[serde(
rename(serialize = "hp:outMargin", deserialize = "outMargin"),
default,
skip_serializing_if = "Option::is_none"
)]
pub out_margin: Option<HxTableMargin>,
#[serde(
rename(serialize = "hp:shapeComment", deserialize = "shapeComment"),
default,
skip_serializing_if = "Option::is_none"
)]
pub shape_comment: Option<HxShapeComment>,
#[serde(
rename(serialize = "hp:caption", deserialize = "caption"),
default,
skip_serializing_if = "Option::is_none"
)]
pub caption: Option<HxCaption>,
#[serde(
rename(serialize = "hp:drawText", deserialize = "drawText"),
default,
skip_serializing_if = "Option::is_none"
)]
pub draw_text: Option<HxDrawText>,
}
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxPolygon {
#[serde(rename = "@id", default)]
pub id: String,
#[serde(rename = "@zOrder", default)]
pub z_order: u32,
#[serde(rename = "@numberingType", default)]
pub numbering_type: String,
#[serde(rename = "@textWrap", default)]
pub text_wrap: String,
#[serde(rename = "@textFlow", default)]
pub text_flow: String,
#[serde(rename = "@lock", default)]
pub lock: u32,
#[serde(rename = "@dropcapstyle", default)]
pub dropcap_style: String,
#[serde(rename = "@href", default)]
pub href: String,
#[serde(rename = "@groupLevel", default)]
pub group_level: u32,
#[serde(rename = "@instid", default)]
pub instid: String,
#[serde(
rename(serialize = "hp:offset", deserialize = "offset"),
default,
skip_serializing_if = "Option::is_none"
)]
pub offset: Option<HxOffset>,
#[serde(
rename(serialize = "hp:orgSz", deserialize = "orgSz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub org_sz: Option<HxSizeAttr>,
#[serde(
rename(serialize = "hp:curSz", deserialize = "curSz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub cur_sz: Option<HxSizeAttr>,
#[serde(
rename(serialize = "hp:flip", deserialize = "flip"),
default,
skip_serializing_if = "Option::is_none"
)]
pub flip: Option<HxFlip>,
#[serde(
rename(serialize = "hp:rotationInfo", deserialize = "rotationInfo"),
default,
skip_serializing_if = "Option::is_none"
)]
pub rotation_info: Option<HxRotationInfo>,
#[serde(
rename(serialize = "hp:renderingInfo", deserialize = "renderingInfo"),
default,
skip_serializing_if = "Option::is_none"
)]
pub rendering_info: Option<HxRenderingInfo>,
#[serde(
rename(serialize = "hp:lineShape", deserialize = "lineShape"),
default,
skip_serializing_if = "Option::is_none"
)]
pub line_shape: Option<HxLineShape>,
#[serde(
rename(serialize = "hc:fillBrush", deserialize = "fillBrush"),
default,
skip_serializing_if = "Option::is_none"
)]
pub fill_brush: Option<HxFillBrush>,
#[serde(
rename(serialize = "hp:shadow", deserialize = "shadow"),
default,
skip_serializing_if = "Option::is_none"
)]
pub shadow: Option<HxShadow>,
#[serde(
rename(serialize = "hp:sz", deserialize = "sz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub sz: Option<HxTableSz>,
#[serde(
rename(serialize = "hp:pos", deserialize = "pos"),
default,
skip_serializing_if = "Option::is_none"
)]
pub pos: Option<HxTablePos>,
#[serde(
rename(serialize = "hp:outMargin", deserialize = "outMargin"),
default,
skip_serializing_if = "Option::is_none"
)]
pub out_margin: Option<HxTableMargin>,
#[serde(
rename(serialize = "hp:shapeComment", deserialize = "shapeComment"),
default,
skip_serializing_if = "Option::is_none"
)]
pub shape_comment: Option<HxShapeComment>,
#[serde(
rename(serialize = "hp:caption", deserialize = "caption"),
default,
skip_serializing_if = "Option::is_none"
)]
pub caption: Option<HxCaption>,
#[serde(
rename(serialize = "hp:drawText", deserialize = "drawText"),
default,
skip_serializing_if = "Option::is_none"
)]
pub draw_text: Option<HxDrawText>,
#[serde(
rename(serialize = "hc:pt", deserialize = "pt"),
default,
skip_serializing_if = "Vec::is_empty"
)]
pub points: Vec<HxPoint>,
}
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxCurve {
#[serde(rename = "@id", default)]
pub id: String,
#[serde(rename = "@zOrder", default)]
pub z_order: u32,
#[serde(rename = "@numberingType", default)]
pub numbering_type: String,
#[serde(rename = "@textWrap", default)]
pub text_wrap: String,
#[serde(rename = "@textFlow", default)]
pub text_flow: String,
#[serde(rename = "@lock", default)]
pub lock: u32,
#[serde(rename = "@dropcapstyle", default)]
pub dropcap_style: String,
#[serde(rename = "@href", default)]
pub href: String,
#[serde(rename = "@groupLevel", default)]
pub group_level: u32,
#[serde(rename = "@instid", default)]
pub instid: String,
#[serde(
rename(serialize = "hp:offset", deserialize = "offset"),
default,
skip_serializing_if = "Option::is_none"
)]
pub offset: Option<HxOffset>,
#[serde(
rename(serialize = "hp:orgSz", deserialize = "orgSz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub org_sz: Option<HxSizeAttr>,
#[serde(
rename(serialize = "hp:curSz", deserialize = "curSz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub cur_sz: Option<HxSizeAttr>,
#[serde(
rename(serialize = "hp:flip", deserialize = "flip"),
default,
skip_serializing_if = "Option::is_none"
)]
pub flip: Option<HxFlip>,
#[serde(
rename(serialize = "hp:rotationInfo", deserialize = "rotationInfo"),
default,
skip_serializing_if = "Option::is_none"
)]
pub rotation_info: Option<HxRotationInfo>,
#[serde(
rename(serialize = "hp:renderingInfo", deserialize = "renderingInfo"),
default,
skip_serializing_if = "Option::is_none"
)]
pub rendering_info: Option<HxRenderingInfo>,
#[serde(
rename(serialize = "hp:lineShape", deserialize = "lineShape"),
default,
skip_serializing_if = "Option::is_none"
)]
pub line_shape: Option<HxLineShape>,
#[serde(
rename(serialize = "hc:fillBrush", deserialize = "fillBrush"),
default,
skip_serializing_if = "Option::is_none"
)]
pub fill_brush: Option<HxFillBrush>,
#[serde(
rename(serialize = "hp:shadow", deserialize = "shadow"),
default,
skip_serializing_if = "Option::is_none"
)]
pub shadow: Option<HxShadow>,
#[serde(
rename(serialize = "hp:sz", deserialize = "sz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub sz: Option<HxTableSz>,
#[serde(
rename(serialize = "hp:pos", deserialize = "pos"),
default,
skip_serializing_if = "Option::is_none"
)]
pub pos: Option<HxTablePos>,
#[serde(
rename(serialize = "hp:outMargin", deserialize = "outMargin"),
default,
skip_serializing_if = "Option::is_none"
)]
pub out_margin: Option<HxTableMargin>,
#[serde(
rename(serialize = "hp:shapeComment", deserialize = "shapeComment"),
default,
skip_serializing_if = "Option::is_none"
)]
pub shape_comment: Option<HxShapeComment>,
#[serde(
rename(serialize = "hp:caption", deserialize = "caption"),
default,
skip_serializing_if = "Option::is_none"
)]
pub caption: Option<HxCaption>,
#[serde(
rename(serialize = "hc:pt", deserialize = "pt"),
default,
skip_serializing_if = "Vec::is_empty"
)]
pub points: Vec<HxPoint>,
#[serde(
rename(serialize = "hp:seg", deserialize = "seg"),
default,
skip_serializing_if = "Vec::is_empty"
)]
pub segments: Vec<HxCurveSegment>,
}
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxCurveSegment {
#[serde(rename = "@type", default)]
pub seg_type: String,
#[serde(rename = "@x1", default, deserialize_with = "deser_i32_or_u32")]
pub x1: i32,
#[serde(rename = "@y1", default, deserialize_with = "deser_i32_or_u32")]
pub y1: i32,
#[serde(rename = "@x2", default, deserialize_with = "deser_i32_or_u32")]
pub x2: i32,
#[serde(rename = "@y2", default, deserialize_with = "deser_i32_or_u32")]
pub y2: i32,
}
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxConnectPoint {
#[serde(rename = "@x", default, deserialize_with = "deser_i32_or_u32")]
pub x: i32,
#[serde(rename = "@y", default, deserialize_with = "deser_i32_or_u32")]
pub y: i32,
#[serde(rename = "@subjectIDRef", default)]
pub subject_id_ref: String,
#[serde(rename = "@subjectIdx", default)]
pub subject_idx: String,
}
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxControlPoint {
#[serde(rename = "@x", default, deserialize_with = "deser_i32_or_u32")]
pub x: i32,
#[serde(rename = "@y", default, deserialize_with = "deser_i32_or_u32")]
pub y: i32,
#[serde(rename = "@type", default)]
pub point_type: String,
}
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxControlPoints {
#[serde(
rename(serialize = "hp:point", deserialize = "point"),
default,
skip_serializing_if = "Vec::is_empty"
)]
pub points: Vec<HxControlPoint>,
}
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
pub struct HxConnectLine {
#[serde(rename = "@id", default)]
pub id: String,
#[serde(rename = "@zOrder", default)]
pub z_order: u32,
#[serde(rename = "@numberingType", default)]
pub numbering_type: String,
#[serde(rename = "@textWrap", default)]
pub text_wrap: String,
#[serde(rename = "@textFlow", default)]
pub text_flow: String,
#[serde(rename = "@lock", default)]
pub lock: u32,
#[serde(rename = "@dropcapstyle", default)]
pub dropcap_style: String,
#[serde(rename = "@href", default)]
pub href: String,
#[serde(rename = "@groupLevel", default)]
pub group_level: u32,
#[serde(rename = "@instid", default)]
pub instid: String,
#[serde(rename = "@type", default)]
pub connect_type: String,
#[serde(
rename(serialize = "hp:offset", deserialize = "offset"),
default,
skip_serializing_if = "Option::is_none"
)]
pub offset: Option<HxOffset>,
#[serde(
rename(serialize = "hp:orgSz", deserialize = "orgSz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub org_sz: Option<HxSizeAttr>,
#[serde(
rename(serialize = "hp:curSz", deserialize = "curSz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub cur_sz: Option<HxSizeAttr>,
#[serde(
rename(serialize = "hp:flip", deserialize = "flip"),
default,
skip_serializing_if = "Option::is_none"
)]
pub flip: Option<HxFlip>,
#[serde(
rename(serialize = "hp:rotationInfo", deserialize = "rotationInfo"),
default,
skip_serializing_if = "Option::is_none"
)]
pub rotation_info: Option<HxRotationInfo>,
#[serde(
rename(serialize = "hp:renderingInfo", deserialize = "renderingInfo"),
default,
skip_serializing_if = "Option::is_none"
)]
pub rendering_info: Option<HxRenderingInfo>,
#[serde(
rename(serialize = "hp:lineShape", deserialize = "lineShape"),
default,
skip_serializing_if = "Option::is_none"
)]
pub line_shape: Option<HxLineShape>,
#[serde(
rename(serialize = "hc:fillBrush", deserialize = "fillBrush"),
default,
skip_serializing_if = "Option::is_none"
)]
pub fill_brush: Option<HxFillBrush>,
#[serde(
rename(serialize = "hp:shadow", deserialize = "shadow"),
default,
skip_serializing_if = "Option::is_none"
)]
pub shadow: Option<HxShadow>,
#[serde(
rename(serialize = "hp:startPt", deserialize = "startPt"),
default,
skip_serializing_if = "Option::is_none"
)]
pub start_pt: Option<HxConnectPoint>,
#[serde(
rename(serialize = "hp:endPt", deserialize = "endPt"),
default,
skip_serializing_if = "Option::is_none"
)]
pub end_pt: Option<HxConnectPoint>,
#[serde(
rename(serialize = "hp:controlPoints", deserialize = "controlPoints"),
default,
skip_serializing_if = "Option::is_none"
)]
pub control_points: Option<HxControlPoints>,
#[serde(
rename(serialize = "hp:sz", deserialize = "sz"),
default,
skip_serializing_if = "Option::is_none"
)]
pub sz: Option<HxTableSz>,
#[serde(
rename(serialize = "hp:pos", deserialize = "pos"),
default,
skip_serializing_if = "Option::is_none"
)]
pub pos: Option<HxTablePos>,
#[serde(
rename(serialize = "hp:outMargin", deserialize = "outMargin"),
default,
skip_serializing_if = "Option::is_none"
)]
pub out_margin: Option<HxTableMargin>,
#[serde(
rename(serialize = "hp:shapeComment", deserialize = "shapeComment"),
default,
skip_serializing_if = "Option::is_none"
)]
pub shape_comment: Option<HxShapeComment>,
#[serde(
rename(serialize = "hp:caption", deserialize = "caption"),
default,
skip_serializing_if = "Option::is_none"
)]
pub caption: Option<HxCaption>,
}