#[derive(Clone, Debug, Default)]
pub struct ColorSpace {
pub r#type: CtColorSpaceType,
pub bits_per_component: Option<i32>,
pub profile: Option<crate::schemas::definitions::StLoc>,
pub id: crate::schemas::definitions::StId,
pub palette: Option<Palette>,
}
#[derive(Clone, Debug, Default)]
pub struct ColorSpaces {
pub color_space: Vec<ColorSpace>,
}
#[derive(Clone, Debug, Default)]
pub struct DrawParam {
pub relative: Option<crate::schemas::definitions::StRefId>,
pub line_width: Option<f64>,
pub join: Option<String>,
pub cap: Option<String>,
pub dash_offset: Option<f64>,
pub dash_pattern: Option<crate::schemas::definitions::StArray>,
pub miter_limit: Option<f64>,
pub id: crate::schemas::definitions::StId,
pub fill_color: Option<crate::schemas::page::CtColor>,
pub stroke_color: Option<crate::schemas::page::CtColor>,
}
#[derive(Clone, Debug, Default)]
pub struct DrawParams {
pub draw_param: Vec<DrawParam>,
}
#[derive(Clone, Debug, Default)]
pub struct Font {
pub font_name: String,
pub family_name: Option<String>,
pub charset: Option<CtFontCharset>,
pub italic: Option<bool>,
pub bold: Option<bool>,
pub serif: Option<bool>,
pub fixed_width: Option<bool>,
pub id: crate::schemas::definitions::StId,
pub font_file: Option<crate::schemas::definitions::StLoc>,
}
#[derive(Clone, Debug, Default)]
pub struct Fonts {
pub font: Vec<Font>,
}
#[derive(Clone, Debug, Default)]
pub struct MultiMedia {
pub r#type: CtMultiMediaType,
pub format: Option<String>,
pub id: crate::schemas::definitions::StId,
pub media_file: crate::schemas::definitions::StLoc,
}
#[derive(Clone, Debug, Default)]
pub struct MultiMedias {
pub multi_media: Vec<MultiMedia>,
}
#[derive(Clone, Debug, Default)]
pub struct CompositeGraphicUnit {
pub width: f64,
pub height: f64,
pub id: crate::schemas::definitions::StId,
pub thumbnail: Option<crate::schemas::definitions::StRefId>,
pub substitution: Option<crate::schemas::definitions::StRefId>,
pub content: crate::schemas::page::CtPageBlock,
}
#[derive(Clone, Debug, Default)]
pub struct CompositeGraphicUnits {
pub composite_graphic_unit: Vec<CompositeGraphicUnit>,
}
#[derive(Clone, Debug)]
pub enum ResContentChoice {
ColorSpaces(Box<ColorSpaces>),
DrawParams(Box<DrawParams>),
Fonts(Box<Fonts>),
MultiMedias(Box<MultiMedias>),
CompositeGraphicUnits(Box<CompositeGraphicUnits>),
}
#[derive(Clone, Debug, Default)]
pub struct Res {
pub base_loc: crate::schemas::definitions::StLoc,
pub xml_children: Vec<ResContentChoice>,
}
#[derive(Clone, Debug, Default)]
pub struct Palette {
pub cv: Vec<crate::schemas::definitions::StArray>,
}
#[derive(Clone, Debug, Default)]
pub struct CtColorSpace {
pub r#type: CtColorSpaceType,
pub bits_per_component: Option<i32>,
pub profile: Option<crate::schemas::definitions::StLoc>,
pub palette: Option<Palette>,
}
#[derive(Clone, Debug, Default)]
pub struct CtDrawParam {
pub relative: Option<crate::schemas::definitions::StRefId>,
pub line_width: Option<f64>,
pub join: Option<String>,
pub cap: Option<String>,
pub dash_offset: Option<f64>,
pub dash_pattern: Option<crate::schemas::definitions::StArray>,
pub miter_limit: Option<f64>,
pub fill_color: Option<crate::schemas::page::CtColor>,
pub stroke_color: Option<crate::schemas::page::CtColor>,
}
#[derive(Clone, Debug, Default)]
pub struct CtFont {
pub font_name: String,
pub family_name: Option<String>,
pub charset: Option<CtFontCharset>,
pub italic: Option<bool>,
pub bold: Option<bool>,
pub serif: Option<bool>,
pub fixed_width: Option<bool>,
pub font_file: Option<crate::schemas::definitions::StLoc>,
}
#[derive(Clone, Debug, Default)]
pub struct CtMultiMedia {
pub r#type: CtMultiMediaType,
pub format: Option<String>,
pub media_file: crate::schemas::definitions::StLoc,
}
#[derive(Clone, Debug, Default)]
pub struct CtVectorG {
pub width: f64,
pub height: f64,
pub thumbnail: Option<crate::schemas::definitions::StRefId>,
pub substitution: Option<crate::schemas::definitions::StRefId>,
pub content: crate::schemas::page::CtPageBlock,
}
#[derive(Clone, Debug, Default)]
pub struct FillColor(pub crate::schemas::page::CtColor);
impl From<crate::schemas::page::CtColor> for FillColor {
fn from(value: crate::schemas::page::CtColor) -> Self {
Self(value)
}
}
impl From<FillColor> for crate::schemas::page::CtColor {
fn from(value: FillColor) -> Self {
value.0
}
}
impl std::ops::Deref for FillColor {
type Target = crate::schemas::page::CtColor;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl std::ops::DerefMut for FillColor {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
#[derive(Clone, Debug, Default)]
pub struct StrokeColor(pub crate::schemas::page::CtColor);
impl From<crate::schemas::page::CtColor> for StrokeColor {
fn from(value: crate::schemas::page::CtColor) -> Self {
Self(value)
}
}
impl From<StrokeColor> for crate::schemas::page::CtColor {
fn from(value: StrokeColor) -> Self {
value.0
}
}
impl std::ops::Deref for StrokeColor {
type Target = crate::schemas::page::CtColor;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl std::ops::DerefMut for StrokeColor {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
#[derive(Clone, Debug, Default)]
pub struct Content(pub crate::schemas::page::CtPageBlock);
impl From<crate::schemas::page::CtPageBlock> for Content {
fn from(value: crate::schemas::page::CtPageBlock) -> Self {
Self(value)
}
}
impl From<Content> for crate::schemas::page::CtPageBlock {
fn from(value: Content) -> Self {
value.0
}
}
impl std::ops::Deref for Content {
type Target = crate::schemas::page::CtPageBlock;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl std::ops::DerefMut for Content {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
#[derive(Clone, Debug, Default)]
pub enum CtColorSpaceType {
#[default]
Gray,
Rgb,
Cmyk,
}
#[derive(Clone, Debug, Default)]
pub enum CtFontCharset {
#[default]
Symbol,
Prc,
Big5,
_ShiftJis,
Wansung,
Johab,
Unicode,
}
#[derive(Clone, Debug, Default)]
pub enum CtMultiMediaType {
#[default]
Image,
Audio,
Video,
}