Skip to main content

ooxml_dml/
generated.rs

1// Generated from ECMA-376 RELAX NG schema.
2// Do not edit manually.
3
4use serde::{Deserialize, Serialize};
5
6/// XML namespace URIs used in this schema.
7pub mod ns {
8    /// Namespace prefix: o
9    pub const O: &str = "urn:schemas-microsoft-com:office:office";
10    /// Namespace prefix: s
11    pub const S: &str = "http://schemas.openxmlformats.org/officeDocument/2006/sharedTypes";
12    /// Namespace prefix: v
13    pub const V: &str = "urn:schemas-microsoft-com:vml";
14    /// Namespace prefix: w10
15    pub const W10: &str = "urn:schemas-microsoft-com:office:word";
16    /// Namespace prefix: x
17    pub const X: &str = "urn:schemas-microsoft-com:office:excel";
18    /// Namespace prefix: r
19    pub const R: &str = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
20    /// Namespace prefix: a
21    pub const A: &str = "http://schemas.openxmlformats.org/drawingml/2006/main";
22    /// Namespace prefix: cdr
23    pub const CDR: &str = "http://schemas.openxmlformats.org/drawingml/2006/chartDrawing";
24    /// Namespace prefix: dchrt
25    pub const DCHRT: &str = "http://schemas.openxmlformats.org/drawingml/2006/chart";
26    /// Namespace prefix: ddgrm
27    pub const DDGRM: &str = "http://schemas.openxmlformats.org/drawingml/2006/diagram";
28}
29
30pub type Language = String;
31
32pub type HexColorRgb = Vec<u8>;
33
34pub type Panose = Vec<u8>;
35
36#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
37pub enum CalendarType {
38    #[serde(rename = "gregorian")]
39    Gregorian,
40    #[serde(rename = "gregorianUs")]
41    GregorianUs,
42    #[serde(rename = "gregorianMeFrench")]
43    GregorianMeFrench,
44    #[serde(rename = "gregorianArabic")]
45    GregorianArabic,
46    #[serde(rename = "hijri")]
47    Hijri,
48    #[serde(rename = "hebrew")]
49    Hebrew,
50    #[serde(rename = "taiwan")]
51    Taiwan,
52    #[serde(rename = "japan")]
53    Japan,
54    #[serde(rename = "thai")]
55    Thai,
56    #[serde(rename = "korea")]
57    Korea,
58    #[serde(rename = "saka")]
59    Saka,
60    #[serde(rename = "gregorianXlitEnglish")]
61    GregorianXlitEnglish,
62    #[serde(rename = "gregorianXlitFrench")]
63    GregorianXlitFrench,
64    #[serde(rename = "none")]
65    None,
66}
67
68impl std::fmt::Display for CalendarType {
69    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
70        match self {
71            Self::Gregorian => write!(f, "gregorian"),
72            Self::GregorianUs => write!(f, "gregorianUs"),
73            Self::GregorianMeFrench => write!(f, "gregorianMeFrench"),
74            Self::GregorianArabic => write!(f, "gregorianArabic"),
75            Self::Hijri => write!(f, "hijri"),
76            Self::Hebrew => write!(f, "hebrew"),
77            Self::Taiwan => write!(f, "taiwan"),
78            Self::Japan => write!(f, "japan"),
79            Self::Thai => write!(f, "thai"),
80            Self::Korea => write!(f, "korea"),
81            Self::Saka => write!(f, "saka"),
82            Self::GregorianXlitEnglish => write!(f, "gregorianXlitEnglish"),
83            Self::GregorianXlitFrench => write!(f, "gregorianXlitFrench"),
84            Self::None => write!(f, "none"),
85        }
86    }
87}
88
89impl std::str::FromStr for CalendarType {
90    type Err = String;
91
92    fn from_str(s: &str) -> Result<Self, Self::Err> {
93        match s {
94            "gregorian" => Ok(Self::Gregorian),
95            "gregorianUs" => Ok(Self::GregorianUs),
96            "gregorianMeFrench" => Ok(Self::GregorianMeFrench),
97            "gregorianArabic" => Ok(Self::GregorianArabic),
98            "hijri" => Ok(Self::Hijri),
99            "hebrew" => Ok(Self::Hebrew),
100            "taiwan" => Ok(Self::Taiwan),
101            "japan" => Ok(Self::Japan),
102            "thai" => Ok(Self::Thai),
103            "korea" => Ok(Self::Korea),
104            "saka" => Ok(Self::Saka),
105            "gregorianXlitEnglish" => Ok(Self::GregorianXlitEnglish),
106            "gregorianXlitFrench" => Ok(Self::GregorianXlitFrench),
107            "none" => Ok(Self::None),
108            _ => Err(format!("unknown CalendarType value: {}", s)),
109        }
110    }
111}
112
113#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
114pub enum STAlgClass {
115    #[serde(rename = "hash")]
116    Hash,
117    #[serde(rename = "custom")]
118    Custom,
119}
120
121impl std::fmt::Display for STAlgClass {
122    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
123        match self {
124            Self::Hash => write!(f, "hash"),
125            Self::Custom => write!(f, "custom"),
126        }
127    }
128}
129
130impl std::str::FromStr for STAlgClass {
131    type Err = String;
132
133    fn from_str(s: &str) -> Result<Self, Self::Err> {
134        match s {
135            "hash" => Ok(Self::Hash),
136            "custom" => Ok(Self::Custom),
137            _ => Err(format!("unknown STAlgClass value: {}", s)),
138        }
139    }
140}
141
142#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
143pub enum STCryptProv {
144    #[serde(rename = "rsaAES")]
145    RsaAES,
146    #[serde(rename = "rsaFull")]
147    RsaFull,
148    #[serde(rename = "custom")]
149    Custom,
150}
151
152impl std::fmt::Display for STCryptProv {
153    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
154        match self {
155            Self::RsaAES => write!(f, "rsaAES"),
156            Self::RsaFull => write!(f, "rsaFull"),
157            Self::Custom => write!(f, "custom"),
158        }
159    }
160}
161
162impl std::str::FromStr for STCryptProv {
163    type Err = String;
164
165    fn from_str(s: &str) -> Result<Self, Self::Err> {
166        match s {
167            "rsaAES" => Ok(Self::RsaAES),
168            "rsaFull" => Ok(Self::RsaFull),
169            "custom" => Ok(Self::Custom),
170            _ => Err(format!("unknown STCryptProv value: {}", s)),
171        }
172    }
173}
174
175#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
176pub enum STAlgType {
177    #[serde(rename = "typeAny")]
178    TypeAny,
179    #[serde(rename = "custom")]
180    Custom,
181}
182
183impl std::fmt::Display for STAlgType {
184    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
185        match self {
186            Self::TypeAny => write!(f, "typeAny"),
187            Self::Custom => write!(f, "custom"),
188        }
189    }
190}
191
192impl std::str::FromStr for STAlgType {
193    type Err = String;
194
195    fn from_str(s: &str) -> Result<Self, Self::Err> {
196        match s {
197            "typeAny" => Ok(Self::TypeAny),
198            "custom" => Ok(Self::Custom),
199            _ => Err(format!("unknown STAlgType value: {}", s)),
200        }
201    }
202}
203
204pub type STColorType = String;
205
206pub type Guid = String;
207
208pub type OnOff = String;
209
210#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
211pub enum STOnOff1 {
212    #[serde(rename = "on")]
213    On,
214    #[serde(rename = "off")]
215    Off,
216}
217
218impl std::fmt::Display for STOnOff1 {
219    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
220        match self {
221            Self::On => write!(f, "on"),
222            Self::Off => write!(f, "off"),
223        }
224    }
225}
226
227impl std::str::FromStr for STOnOff1 {
228    type Err = String;
229
230    fn from_str(s: &str) -> Result<Self, Self::Err> {
231        match s {
232            "on" => Ok(Self::On),
233            "off" => Ok(Self::Off),
234            _ => Err(format!("unknown STOnOff1 value: {}", s)),
235        }
236    }
237}
238
239pub type STString = String;
240
241pub type STXmlName = String;
242
243#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
244pub enum TrueFalse {
245    #[serde(rename = "t")]
246    T,
247    #[serde(rename = "f")]
248    F,
249    #[serde(rename = "true")]
250    True,
251    #[serde(rename = "false")]
252    False,
253}
254
255impl std::fmt::Display for TrueFalse {
256    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
257        match self {
258            Self::T => write!(f, "t"),
259            Self::F => write!(f, "f"),
260            Self::True => write!(f, "true"),
261            Self::False => write!(f, "false"),
262        }
263    }
264}
265
266impl std::str::FromStr for TrueFalse {
267    type Err = String;
268
269    fn from_str(s: &str) -> Result<Self, Self::Err> {
270        match s {
271            "t" => Ok(Self::T),
272            "f" => Ok(Self::F),
273            "true" => Ok(Self::True),
274            "false" => Ok(Self::False),
275            _ => Err(format!("unknown TrueFalse value: {}", s)),
276        }
277    }
278}
279
280#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
281pub enum STTrueFalseBlank {
282    #[serde(rename = "t")]
283    T,
284    #[serde(rename = "f")]
285    F,
286    #[serde(rename = "true")]
287    True,
288    #[serde(rename = "false")]
289    False,
290    #[serde(rename = "")]
291    Empty,
292}
293
294impl std::fmt::Display for STTrueFalseBlank {
295    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
296        match self {
297            Self::T => write!(f, "t"),
298            Self::F => write!(f, "f"),
299            Self::True => write!(f, "true"),
300            Self::False => write!(f, "false"),
301            Self::Empty => write!(f, ""),
302        }
303    }
304}
305
306impl std::str::FromStr for STTrueFalseBlank {
307    type Err = String;
308
309    fn from_str(s: &str) -> Result<Self, Self::Err> {
310        match s {
311            "t" => Ok(Self::T),
312            "f" => Ok(Self::F),
313            "true" => Ok(Self::True),
314            "false" => Ok(Self::False),
315            "" => Ok(Self::Empty),
316            "True" => Ok(Self::True),
317            "False" => Ok(Self::False),
318            _ => Err(format!("unknown STTrueFalseBlank value: {}", s)),
319        }
320    }
321}
322
323pub type STUnsignedDecimalNumber = u64;
324
325pub type STTwipsMeasure = String;
326
327#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
328pub enum STVerticalAlignRun {
329    #[serde(rename = "baseline")]
330    Baseline,
331    #[serde(rename = "superscript")]
332    Superscript,
333    #[serde(rename = "subscript")]
334    Subscript,
335}
336
337impl std::fmt::Display for STVerticalAlignRun {
338    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
339        match self {
340            Self::Baseline => write!(f, "baseline"),
341            Self::Superscript => write!(f, "superscript"),
342            Self::Subscript => write!(f, "subscript"),
343        }
344    }
345}
346
347impl std::str::FromStr for STVerticalAlignRun {
348    type Err = String;
349
350    fn from_str(s: &str) -> Result<Self, Self::Err> {
351        match s {
352            "baseline" => Ok(Self::Baseline),
353            "superscript" => Ok(Self::Superscript),
354            "subscript" => Ok(Self::Subscript),
355            _ => Err(format!("unknown STVerticalAlignRun value: {}", s)),
356        }
357    }
358}
359
360pub type XmlString = String;
361
362#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
363pub enum STXAlign {
364    #[serde(rename = "left")]
365    Left,
366    #[serde(rename = "center")]
367    Center,
368    #[serde(rename = "right")]
369    Right,
370    #[serde(rename = "inside")]
371    Inside,
372    #[serde(rename = "outside")]
373    Outside,
374}
375
376impl std::fmt::Display for STXAlign {
377    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
378        match self {
379            Self::Left => write!(f, "left"),
380            Self::Center => write!(f, "center"),
381            Self::Right => write!(f, "right"),
382            Self::Inside => write!(f, "inside"),
383            Self::Outside => write!(f, "outside"),
384        }
385    }
386}
387
388impl std::str::FromStr for STXAlign {
389    type Err = String;
390
391    fn from_str(s: &str) -> Result<Self, Self::Err> {
392        match s {
393            "left" => Ok(Self::Left),
394            "center" => Ok(Self::Center),
395            "right" => Ok(Self::Right),
396            "inside" => Ok(Self::Inside),
397            "outside" => Ok(Self::Outside),
398            _ => Err(format!("unknown STXAlign value: {}", s)),
399        }
400    }
401}
402
403#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
404pub enum STYAlign {
405    #[serde(rename = "inline")]
406    Inline,
407    #[serde(rename = "top")]
408    Top,
409    #[serde(rename = "center")]
410    Center,
411    #[serde(rename = "bottom")]
412    Bottom,
413    #[serde(rename = "inside")]
414    Inside,
415    #[serde(rename = "outside")]
416    Outside,
417}
418
419impl std::fmt::Display for STYAlign {
420    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
421        match self {
422            Self::Inline => write!(f, "inline"),
423            Self::Top => write!(f, "top"),
424            Self::Center => write!(f, "center"),
425            Self::Bottom => write!(f, "bottom"),
426            Self::Inside => write!(f, "inside"),
427            Self::Outside => write!(f, "outside"),
428        }
429    }
430}
431
432impl std::str::FromStr for STYAlign {
433    type Err = String;
434
435    fn from_str(s: &str) -> Result<Self, Self::Err> {
436        match s {
437            "inline" => Ok(Self::Inline),
438            "top" => Ok(Self::Top),
439            "center" => Ok(Self::Center),
440            "bottom" => Ok(Self::Bottom),
441            "inside" => Ok(Self::Inside),
442            "outside" => Ok(Self::Outside),
443            _ => Err(format!("unknown STYAlign value: {}", s)),
444        }
445    }
446}
447
448#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
449pub enum STConformanceClass {
450    #[serde(rename = "strict")]
451    Strict,
452    #[serde(rename = "transitional")]
453    Transitional,
454}
455
456impl std::fmt::Display for STConformanceClass {
457    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
458        match self {
459            Self::Strict => write!(f, "strict"),
460            Self::Transitional => write!(f, "transitional"),
461        }
462    }
463}
464
465impl std::str::FromStr for STConformanceClass {
466    type Err = String;
467
468    fn from_str(s: &str) -> Result<Self, Self::Err> {
469        match s {
470            "strict" => Ok(Self::Strict),
471            "transitional" => Ok(Self::Transitional),
472            _ => Err(format!("unknown STConformanceClass value: {}", s)),
473        }
474    }
475}
476
477pub type STUniversalMeasure = String;
478
479pub type STPositiveUniversalMeasure = String;
480
481pub type STPercentage = String;
482
483pub type STFixedPercentage = String;
484
485pub type STPositivePercentage = String;
486
487pub type STPositiveFixedPercentage = String;
488
489pub type STRelationshipId = String;
490
491pub type STStyleMatrixColumnIndex = u32;
492
493#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
494pub enum STFontCollectionIndex {
495    #[serde(rename = "major")]
496    Major,
497    #[serde(rename = "minor")]
498    Minor,
499    #[serde(rename = "none")]
500    None,
501}
502
503impl std::fmt::Display for STFontCollectionIndex {
504    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
505        match self {
506            Self::Major => write!(f, "major"),
507            Self::Minor => write!(f, "minor"),
508            Self::None => write!(f, "none"),
509        }
510    }
511}
512
513impl std::str::FromStr for STFontCollectionIndex {
514    type Err = String;
515
516    fn from_str(s: &str) -> Result<Self, Self::Err> {
517        match s {
518            "major" => Ok(Self::Major),
519            "minor" => Ok(Self::Minor),
520            "none" => Ok(Self::None),
521            _ => Err(format!("unknown STFontCollectionIndex value: {}", s)),
522        }
523    }
524}
525
526#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
527pub enum STColorSchemeIndex {
528    #[serde(rename = "dk1")]
529    Dk1,
530    #[serde(rename = "lt1")]
531    Lt1,
532    #[serde(rename = "dk2")]
533    Dk2,
534    #[serde(rename = "lt2")]
535    Lt2,
536    #[serde(rename = "accent1")]
537    Accent1,
538    #[serde(rename = "accent2")]
539    Accent2,
540    #[serde(rename = "accent3")]
541    Accent3,
542    #[serde(rename = "accent4")]
543    Accent4,
544    #[serde(rename = "accent5")]
545    Accent5,
546    #[serde(rename = "accent6")]
547    Accent6,
548    #[serde(rename = "hlink")]
549    Hlink,
550    #[serde(rename = "folHlink")]
551    FolHlink,
552}
553
554impl std::fmt::Display for STColorSchemeIndex {
555    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
556        match self {
557            Self::Dk1 => write!(f, "dk1"),
558            Self::Lt1 => write!(f, "lt1"),
559            Self::Dk2 => write!(f, "dk2"),
560            Self::Lt2 => write!(f, "lt2"),
561            Self::Accent1 => write!(f, "accent1"),
562            Self::Accent2 => write!(f, "accent2"),
563            Self::Accent3 => write!(f, "accent3"),
564            Self::Accent4 => write!(f, "accent4"),
565            Self::Accent5 => write!(f, "accent5"),
566            Self::Accent6 => write!(f, "accent6"),
567            Self::Hlink => write!(f, "hlink"),
568            Self::FolHlink => write!(f, "folHlink"),
569        }
570    }
571}
572
573impl std::str::FromStr for STColorSchemeIndex {
574    type Err = String;
575
576    fn from_str(s: &str) -> Result<Self, Self::Err> {
577        match s {
578            "dk1" => Ok(Self::Dk1),
579            "lt1" => Ok(Self::Lt1),
580            "dk2" => Ok(Self::Dk2),
581            "lt2" => Ok(Self::Lt2),
582            "accent1" => Ok(Self::Accent1),
583            "accent2" => Ok(Self::Accent2),
584            "accent3" => Ok(Self::Accent3),
585            "accent4" => Ok(Self::Accent4),
586            "accent5" => Ok(Self::Accent5),
587            "accent6" => Ok(Self::Accent6),
588            "hlink" => Ok(Self::Hlink),
589            "folHlink" => Ok(Self::FolHlink),
590            _ => Err(format!("unknown STColorSchemeIndex value: {}", s)),
591        }
592    }
593}
594
595pub type STCoordinate = String;
596
597pub type STCoordinateUnqualified = i64;
598
599pub type STCoordinate32 = String;
600
601pub type STCoordinate32Unqualified = i32;
602
603pub type STPositiveCoordinate = i64;
604
605pub type STPositiveCoordinate32 = i32;
606
607pub type STAngle = i32;
608
609pub type STFixedAngle = i32;
610
611pub type STPositiveFixedAngle = i32;
612
613pub type STPercentageDecimal = i32;
614
615pub type STPositivePercentageDecimal = i32;
616
617pub type STFixedPercentageDecimal = i32;
618
619pub type STPositiveFixedPercentageDecimal = i32;
620
621#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
622pub enum STSystemColorVal {
623    #[serde(rename = "scrollBar")]
624    ScrollBar,
625    #[serde(rename = "background")]
626    Background,
627    #[serde(rename = "activeCaption")]
628    ActiveCaption,
629    #[serde(rename = "inactiveCaption")]
630    InactiveCaption,
631    #[serde(rename = "menu")]
632    Menu,
633    #[serde(rename = "window")]
634    Window,
635    #[serde(rename = "windowFrame")]
636    WindowFrame,
637    #[serde(rename = "menuText")]
638    MenuText,
639    #[serde(rename = "windowText")]
640    WindowText,
641    #[serde(rename = "captionText")]
642    CaptionText,
643    #[serde(rename = "activeBorder")]
644    ActiveBorder,
645    #[serde(rename = "inactiveBorder")]
646    InactiveBorder,
647    #[serde(rename = "appWorkspace")]
648    AppWorkspace,
649    #[serde(rename = "highlight")]
650    Highlight,
651    #[serde(rename = "highlightText")]
652    HighlightText,
653    #[serde(rename = "btnFace")]
654    BtnFace,
655    #[serde(rename = "btnShadow")]
656    BtnShadow,
657    #[serde(rename = "grayText")]
658    GrayText,
659    #[serde(rename = "btnText")]
660    BtnText,
661    #[serde(rename = "inactiveCaptionText")]
662    InactiveCaptionText,
663    #[serde(rename = "btnHighlight")]
664    BtnHighlight,
665    #[serde(rename = "3dDkShadow")]
666    _3dDkShadow,
667    #[serde(rename = "3dLight")]
668    _3dLight,
669    #[serde(rename = "infoText")]
670    InfoText,
671    #[serde(rename = "infoBk")]
672    InfoBk,
673    #[serde(rename = "hotLight")]
674    HotLight,
675    #[serde(rename = "gradientActiveCaption")]
676    GradientActiveCaption,
677    #[serde(rename = "gradientInactiveCaption")]
678    GradientInactiveCaption,
679    #[serde(rename = "menuHighlight")]
680    MenuHighlight,
681    #[serde(rename = "menuBar")]
682    MenuBar,
683}
684
685impl std::fmt::Display for STSystemColorVal {
686    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
687        match self {
688            Self::ScrollBar => write!(f, "scrollBar"),
689            Self::Background => write!(f, "background"),
690            Self::ActiveCaption => write!(f, "activeCaption"),
691            Self::InactiveCaption => write!(f, "inactiveCaption"),
692            Self::Menu => write!(f, "menu"),
693            Self::Window => write!(f, "window"),
694            Self::WindowFrame => write!(f, "windowFrame"),
695            Self::MenuText => write!(f, "menuText"),
696            Self::WindowText => write!(f, "windowText"),
697            Self::CaptionText => write!(f, "captionText"),
698            Self::ActiveBorder => write!(f, "activeBorder"),
699            Self::InactiveBorder => write!(f, "inactiveBorder"),
700            Self::AppWorkspace => write!(f, "appWorkspace"),
701            Self::Highlight => write!(f, "highlight"),
702            Self::HighlightText => write!(f, "highlightText"),
703            Self::BtnFace => write!(f, "btnFace"),
704            Self::BtnShadow => write!(f, "btnShadow"),
705            Self::GrayText => write!(f, "grayText"),
706            Self::BtnText => write!(f, "btnText"),
707            Self::InactiveCaptionText => write!(f, "inactiveCaptionText"),
708            Self::BtnHighlight => write!(f, "btnHighlight"),
709            Self::_3dDkShadow => write!(f, "3dDkShadow"),
710            Self::_3dLight => write!(f, "3dLight"),
711            Self::InfoText => write!(f, "infoText"),
712            Self::InfoBk => write!(f, "infoBk"),
713            Self::HotLight => write!(f, "hotLight"),
714            Self::GradientActiveCaption => write!(f, "gradientActiveCaption"),
715            Self::GradientInactiveCaption => write!(f, "gradientInactiveCaption"),
716            Self::MenuHighlight => write!(f, "menuHighlight"),
717            Self::MenuBar => write!(f, "menuBar"),
718        }
719    }
720}
721
722impl std::str::FromStr for STSystemColorVal {
723    type Err = String;
724
725    fn from_str(s: &str) -> Result<Self, Self::Err> {
726        match s {
727            "scrollBar" => Ok(Self::ScrollBar),
728            "background" => Ok(Self::Background),
729            "activeCaption" => Ok(Self::ActiveCaption),
730            "inactiveCaption" => Ok(Self::InactiveCaption),
731            "menu" => Ok(Self::Menu),
732            "window" => Ok(Self::Window),
733            "windowFrame" => Ok(Self::WindowFrame),
734            "menuText" => Ok(Self::MenuText),
735            "windowText" => Ok(Self::WindowText),
736            "captionText" => Ok(Self::CaptionText),
737            "activeBorder" => Ok(Self::ActiveBorder),
738            "inactiveBorder" => Ok(Self::InactiveBorder),
739            "appWorkspace" => Ok(Self::AppWorkspace),
740            "highlight" => Ok(Self::Highlight),
741            "highlightText" => Ok(Self::HighlightText),
742            "btnFace" => Ok(Self::BtnFace),
743            "btnShadow" => Ok(Self::BtnShadow),
744            "grayText" => Ok(Self::GrayText),
745            "btnText" => Ok(Self::BtnText),
746            "inactiveCaptionText" => Ok(Self::InactiveCaptionText),
747            "btnHighlight" => Ok(Self::BtnHighlight),
748            "3dDkShadow" => Ok(Self::_3dDkShadow),
749            "3dLight" => Ok(Self::_3dLight),
750            "infoText" => Ok(Self::InfoText),
751            "infoBk" => Ok(Self::InfoBk),
752            "hotLight" => Ok(Self::HotLight),
753            "gradientActiveCaption" => Ok(Self::GradientActiveCaption),
754            "gradientInactiveCaption" => Ok(Self::GradientInactiveCaption),
755            "menuHighlight" => Ok(Self::MenuHighlight),
756            "menuBar" => Ok(Self::MenuBar),
757            _ => Err(format!("unknown STSystemColorVal value: {}", s)),
758        }
759    }
760}
761
762#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
763pub enum STSchemeColorVal {
764    #[serde(rename = "bg1")]
765    Bg1,
766    #[serde(rename = "tx1")]
767    Tx1,
768    #[serde(rename = "bg2")]
769    Bg2,
770    #[serde(rename = "tx2")]
771    Tx2,
772    #[serde(rename = "accent1")]
773    Accent1,
774    #[serde(rename = "accent2")]
775    Accent2,
776    #[serde(rename = "accent3")]
777    Accent3,
778    #[serde(rename = "accent4")]
779    Accent4,
780    #[serde(rename = "accent5")]
781    Accent5,
782    #[serde(rename = "accent6")]
783    Accent6,
784    #[serde(rename = "hlink")]
785    Hlink,
786    #[serde(rename = "folHlink")]
787    FolHlink,
788    #[serde(rename = "phClr")]
789    PhClr,
790    #[serde(rename = "dk1")]
791    Dk1,
792    #[serde(rename = "lt1")]
793    Lt1,
794    #[serde(rename = "dk2")]
795    Dk2,
796    #[serde(rename = "lt2")]
797    Lt2,
798}
799
800impl std::fmt::Display for STSchemeColorVal {
801    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
802        match self {
803            Self::Bg1 => write!(f, "bg1"),
804            Self::Tx1 => write!(f, "tx1"),
805            Self::Bg2 => write!(f, "bg2"),
806            Self::Tx2 => write!(f, "tx2"),
807            Self::Accent1 => write!(f, "accent1"),
808            Self::Accent2 => write!(f, "accent2"),
809            Self::Accent3 => write!(f, "accent3"),
810            Self::Accent4 => write!(f, "accent4"),
811            Self::Accent5 => write!(f, "accent5"),
812            Self::Accent6 => write!(f, "accent6"),
813            Self::Hlink => write!(f, "hlink"),
814            Self::FolHlink => write!(f, "folHlink"),
815            Self::PhClr => write!(f, "phClr"),
816            Self::Dk1 => write!(f, "dk1"),
817            Self::Lt1 => write!(f, "lt1"),
818            Self::Dk2 => write!(f, "dk2"),
819            Self::Lt2 => write!(f, "lt2"),
820        }
821    }
822}
823
824impl std::str::FromStr for STSchemeColorVal {
825    type Err = String;
826
827    fn from_str(s: &str) -> Result<Self, Self::Err> {
828        match s {
829            "bg1" => Ok(Self::Bg1),
830            "tx1" => Ok(Self::Tx1),
831            "bg2" => Ok(Self::Bg2),
832            "tx2" => Ok(Self::Tx2),
833            "accent1" => Ok(Self::Accent1),
834            "accent2" => Ok(Self::Accent2),
835            "accent3" => Ok(Self::Accent3),
836            "accent4" => Ok(Self::Accent4),
837            "accent5" => Ok(Self::Accent5),
838            "accent6" => Ok(Self::Accent6),
839            "hlink" => Ok(Self::Hlink),
840            "folHlink" => Ok(Self::FolHlink),
841            "phClr" => Ok(Self::PhClr),
842            "dk1" => Ok(Self::Dk1),
843            "lt1" => Ok(Self::Lt1),
844            "dk2" => Ok(Self::Dk2),
845            "lt2" => Ok(Self::Lt2),
846            _ => Err(format!("unknown STSchemeColorVal value: {}", s)),
847        }
848    }
849}
850
851#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
852pub enum STPresetColorVal {
853    #[serde(rename = "aliceBlue")]
854    AliceBlue,
855    #[serde(rename = "antiqueWhite")]
856    AntiqueWhite,
857    #[serde(rename = "aqua")]
858    Aqua,
859    #[serde(rename = "aquamarine")]
860    Aquamarine,
861    #[serde(rename = "azure")]
862    Azure,
863    #[serde(rename = "beige")]
864    Beige,
865    #[serde(rename = "bisque")]
866    Bisque,
867    #[serde(rename = "black")]
868    Black,
869    #[serde(rename = "blanchedAlmond")]
870    BlanchedAlmond,
871    #[serde(rename = "blue")]
872    Blue,
873    #[serde(rename = "blueViolet")]
874    BlueViolet,
875    #[serde(rename = "brown")]
876    Brown,
877    #[serde(rename = "burlyWood")]
878    BurlyWood,
879    #[serde(rename = "cadetBlue")]
880    CadetBlue,
881    #[serde(rename = "chartreuse")]
882    Chartreuse,
883    #[serde(rename = "chocolate")]
884    Chocolate,
885    #[serde(rename = "coral")]
886    Coral,
887    #[serde(rename = "cornflowerBlue")]
888    CornflowerBlue,
889    #[serde(rename = "cornsilk")]
890    Cornsilk,
891    #[serde(rename = "crimson")]
892    Crimson,
893    #[serde(rename = "cyan")]
894    Cyan,
895    #[serde(rename = "darkBlue")]
896    DarkBlue,
897    #[serde(rename = "darkCyan")]
898    DarkCyan,
899    #[serde(rename = "darkGoldenrod")]
900    DarkGoldenrod,
901    #[serde(rename = "darkGray")]
902    DarkGray,
903    #[serde(rename = "darkGrey")]
904    DarkGrey,
905    #[serde(rename = "darkGreen")]
906    DarkGreen,
907    #[serde(rename = "darkKhaki")]
908    DarkKhaki,
909    #[serde(rename = "darkMagenta")]
910    DarkMagenta,
911    #[serde(rename = "darkOliveGreen")]
912    DarkOliveGreen,
913    #[serde(rename = "darkOrange")]
914    DarkOrange,
915    #[serde(rename = "darkOrchid")]
916    DarkOrchid,
917    #[serde(rename = "darkRed")]
918    DarkRed,
919    #[serde(rename = "darkSalmon")]
920    DarkSalmon,
921    #[serde(rename = "darkSeaGreen")]
922    DarkSeaGreen,
923    #[serde(rename = "darkSlateBlue")]
924    DarkSlateBlue,
925    #[serde(rename = "darkSlateGray")]
926    DarkSlateGray,
927    #[serde(rename = "darkSlateGrey")]
928    DarkSlateGrey,
929    #[serde(rename = "darkTurquoise")]
930    DarkTurquoise,
931    #[serde(rename = "darkViolet")]
932    DarkViolet,
933    #[serde(rename = "dkBlue")]
934    DkBlue,
935    #[serde(rename = "dkCyan")]
936    DkCyan,
937    #[serde(rename = "dkGoldenrod")]
938    DkGoldenrod,
939    #[serde(rename = "dkGray")]
940    DkGray,
941    #[serde(rename = "dkGrey")]
942    DkGrey,
943    #[serde(rename = "dkGreen")]
944    DkGreen,
945    #[serde(rename = "dkKhaki")]
946    DkKhaki,
947    #[serde(rename = "dkMagenta")]
948    DkMagenta,
949    #[serde(rename = "dkOliveGreen")]
950    DkOliveGreen,
951    #[serde(rename = "dkOrange")]
952    DkOrange,
953    #[serde(rename = "dkOrchid")]
954    DkOrchid,
955    #[serde(rename = "dkRed")]
956    DkRed,
957    #[serde(rename = "dkSalmon")]
958    DkSalmon,
959    #[serde(rename = "dkSeaGreen")]
960    DkSeaGreen,
961    #[serde(rename = "dkSlateBlue")]
962    DkSlateBlue,
963    #[serde(rename = "dkSlateGray")]
964    DkSlateGray,
965    #[serde(rename = "dkSlateGrey")]
966    DkSlateGrey,
967    #[serde(rename = "dkTurquoise")]
968    DkTurquoise,
969    #[serde(rename = "dkViolet")]
970    DkViolet,
971    #[serde(rename = "deepPink")]
972    DeepPink,
973    #[serde(rename = "deepSkyBlue")]
974    DeepSkyBlue,
975    #[serde(rename = "dimGray")]
976    DimGray,
977    #[serde(rename = "dimGrey")]
978    DimGrey,
979    #[serde(rename = "dodgerBlue")]
980    DodgerBlue,
981    #[serde(rename = "firebrick")]
982    Firebrick,
983    #[serde(rename = "floralWhite")]
984    FloralWhite,
985    #[serde(rename = "forestGreen")]
986    ForestGreen,
987    #[serde(rename = "fuchsia")]
988    Fuchsia,
989    #[serde(rename = "gainsboro")]
990    Gainsboro,
991    #[serde(rename = "ghostWhite")]
992    GhostWhite,
993    #[serde(rename = "gold")]
994    Gold,
995    #[serde(rename = "goldenrod")]
996    Goldenrod,
997    #[serde(rename = "gray")]
998    Gray,
999    #[serde(rename = "grey")]
1000    Grey,
1001    #[serde(rename = "green")]
1002    Green,
1003    #[serde(rename = "greenYellow")]
1004    GreenYellow,
1005    #[serde(rename = "honeydew")]
1006    Honeydew,
1007    #[serde(rename = "hotPink")]
1008    HotPink,
1009    #[serde(rename = "indianRed")]
1010    IndianRed,
1011    #[serde(rename = "indigo")]
1012    Indigo,
1013    #[serde(rename = "ivory")]
1014    Ivory,
1015    #[serde(rename = "khaki")]
1016    Khaki,
1017    #[serde(rename = "lavender")]
1018    Lavender,
1019    #[serde(rename = "lavenderBlush")]
1020    LavenderBlush,
1021    #[serde(rename = "lawnGreen")]
1022    LawnGreen,
1023    #[serde(rename = "lemonChiffon")]
1024    LemonChiffon,
1025    #[serde(rename = "lightBlue")]
1026    LightBlue,
1027    #[serde(rename = "lightCoral")]
1028    LightCoral,
1029    #[serde(rename = "lightCyan")]
1030    LightCyan,
1031    #[serde(rename = "lightGoldenrodYellow")]
1032    LightGoldenrodYellow,
1033    #[serde(rename = "lightGray")]
1034    LightGray,
1035    #[serde(rename = "lightGrey")]
1036    LightGrey,
1037    #[serde(rename = "lightGreen")]
1038    LightGreen,
1039    #[serde(rename = "lightPink")]
1040    LightPink,
1041    #[serde(rename = "lightSalmon")]
1042    LightSalmon,
1043    #[serde(rename = "lightSeaGreen")]
1044    LightSeaGreen,
1045    #[serde(rename = "lightSkyBlue")]
1046    LightSkyBlue,
1047    #[serde(rename = "lightSlateGray")]
1048    LightSlateGray,
1049    #[serde(rename = "lightSlateGrey")]
1050    LightSlateGrey,
1051    #[serde(rename = "lightSteelBlue")]
1052    LightSteelBlue,
1053    #[serde(rename = "lightYellow")]
1054    LightYellow,
1055    #[serde(rename = "ltBlue")]
1056    LtBlue,
1057    #[serde(rename = "ltCoral")]
1058    LtCoral,
1059    #[serde(rename = "ltCyan")]
1060    LtCyan,
1061    #[serde(rename = "ltGoldenrodYellow")]
1062    LtGoldenrodYellow,
1063    #[serde(rename = "ltGray")]
1064    LtGray,
1065    #[serde(rename = "ltGrey")]
1066    LtGrey,
1067    #[serde(rename = "ltGreen")]
1068    LtGreen,
1069    #[serde(rename = "ltPink")]
1070    LtPink,
1071    #[serde(rename = "ltSalmon")]
1072    LtSalmon,
1073    #[serde(rename = "ltSeaGreen")]
1074    LtSeaGreen,
1075    #[serde(rename = "ltSkyBlue")]
1076    LtSkyBlue,
1077    #[serde(rename = "ltSlateGray")]
1078    LtSlateGray,
1079    #[serde(rename = "ltSlateGrey")]
1080    LtSlateGrey,
1081    #[serde(rename = "ltSteelBlue")]
1082    LtSteelBlue,
1083    #[serde(rename = "ltYellow")]
1084    LtYellow,
1085    #[serde(rename = "lime")]
1086    Lime,
1087    #[serde(rename = "limeGreen")]
1088    LimeGreen,
1089    #[serde(rename = "linen")]
1090    Linen,
1091    #[serde(rename = "magenta")]
1092    Magenta,
1093    #[serde(rename = "maroon")]
1094    Maroon,
1095    #[serde(rename = "medAquamarine")]
1096    MedAquamarine,
1097    #[serde(rename = "medBlue")]
1098    MedBlue,
1099    #[serde(rename = "medOrchid")]
1100    MedOrchid,
1101    #[serde(rename = "medPurple")]
1102    MedPurple,
1103    #[serde(rename = "medSeaGreen")]
1104    MedSeaGreen,
1105    #[serde(rename = "medSlateBlue")]
1106    MedSlateBlue,
1107    #[serde(rename = "medSpringGreen")]
1108    MedSpringGreen,
1109    #[serde(rename = "medTurquoise")]
1110    MedTurquoise,
1111    #[serde(rename = "medVioletRed")]
1112    MedVioletRed,
1113    #[serde(rename = "mediumAquamarine")]
1114    MediumAquamarine,
1115    #[serde(rename = "mediumBlue")]
1116    MediumBlue,
1117    #[serde(rename = "mediumOrchid")]
1118    MediumOrchid,
1119    #[serde(rename = "mediumPurple")]
1120    MediumPurple,
1121    #[serde(rename = "mediumSeaGreen")]
1122    MediumSeaGreen,
1123    #[serde(rename = "mediumSlateBlue")]
1124    MediumSlateBlue,
1125    #[serde(rename = "mediumSpringGreen")]
1126    MediumSpringGreen,
1127    #[serde(rename = "mediumTurquoise")]
1128    MediumTurquoise,
1129    #[serde(rename = "mediumVioletRed")]
1130    MediumVioletRed,
1131    #[serde(rename = "midnightBlue")]
1132    MidnightBlue,
1133    #[serde(rename = "mintCream")]
1134    MintCream,
1135    #[serde(rename = "mistyRose")]
1136    MistyRose,
1137    #[serde(rename = "moccasin")]
1138    Moccasin,
1139    #[serde(rename = "navajoWhite")]
1140    NavajoWhite,
1141    #[serde(rename = "navy")]
1142    Navy,
1143    #[serde(rename = "oldLace")]
1144    OldLace,
1145    #[serde(rename = "olive")]
1146    Olive,
1147    #[serde(rename = "oliveDrab")]
1148    OliveDrab,
1149    #[serde(rename = "orange")]
1150    Orange,
1151    #[serde(rename = "orangeRed")]
1152    OrangeRed,
1153    #[serde(rename = "orchid")]
1154    Orchid,
1155    #[serde(rename = "paleGoldenrod")]
1156    PaleGoldenrod,
1157    #[serde(rename = "paleGreen")]
1158    PaleGreen,
1159    #[serde(rename = "paleTurquoise")]
1160    PaleTurquoise,
1161    #[serde(rename = "paleVioletRed")]
1162    PaleVioletRed,
1163    #[serde(rename = "papayaWhip")]
1164    PapayaWhip,
1165    #[serde(rename = "peachPuff")]
1166    PeachPuff,
1167    #[serde(rename = "peru")]
1168    Peru,
1169    #[serde(rename = "pink")]
1170    Pink,
1171    #[serde(rename = "plum")]
1172    Plum,
1173    #[serde(rename = "powderBlue")]
1174    PowderBlue,
1175    #[serde(rename = "purple")]
1176    Purple,
1177    #[serde(rename = "red")]
1178    Red,
1179    #[serde(rename = "rosyBrown")]
1180    RosyBrown,
1181    #[serde(rename = "royalBlue")]
1182    RoyalBlue,
1183    #[serde(rename = "saddleBrown")]
1184    SaddleBrown,
1185    #[serde(rename = "salmon")]
1186    Salmon,
1187    #[serde(rename = "sandyBrown")]
1188    SandyBrown,
1189    #[serde(rename = "seaGreen")]
1190    SeaGreen,
1191    #[serde(rename = "seaShell")]
1192    SeaShell,
1193    #[serde(rename = "sienna")]
1194    Sienna,
1195    #[serde(rename = "silver")]
1196    Silver,
1197    #[serde(rename = "skyBlue")]
1198    SkyBlue,
1199    #[serde(rename = "slateBlue")]
1200    SlateBlue,
1201    #[serde(rename = "slateGray")]
1202    SlateGray,
1203    #[serde(rename = "slateGrey")]
1204    SlateGrey,
1205    #[serde(rename = "snow")]
1206    Snow,
1207    #[serde(rename = "springGreen")]
1208    SpringGreen,
1209    #[serde(rename = "steelBlue")]
1210    SteelBlue,
1211    #[serde(rename = "tan")]
1212    Tan,
1213    #[serde(rename = "teal")]
1214    Teal,
1215    #[serde(rename = "thistle")]
1216    Thistle,
1217    #[serde(rename = "tomato")]
1218    Tomato,
1219    #[serde(rename = "turquoise")]
1220    Turquoise,
1221    #[serde(rename = "violet")]
1222    Violet,
1223    #[serde(rename = "wheat")]
1224    Wheat,
1225    #[serde(rename = "white")]
1226    White,
1227    #[serde(rename = "whiteSmoke")]
1228    WhiteSmoke,
1229    #[serde(rename = "yellow")]
1230    Yellow,
1231    #[serde(rename = "yellowGreen")]
1232    YellowGreen,
1233}
1234
1235impl std::fmt::Display for STPresetColorVal {
1236    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1237        match self {
1238            Self::AliceBlue => write!(f, "aliceBlue"),
1239            Self::AntiqueWhite => write!(f, "antiqueWhite"),
1240            Self::Aqua => write!(f, "aqua"),
1241            Self::Aquamarine => write!(f, "aquamarine"),
1242            Self::Azure => write!(f, "azure"),
1243            Self::Beige => write!(f, "beige"),
1244            Self::Bisque => write!(f, "bisque"),
1245            Self::Black => write!(f, "black"),
1246            Self::BlanchedAlmond => write!(f, "blanchedAlmond"),
1247            Self::Blue => write!(f, "blue"),
1248            Self::BlueViolet => write!(f, "blueViolet"),
1249            Self::Brown => write!(f, "brown"),
1250            Self::BurlyWood => write!(f, "burlyWood"),
1251            Self::CadetBlue => write!(f, "cadetBlue"),
1252            Self::Chartreuse => write!(f, "chartreuse"),
1253            Self::Chocolate => write!(f, "chocolate"),
1254            Self::Coral => write!(f, "coral"),
1255            Self::CornflowerBlue => write!(f, "cornflowerBlue"),
1256            Self::Cornsilk => write!(f, "cornsilk"),
1257            Self::Crimson => write!(f, "crimson"),
1258            Self::Cyan => write!(f, "cyan"),
1259            Self::DarkBlue => write!(f, "darkBlue"),
1260            Self::DarkCyan => write!(f, "darkCyan"),
1261            Self::DarkGoldenrod => write!(f, "darkGoldenrod"),
1262            Self::DarkGray => write!(f, "darkGray"),
1263            Self::DarkGrey => write!(f, "darkGrey"),
1264            Self::DarkGreen => write!(f, "darkGreen"),
1265            Self::DarkKhaki => write!(f, "darkKhaki"),
1266            Self::DarkMagenta => write!(f, "darkMagenta"),
1267            Self::DarkOliveGreen => write!(f, "darkOliveGreen"),
1268            Self::DarkOrange => write!(f, "darkOrange"),
1269            Self::DarkOrchid => write!(f, "darkOrchid"),
1270            Self::DarkRed => write!(f, "darkRed"),
1271            Self::DarkSalmon => write!(f, "darkSalmon"),
1272            Self::DarkSeaGreen => write!(f, "darkSeaGreen"),
1273            Self::DarkSlateBlue => write!(f, "darkSlateBlue"),
1274            Self::DarkSlateGray => write!(f, "darkSlateGray"),
1275            Self::DarkSlateGrey => write!(f, "darkSlateGrey"),
1276            Self::DarkTurquoise => write!(f, "darkTurquoise"),
1277            Self::DarkViolet => write!(f, "darkViolet"),
1278            Self::DkBlue => write!(f, "dkBlue"),
1279            Self::DkCyan => write!(f, "dkCyan"),
1280            Self::DkGoldenrod => write!(f, "dkGoldenrod"),
1281            Self::DkGray => write!(f, "dkGray"),
1282            Self::DkGrey => write!(f, "dkGrey"),
1283            Self::DkGreen => write!(f, "dkGreen"),
1284            Self::DkKhaki => write!(f, "dkKhaki"),
1285            Self::DkMagenta => write!(f, "dkMagenta"),
1286            Self::DkOliveGreen => write!(f, "dkOliveGreen"),
1287            Self::DkOrange => write!(f, "dkOrange"),
1288            Self::DkOrchid => write!(f, "dkOrchid"),
1289            Self::DkRed => write!(f, "dkRed"),
1290            Self::DkSalmon => write!(f, "dkSalmon"),
1291            Self::DkSeaGreen => write!(f, "dkSeaGreen"),
1292            Self::DkSlateBlue => write!(f, "dkSlateBlue"),
1293            Self::DkSlateGray => write!(f, "dkSlateGray"),
1294            Self::DkSlateGrey => write!(f, "dkSlateGrey"),
1295            Self::DkTurquoise => write!(f, "dkTurquoise"),
1296            Self::DkViolet => write!(f, "dkViolet"),
1297            Self::DeepPink => write!(f, "deepPink"),
1298            Self::DeepSkyBlue => write!(f, "deepSkyBlue"),
1299            Self::DimGray => write!(f, "dimGray"),
1300            Self::DimGrey => write!(f, "dimGrey"),
1301            Self::DodgerBlue => write!(f, "dodgerBlue"),
1302            Self::Firebrick => write!(f, "firebrick"),
1303            Self::FloralWhite => write!(f, "floralWhite"),
1304            Self::ForestGreen => write!(f, "forestGreen"),
1305            Self::Fuchsia => write!(f, "fuchsia"),
1306            Self::Gainsboro => write!(f, "gainsboro"),
1307            Self::GhostWhite => write!(f, "ghostWhite"),
1308            Self::Gold => write!(f, "gold"),
1309            Self::Goldenrod => write!(f, "goldenrod"),
1310            Self::Gray => write!(f, "gray"),
1311            Self::Grey => write!(f, "grey"),
1312            Self::Green => write!(f, "green"),
1313            Self::GreenYellow => write!(f, "greenYellow"),
1314            Self::Honeydew => write!(f, "honeydew"),
1315            Self::HotPink => write!(f, "hotPink"),
1316            Self::IndianRed => write!(f, "indianRed"),
1317            Self::Indigo => write!(f, "indigo"),
1318            Self::Ivory => write!(f, "ivory"),
1319            Self::Khaki => write!(f, "khaki"),
1320            Self::Lavender => write!(f, "lavender"),
1321            Self::LavenderBlush => write!(f, "lavenderBlush"),
1322            Self::LawnGreen => write!(f, "lawnGreen"),
1323            Self::LemonChiffon => write!(f, "lemonChiffon"),
1324            Self::LightBlue => write!(f, "lightBlue"),
1325            Self::LightCoral => write!(f, "lightCoral"),
1326            Self::LightCyan => write!(f, "lightCyan"),
1327            Self::LightGoldenrodYellow => write!(f, "lightGoldenrodYellow"),
1328            Self::LightGray => write!(f, "lightGray"),
1329            Self::LightGrey => write!(f, "lightGrey"),
1330            Self::LightGreen => write!(f, "lightGreen"),
1331            Self::LightPink => write!(f, "lightPink"),
1332            Self::LightSalmon => write!(f, "lightSalmon"),
1333            Self::LightSeaGreen => write!(f, "lightSeaGreen"),
1334            Self::LightSkyBlue => write!(f, "lightSkyBlue"),
1335            Self::LightSlateGray => write!(f, "lightSlateGray"),
1336            Self::LightSlateGrey => write!(f, "lightSlateGrey"),
1337            Self::LightSteelBlue => write!(f, "lightSteelBlue"),
1338            Self::LightYellow => write!(f, "lightYellow"),
1339            Self::LtBlue => write!(f, "ltBlue"),
1340            Self::LtCoral => write!(f, "ltCoral"),
1341            Self::LtCyan => write!(f, "ltCyan"),
1342            Self::LtGoldenrodYellow => write!(f, "ltGoldenrodYellow"),
1343            Self::LtGray => write!(f, "ltGray"),
1344            Self::LtGrey => write!(f, "ltGrey"),
1345            Self::LtGreen => write!(f, "ltGreen"),
1346            Self::LtPink => write!(f, "ltPink"),
1347            Self::LtSalmon => write!(f, "ltSalmon"),
1348            Self::LtSeaGreen => write!(f, "ltSeaGreen"),
1349            Self::LtSkyBlue => write!(f, "ltSkyBlue"),
1350            Self::LtSlateGray => write!(f, "ltSlateGray"),
1351            Self::LtSlateGrey => write!(f, "ltSlateGrey"),
1352            Self::LtSteelBlue => write!(f, "ltSteelBlue"),
1353            Self::LtYellow => write!(f, "ltYellow"),
1354            Self::Lime => write!(f, "lime"),
1355            Self::LimeGreen => write!(f, "limeGreen"),
1356            Self::Linen => write!(f, "linen"),
1357            Self::Magenta => write!(f, "magenta"),
1358            Self::Maroon => write!(f, "maroon"),
1359            Self::MedAquamarine => write!(f, "medAquamarine"),
1360            Self::MedBlue => write!(f, "medBlue"),
1361            Self::MedOrchid => write!(f, "medOrchid"),
1362            Self::MedPurple => write!(f, "medPurple"),
1363            Self::MedSeaGreen => write!(f, "medSeaGreen"),
1364            Self::MedSlateBlue => write!(f, "medSlateBlue"),
1365            Self::MedSpringGreen => write!(f, "medSpringGreen"),
1366            Self::MedTurquoise => write!(f, "medTurquoise"),
1367            Self::MedVioletRed => write!(f, "medVioletRed"),
1368            Self::MediumAquamarine => write!(f, "mediumAquamarine"),
1369            Self::MediumBlue => write!(f, "mediumBlue"),
1370            Self::MediumOrchid => write!(f, "mediumOrchid"),
1371            Self::MediumPurple => write!(f, "mediumPurple"),
1372            Self::MediumSeaGreen => write!(f, "mediumSeaGreen"),
1373            Self::MediumSlateBlue => write!(f, "mediumSlateBlue"),
1374            Self::MediumSpringGreen => write!(f, "mediumSpringGreen"),
1375            Self::MediumTurquoise => write!(f, "mediumTurquoise"),
1376            Self::MediumVioletRed => write!(f, "mediumVioletRed"),
1377            Self::MidnightBlue => write!(f, "midnightBlue"),
1378            Self::MintCream => write!(f, "mintCream"),
1379            Self::MistyRose => write!(f, "mistyRose"),
1380            Self::Moccasin => write!(f, "moccasin"),
1381            Self::NavajoWhite => write!(f, "navajoWhite"),
1382            Self::Navy => write!(f, "navy"),
1383            Self::OldLace => write!(f, "oldLace"),
1384            Self::Olive => write!(f, "olive"),
1385            Self::OliveDrab => write!(f, "oliveDrab"),
1386            Self::Orange => write!(f, "orange"),
1387            Self::OrangeRed => write!(f, "orangeRed"),
1388            Self::Orchid => write!(f, "orchid"),
1389            Self::PaleGoldenrod => write!(f, "paleGoldenrod"),
1390            Self::PaleGreen => write!(f, "paleGreen"),
1391            Self::PaleTurquoise => write!(f, "paleTurquoise"),
1392            Self::PaleVioletRed => write!(f, "paleVioletRed"),
1393            Self::PapayaWhip => write!(f, "papayaWhip"),
1394            Self::PeachPuff => write!(f, "peachPuff"),
1395            Self::Peru => write!(f, "peru"),
1396            Self::Pink => write!(f, "pink"),
1397            Self::Plum => write!(f, "plum"),
1398            Self::PowderBlue => write!(f, "powderBlue"),
1399            Self::Purple => write!(f, "purple"),
1400            Self::Red => write!(f, "red"),
1401            Self::RosyBrown => write!(f, "rosyBrown"),
1402            Self::RoyalBlue => write!(f, "royalBlue"),
1403            Self::SaddleBrown => write!(f, "saddleBrown"),
1404            Self::Salmon => write!(f, "salmon"),
1405            Self::SandyBrown => write!(f, "sandyBrown"),
1406            Self::SeaGreen => write!(f, "seaGreen"),
1407            Self::SeaShell => write!(f, "seaShell"),
1408            Self::Sienna => write!(f, "sienna"),
1409            Self::Silver => write!(f, "silver"),
1410            Self::SkyBlue => write!(f, "skyBlue"),
1411            Self::SlateBlue => write!(f, "slateBlue"),
1412            Self::SlateGray => write!(f, "slateGray"),
1413            Self::SlateGrey => write!(f, "slateGrey"),
1414            Self::Snow => write!(f, "snow"),
1415            Self::SpringGreen => write!(f, "springGreen"),
1416            Self::SteelBlue => write!(f, "steelBlue"),
1417            Self::Tan => write!(f, "tan"),
1418            Self::Teal => write!(f, "teal"),
1419            Self::Thistle => write!(f, "thistle"),
1420            Self::Tomato => write!(f, "tomato"),
1421            Self::Turquoise => write!(f, "turquoise"),
1422            Self::Violet => write!(f, "violet"),
1423            Self::Wheat => write!(f, "wheat"),
1424            Self::White => write!(f, "white"),
1425            Self::WhiteSmoke => write!(f, "whiteSmoke"),
1426            Self::Yellow => write!(f, "yellow"),
1427            Self::YellowGreen => write!(f, "yellowGreen"),
1428        }
1429    }
1430}
1431
1432impl std::str::FromStr for STPresetColorVal {
1433    type Err = String;
1434
1435    fn from_str(s: &str) -> Result<Self, Self::Err> {
1436        match s {
1437            "aliceBlue" => Ok(Self::AliceBlue),
1438            "antiqueWhite" => Ok(Self::AntiqueWhite),
1439            "aqua" => Ok(Self::Aqua),
1440            "aquamarine" => Ok(Self::Aquamarine),
1441            "azure" => Ok(Self::Azure),
1442            "beige" => Ok(Self::Beige),
1443            "bisque" => Ok(Self::Bisque),
1444            "black" => Ok(Self::Black),
1445            "blanchedAlmond" => Ok(Self::BlanchedAlmond),
1446            "blue" => Ok(Self::Blue),
1447            "blueViolet" => Ok(Self::BlueViolet),
1448            "brown" => Ok(Self::Brown),
1449            "burlyWood" => Ok(Self::BurlyWood),
1450            "cadetBlue" => Ok(Self::CadetBlue),
1451            "chartreuse" => Ok(Self::Chartreuse),
1452            "chocolate" => Ok(Self::Chocolate),
1453            "coral" => Ok(Self::Coral),
1454            "cornflowerBlue" => Ok(Self::CornflowerBlue),
1455            "cornsilk" => Ok(Self::Cornsilk),
1456            "crimson" => Ok(Self::Crimson),
1457            "cyan" => Ok(Self::Cyan),
1458            "darkBlue" => Ok(Self::DarkBlue),
1459            "darkCyan" => Ok(Self::DarkCyan),
1460            "darkGoldenrod" => Ok(Self::DarkGoldenrod),
1461            "darkGray" => Ok(Self::DarkGray),
1462            "darkGrey" => Ok(Self::DarkGrey),
1463            "darkGreen" => Ok(Self::DarkGreen),
1464            "darkKhaki" => Ok(Self::DarkKhaki),
1465            "darkMagenta" => Ok(Self::DarkMagenta),
1466            "darkOliveGreen" => Ok(Self::DarkOliveGreen),
1467            "darkOrange" => Ok(Self::DarkOrange),
1468            "darkOrchid" => Ok(Self::DarkOrchid),
1469            "darkRed" => Ok(Self::DarkRed),
1470            "darkSalmon" => Ok(Self::DarkSalmon),
1471            "darkSeaGreen" => Ok(Self::DarkSeaGreen),
1472            "darkSlateBlue" => Ok(Self::DarkSlateBlue),
1473            "darkSlateGray" => Ok(Self::DarkSlateGray),
1474            "darkSlateGrey" => Ok(Self::DarkSlateGrey),
1475            "darkTurquoise" => Ok(Self::DarkTurquoise),
1476            "darkViolet" => Ok(Self::DarkViolet),
1477            "dkBlue" => Ok(Self::DkBlue),
1478            "dkCyan" => Ok(Self::DkCyan),
1479            "dkGoldenrod" => Ok(Self::DkGoldenrod),
1480            "dkGray" => Ok(Self::DkGray),
1481            "dkGrey" => Ok(Self::DkGrey),
1482            "dkGreen" => Ok(Self::DkGreen),
1483            "dkKhaki" => Ok(Self::DkKhaki),
1484            "dkMagenta" => Ok(Self::DkMagenta),
1485            "dkOliveGreen" => Ok(Self::DkOliveGreen),
1486            "dkOrange" => Ok(Self::DkOrange),
1487            "dkOrchid" => Ok(Self::DkOrchid),
1488            "dkRed" => Ok(Self::DkRed),
1489            "dkSalmon" => Ok(Self::DkSalmon),
1490            "dkSeaGreen" => Ok(Self::DkSeaGreen),
1491            "dkSlateBlue" => Ok(Self::DkSlateBlue),
1492            "dkSlateGray" => Ok(Self::DkSlateGray),
1493            "dkSlateGrey" => Ok(Self::DkSlateGrey),
1494            "dkTurquoise" => Ok(Self::DkTurquoise),
1495            "dkViolet" => Ok(Self::DkViolet),
1496            "deepPink" => Ok(Self::DeepPink),
1497            "deepSkyBlue" => Ok(Self::DeepSkyBlue),
1498            "dimGray" => Ok(Self::DimGray),
1499            "dimGrey" => Ok(Self::DimGrey),
1500            "dodgerBlue" => Ok(Self::DodgerBlue),
1501            "firebrick" => Ok(Self::Firebrick),
1502            "floralWhite" => Ok(Self::FloralWhite),
1503            "forestGreen" => Ok(Self::ForestGreen),
1504            "fuchsia" => Ok(Self::Fuchsia),
1505            "gainsboro" => Ok(Self::Gainsboro),
1506            "ghostWhite" => Ok(Self::GhostWhite),
1507            "gold" => Ok(Self::Gold),
1508            "goldenrod" => Ok(Self::Goldenrod),
1509            "gray" => Ok(Self::Gray),
1510            "grey" => Ok(Self::Grey),
1511            "green" => Ok(Self::Green),
1512            "greenYellow" => Ok(Self::GreenYellow),
1513            "honeydew" => Ok(Self::Honeydew),
1514            "hotPink" => Ok(Self::HotPink),
1515            "indianRed" => Ok(Self::IndianRed),
1516            "indigo" => Ok(Self::Indigo),
1517            "ivory" => Ok(Self::Ivory),
1518            "khaki" => Ok(Self::Khaki),
1519            "lavender" => Ok(Self::Lavender),
1520            "lavenderBlush" => Ok(Self::LavenderBlush),
1521            "lawnGreen" => Ok(Self::LawnGreen),
1522            "lemonChiffon" => Ok(Self::LemonChiffon),
1523            "lightBlue" => Ok(Self::LightBlue),
1524            "lightCoral" => Ok(Self::LightCoral),
1525            "lightCyan" => Ok(Self::LightCyan),
1526            "lightGoldenrodYellow" => Ok(Self::LightGoldenrodYellow),
1527            "lightGray" => Ok(Self::LightGray),
1528            "lightGrey" => Ok(Self::LightGrey),
1529            "lightGreen" => Ok(Self::LightGreen),
1530            "lightPink" => Ok(Self::LightPink),
1531            "lightSalmon" => Ok(Self::LightSalmon),
1532            "lightSeaGreen" => Ok(Self::LightSeaGreen),
1533            "lightSkyBlue" => Ok(Self::LightSkyBlue),
1534            "lightSlateGray" => Ok(Self::LightSlateGray),
1535            "lightSlateGrey" => Ok(Self::LightSlateGrey),
1536            "lightSteelBlue" => Ok(Self::LightSteelBlue),
1537            "lightYellow" => Ok(Self::LightYellow),
1538            "ltBlue" => Ok(Self::LtBlue),
1539            "ltCoral" => Ok(Self::LtCoral),
1540            "ltCyan" => Ok(Self::LtCyan),
1541            "ltGoldenrodYellow" => Ok(Self::LtGoldenrodYellow),
1542            "ltGray" => Ok(Self::LtGray),
1543            "ltGrey" => Ok(Self::LtGrey),
1544            "ltGreen" => Ok(Self::LtGreen),
1545            "ltPink" => Ok(Self::LtPink),
1546            "ltSalmon" => Ok(Self::LtSalmon),
1547            "ltSeaGreen" => Ok(Self::LtSeaGreen),
1548            "ltSkyBlue" => Ok(Self::LtSkyBlue),
1549            "ltSlateGray" => Ok(Self::LtSlateGray),
1550            "ltSlateGrey" => Ok(Self::LtSlateGrey),
1551            "ltSteelBlue" => Ok(Self::LtSteelBlue),
1552            "ltYellow" => Ok(Self::LtYellow),
1553            "lime" => Ok(Self::Lime),
1554            "limeGreen" => Ok(Self::LimeGreen),
1555            "linen" => Ok(Self::Linen),
1556            "magenta" => Ok(Self::Magenta),
1557            "maroon" => Ok(Self::Maroon),
1558            "medAquamarine" => Ok(Self::MedAquamarine),
1559            "medBlue" => Ok(Self::MedBlue),
1560            "medOrchid" => Ok(Self::MedOrchid),
1561            "medPurple" => Ok(Self::MedPurple),
1562            "medSeaGreen" => Ok(Self::MedSeaGreen),
1563            "medSlateBlue" => Ok(Self::MedSlateBlue),
1564            "medSpringGreen" => Ok(Self::MedSpringGreen),
1565            "medTurquoise" => Ok(Self::MedTurquoise),
1566            "medVioletRed" => Ok(Self::MedVioletRed),
1567            "mediumAquamarine" => Ok(Self::MediumAquamarine),
1568            "mediumBlue" => Ok(Self::MediumBlue),
1569            "mediumOrchid" => Ok(Self::MediumOrchid),
1570            "mediumPurple" => Ok(Self::MediumPurple),
1571            "mediumSeaGreen" => Ok(Self::MediumSeaGreen),
1572            "mediumSlateBlue" => Ok(Self::MediumSlateBlue),
1573            "mediumSpringGreen" => Ok(Self::MediumSpringGreen),
1574            "mediumTurquoise" => Ok(Self::MediumTurquoise),
1575            "mediumVioletRed" => Ok(Self::MediumVioletRed),
1576            "midnightBlue" => Ok(Self::MidnightBlue),
1577            "mintCream" => Ok(Self::MintCream),
1578            "mistyRose" => Ok(Self::MistyRose),
1579            "moccasin" => Ok(Self::Moccasin),
1580            "navajoWhite" => Ok(Self::NavajoWhite),
1581            "navy" => Ok(Self::Navy),
1582            "oldLace" => Ok(Self::OldLace),
1583            "olive" => Ok(Self::Olive),
1584            "oliveDrab" => Ok(Self::OliveDrab),
1585            "orange" => Ok(Self::Orange),
1586            "orangeRed" => Ok(Self::OrangeRed),
1587            "orchid" => Ok(Self::Orchid),
1588            "paleGoldenrod" => Ok(Self::PaleGoldenrod),
1589            "paleGreen" => Ok(Self::PaleGreen),
1590            "paleTurquoise" => Ok(Self::PaleTurquoise),
1591            "paleVioletRed" => Ok(Self::PaleVioletRed),
1592            "papayaWhip" => Ok(Self::PapayaWhip),
1593            "peachPuff" => Ok(Self::PeachPuff),
1594            "peru" => Ok(Self::Peru),
1595            "pink" => Ok(Self::Pink),
1596            "plum" => Ok(Self::Plum),
1597            "powderBlue" => Ok(Self::PowderBlue),
1598            "purple" => Ok(Self::Purple),
1599            "red" => Ok(Self::Red),
1600            "rosyBrown" => Ok(Self::RosyBrown),
1601            "royalBlue" => Ok(Self::RoyalBlue),
1602            "saddleBrown" => Ok(Self::SaddleBrown),
1603            "salmon" => Ok(Self::Salmon),
1604            "sandyBrown" => Ok(Self::SandyBrown),
1605            "seaGreen" => Ok(Self::SeaGreen),
1606            "seaShell" => Ok(Self::SeaShell),
1607            "sienna" => Ok(Self::Sienna),
1608            "silver" => Ok(Self::Silver),
1609            "skyBlue" => Ok(Self::SkyBlue),
1610            "slateBlue" => Ok(Self::SlateBlue),
1611            "slateGray" => Ok(Self::SlateGray),
1612            "slateGrey" => Ok(Self::SlateGrey),
1613            "snow" => Ok(Self::Snow),
1614            "springGreen" => Ok(Self::SpringGreen),
1615            "steelBlue" => Ok(Self::SteelBlue),
1616            "tan" => Ok(Self::Tan),
1617            "teal" => Ok(Self::Teal),
1618            "thistle" => Ok(Self::Thistle),
1619            "tomato" => Ok(Self::Tomato),
1620            "turquoise" => Ok(Self::Turquoise),
1621            "violet" => Ok(Self::Violet),
1622            "wheat" => Ok(Self::Wheat),
1623            "white" => Ok(Self::White),
1624            "whiteSmoke" => Ok(Self::WhiteSmoke),
1625            "yellow" => Ok(Self::Yellow),
1626            "yellowGreen" => Ok(Self::YellowGreen),
1627            _ => Err(format!("unknown STPresetColorVal value: {}", s)),
1628        }
1629    }
1630}
1631
1632#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1633pub enum STRectAlignment {
1634    #[serde(rename = "tl")]
1635    Tl,
1636    #[serde(rename = "t")]
1637    T,
1638    #[serde(rename = "tr")]
1639    Tr,
1640    #[serde(rename = "l")]
1641    L,
1642    #[serde(rename = "ctr")]
1643    Ctr,
1644    #[serde(rename = "r")]
1645    R,
1646    #[serde(rename = "bl")]
1647    Bl,
1648    #[serde(rename = "b")]
1649    B,
1650    #[serde(rename = "br")]
1651    Br,
1652}
1653
1654impl std::fmt::Display for STRectAlignment {
1655    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1656        match self {
1657            Self::Tl => write!(f, "tl"),
1658            Self::T => write!(f, "t"),
1659            Self::Tr => write!(f, "tr"),
1660            Self::L => write!(f, "l"),
1661            Self::Ctr => write!(f, "ctr"),
1662            Self::R => write!(f, "r"),
1663            Self::Bl => write!(f, "bl"),
1664            Self::B => write!(f, "b"),
1665            Self::Br => write!(f, "br"),
1666        }
1667    }
1668}
1669
1670impl std::str::FromStr for STRectAlignment {
1671    type Err = String;
1672
1673    fn from_str(s: &str) -> Result<Self, Self::Err> {
1674        match s {
1675            "tl" => Ok(Self::Tl),
1676            "t" => Ok(Self::T),
1677            "tr" => Ok(Self::Tr),
1678            "l" => Ok(Self::L),
1679            "ctr" => Ok(Self::Ctr),
1680            "r" => Ok(Self::R),
1681            "bl" => Ok(Self::Bl),
1682            "b" => Ok(Self::B),
1683            "br" => Ok(Self::Br),
1684            _ => Err(format!("unknown STRectAlignment value: {}", s)),
1685        }
1686    }
1687}
1688
1689#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1690pub enum STBlackWhiteMode {
1691    #[serde(rename = "clr")]
1692    Clr,
1693    #[serde(rename = "auto")]
1694    Auto,
1695    #[serde(rename = "gray")]
1696    Gray,
1697    #[serde(rename = "ltGray")]
1698    LtGray,
1699    #[serde(rename = "invGray")]
1700    InvGray,
1701    #[serde(rename = "grayWhite")]
1702    GrayWhite,
1703    #[serde(rename = "blackGray")]
1704    BlackGray,
1705    #[serde(rename = "blackWhite")]
1706    BlackWhite,
1707    #[serde(rename = "black")]
1708    Black,
1709    #[serde(rename = "white")]
1710    White,
1711    #[serde(rename = "hidden")]
1712    Hidden,
1713}
1714
1715impl std::fmt::Display for STBlackWhiteMode {
1716    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1717        match self {
1718            Self::Clr => write!(f, "clr"),
1719            Self::Auto => write!(f, "auto"),
1720            Self::Gray => write!(f, "gray"),
1721            Self::LtGray => write!(f, "ltGray"),
1722            Self::InvGray => write!(f, "invGray"),
1723            Self::GrayWhite => write!(f, "grayWhite"),
1724            Self::BlackGray => write!(f, "blackGray"),
1725            Self::BlackWhite => write!(f, "blackWhite"),
1726            Self::Black => write!(f, "black"),
1727            Self::White => write!(f, "white"),
1728            Self::Hidden => write!(f, "hidden"),
1729        }
1730    }
1731}
1732
1733impl std::str::FromStr for STBlackWhiteMode {
1734    type Err = String;
1735
1736    fn from_str(s: &str) -> Result<Self, Self::Err> {
1737        match s {
1738            "clr" => Ok(Self::Clr),
1739            "auto" => Ok(Self::Auto),
1740            "gray" => Ok(Self::Gray),
1741            "ltGray" => Ok(Self::LtGray),
1742            "invGray" => Ok(Self::InvGray),
1743            "grayWhite" => Ok(Self::GrayWhite),
1744            "blackGray" => Ok(Self::BlackGray),
1745            "blackWhite" => Ok(Self::BlackWhite),
1746            "black" => Ok(Self::Black),
1747            "white" => Ok(Self::White),
1748            "hidden" => Ok(Self::Hidden),
1749            _ => Err(format!("unknown STBlackWhiteMode value: {}", s)),
1750        }
1751    }
1752}
1753
1754pub type STDrawingElementId = u32;
1755
1756#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1757pub enum STChartBuildStep {
1758    #[serde(rename = "category")]
1759    Category,
1760    #[serde(rename = "ptInCategory")]
1761    PtInCategory,
1762    #[serde(rename = "series")]
1763    Series,
1764    #[serde(rename = "ptInSeries")]
1765    PtInSeries,
1766    #[serde(rename = "allPts")]
1767    AllPts,
1768    #[serde(rename = "gridLegend")]
1769    GridLegend,
1770}
1771
1772impl std::fmt::Display for STChartBuildStep {
1773    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1774        match self {
1775            Self::Category => write!(f, "category"),
1776            Self::PtInCategory => write!(f, "ptInCategory"),
1777            Self::Series => write!(f, "series"),
1778            Self::PtInSeries => write!(f, "ptInSeries"),
1779            Self::AllPts => write!(f, "allPts"),
1780            Self::GridLegend => write!(f, "gridLegend"),
1781        }
1782    }
1783}
1784
1785impl std::str::FromStr for STChartBuildStep {
1786    type Err = String;
1787
1788    fn from_str(s: &str) -> Result<Self, Self::Err> {
1789        match s {
1790            "category" => Ok(Self::Category),
1791            "ptInCategory" => Ok(Self::PtInCategory),
1792            "series" => Ok(Self::Series),
1793            "ptInSeries" => Ok(Self::PtInSeries),
1794            "allPts" => Ok(Self::AllPts),
1795            "gridLegend" => Ok(Self::GridLegend),
1796            _ => Err(format!("unknown STChartBuildStep value: {}", s)),
1797        }
1798    }
1799}
1800
1801#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1802pub enum STDgmBuildStep {
1803    #[serde(rename = "sp")]
1804    Sp,
1805    #[serde(rename = "bg")]
1806    Bg,
1807}
1808
1809impl std::fmt::Display for STDgmBuildStep {
1810    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1811        match self {
1812            Self::Sp => write!(f, "sp"),
1813            Self::Bg => write!(f, "bg"),
1814        }
1815    }
1816}
1817
1818impl std::str::FromStr for STDgmBuildStep {
1819    type Err = String;
1820
1821    fn from_str(s: &str) -> Result<Self, Self::Err> {
1822        match s {
1823            "sp" => Ok(Self::Sp),
1824            "bg" => Ok(Self::Bg),
1825            _ => Err(format!("unknown STDgmBuildStep value: {}", s)),
1826        }
1827    }
1828}
1829
1830#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1831pub enum STAnimationDgmOnlyBuildType {
1832    #[serde(rename = "one")]
1833    One,
1834    #[serde(rename = "lvlOne")]
1835    LvlOne,
1836    #[serde(rename = "lvlAtOnce")]
1837    LvlAtOnce,
1838}
1839
1840impl std::fmt::Display for STAnimationDgmOnlyBuildType {
1841    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1842        match self {
1843            Self::One => write!(f, "one"),
1844            Self::LvlOne => write!(f, "lvlOne"),
1845            Self::LvlAtOnce => write!(f, "lvlAtOnce"),
1846        }
1847    }
1848}
1849
1850impl std::str::FromStr for STAnimationDgmOnlyBuildType {
1851    type Err = String;
1852
1853    fn from_str(s: &str) -> Result<Self, Self::Err> {
1854        match s {
1855            "one" => Ok(Self::One),
1856            "lvlOne" => Ok(Self::LvlOne),
1857            "lvlAtOnce" => Ok(Self::LvlAtOnce),
1858            _ => Err(format!("unknown STAnimationDgmOnlyBuildType value: {}", s)),
1859        }
1860    }
1861}
1862
1863pub type STAnimationDgmBuildType = String;
1864
1865#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1866pub enum STAnimationChartOnlyBuildType {
1867    #[serde(rename = "series")]
1868    Series,
1869    #[serde(rename = "category")]
1870    Category,
1871    #[serde(rename = "seriesEl")]
1872    SeriesEl,
1873    #[serde(rename = "categoryEl")]
1874    CategoryEl,
1875}
1876
1877impl std::fmt::Display for STAnimationChartOnlyBuildType {
1878    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1879        match self {
1880            Self::Series => write!(f, "series"),
1881            Self::Category => write!(f, "category"),
1882            Self::SeriesEl => write!(f, "seriesEl"),
1883            Self::CategoryEl => write!(f, "categoryEl"),
1884        }
1885    }
1886}
1887
1888impl std::str::FromStr for STAnimationChartOnlyBuildType {
1889    type Err = String;
1890
1891    fn from_str(s: &str) -> Result<Self, Self::Err> {
1892        match s {
1893            "series" => Ok(Self::Series),
1894            "category" => Ok(Self::Category),
1895            "seriesEl" => Ok(Self::SeriesEl),
1896            "categoryEl" => Ok(Self::CategoryEl),
1897            _ => Err(format!(
1898                "unknown STAnimationChartOnlyBuildType value: {}",
1899                s
1900            )),
1901        }
1902    }
1903}
1904
1905pub type STAnimationChartBuildType = String;
1906
1907#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1908pub enum STPresetCameraType {
1909    #[serde(rename = "legacyObliqueTopLeft")]
1910    LegacyObliqueTopLeft,
1911    #[serde(rename = "legacyObliqueTop")]
1912    LegacyObliqueTop,
1913    #[serde(rename = "legacyObliqueTopRight")]
1914    LegacyObliqueTopRight,
1915    #[serde(rename = "legacyObliqueLeft")]
1916    LegacyObliqueLeft,
1917    #[serde(rename = "legacyObliqueFront")]
1918    LegacyObliqueFront,
1919    #[serde(rename = "legacyObliqueRight")]
1920    LegacyObliqueRight,
1921    #[serde(rename = "legacyObliqueBottomLeft")]
1922    LegacyObliqueBottomLeft,
1923    #[serde(rename = "legacyObliqueBottom")]
1924    LegacyObliqueBottom,
1925    #[serde(rename = "legacyObliqueBottomRight")]
1926    LegacyObliqueBottomRight,
1927    #[serde(rename = "legacyPerspectiveTopLeft")]
1928    LegacyPerspectiveTopLeft,
1929    #[serde(rename = "legacyPerspectiveTop")]
1930    LegacyPerspectiveTop,
1931    #[serde(rename = "legacyPerspectiveTopRight")]
1932    LegacyPerspectiveTopRight,
1933    #[serde(rename = "legacyPerspectiveLeft")]
1934    LegacyPerspectiveLeft,
1935    #[serde(rename = "legacyPerspectiveFront")]
1936    LegacyPerspectiveFront,
1937    #[serde(rename = "legacyPerspectiveRight")]
1938    LegacyPerspectiveRight,
1939    #[serde(rename = "legacyPerspectiveBottomLeft")]
1940    LegacyPerspectiveBottomLeft,
1941    #[serde(rename = "legacyPerspectiveBottom")]
1942    LegacyPerspectiveBottom,
1943    #[serde(rename = "legacyPerspectiveBottomRight")]
1944    LegacyPerspectiveBottomRight,
1945    #[serde(rename = "orthographicFront")]
1946    OrthographicFront,
1947    #[serde(rename = "isometricTopUp")]
1948    IsometricTopUp,
1949    #[serde(rename = "isometricTopDown")]
1950    IsometricTopDown,
1951    #[serde(rename = "isometricBottomUp")]
1952    IsometricBottomUp,
1953    #[serde(rename = "isometricBottomDown")]
1954    IsometricBottomDown,
1955    #[serde(rename = "isometricLeftUp")]
1956    IsometricLeftUp,
1957    #[serde(rename = "isometricLeftDown")]
1958    IsometricLeftDown,
1959    #[serde(rename = "isometricRightUp")]
1960    IsometricRightUp,
1961    #[serde(rename = "isometricRightDown")]
1962    IsometricRightDown,
1963    #[serde(rename = "isometricOffAxis1Left")]
1964    IsometricOffAxis1Left,
1965    #[serde(rename = "isometricOffAxis1Right")]
1966    IsometricOffAxis1Right,
1967    #[serde(rename = "isometricOffAxis1Top")]
1968    IsometricOffAxis1Top,
1969    #[serde(rename = "isometricOffAxis2Left")]
1970    IsometricOffAxis2Left,
1971    #[serde(rename = "isometricOffAxis2Right")]
1972    IsometricOffAxis2Right,
1973    #[serde(rename = "isometricOffAxis2Top")]
1974    IsometricOffAxis2Top,
1975    #[serde(rename = "isometricOffAxis3Left")]
1976    IsometricOffAxis3Left,
1977    #[serde(rename = "isometricOffAxis3Right")]
1978    IsometricOffAxis3Right,
1979    #[serde(rename = "isometricOffAxis3Bottom")]
1980    IsometricOffAxis3Bottom,
1981    #[serde(rename = "isometricOffAxis4Left")]
1982    IsometricOffAxis4Left,
1983    #[serde(rename = "isometricOffAxis4Right")]
1984    IsometricOffAxis4Right,
1985    #[serde(rename = "isometricOffAxis4Bottom")]
1986    IsometricOffAxis4Bottom,
1987    #[serde(rename = "obliqueTopLeft")]
1988    ObliqueTopLeft,
1989    #[serde(rename = "obliqueTop")]
1990    ObliqueTop,
1991    #[serde(rename = "obliqueTopRight")]
1992    ObliqueTopRight,
1993    #[serde(rename = "obliqueLeft")]
1994    ObliqueLeft,
1995    #[serde(rename = "obliqueRight")]
1996    ObliqueRight,
1997    #[serde(rename = "obliqueBottomLeft")]
1998    ObliqueBottomLeft,
1999    #[serde(rename = "obliqueBottom")]
2000    ObliqueBottom,
2001    #[serde(rename = "obliqueBottomRight")]
2002    ObliqueBottomRight,
2003    #[serde(rename = "perspectiveFront")]
2004    PerspectiveFront,
2005    #[serde(rename = "perspectiveLeft")]
2006    PerspectiveLeft,
2007    #[serde(rename = "perspectiveRight")]
2008    PerspectiveRight,
2009    #[serde(rename = "perspectiveAbove")]
2010    PerspectiveAbove,
2011    #[serde(rename = "perspectiveBelow")]
2012    PerspectiveBelow,
2013    #[serde(rename = "perspectiveAboveLeftFacing")]
2014    PerspectiveAboveLeftFacing,
2015    #[serde(rename = "perspectiveAboveRightFacing")]
2016    PerspectiveAboveRightFacing,
2017    #[serde(rename = "perspectiveContrastingLeftFacing")]
2018    PerspectiveContrastingLeftFacing,
2019    #[serde(rename = "perspectiveContrastingRightFacing")]
2020    PerspectiveContrastingRightFacing,
2021    #[serde(rename = "perspectiveHeroicLeftFacing")]
2022    PerspectiveHeroicLeftFacing,
2023    #[serde(rename = "perspectiveHeroicRightFacing")]
2024    PerspectiveHeroicRightFacing,
2025    #[serde(rename = "perspectiveHeroicExtremeLeftFacing")]
2026    PerspectiveHeroicExtremeLeftFacing,
2027    #[serde(rename = "perspectiveHeroicExtremeRightFacing")]
2028    PerspectiveHeroicExtremeRightFacing,
2029    #[serde(rename = "perspectiveRelaxed")]
2030    PerspectiveRelaxed,
2031    #[serde(rename = "perspectiveRelaxedModerately")]
2032    PerspectiveRelaxedModerately,
2033}
2034
2035impl std::fmt::Display for STPresetCameraType {
2036    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2037        match self {
2038            Self::LegacyObliqueTopLeft => write!(f, "legacyObliqueTopLeft"),
2039            Self::LegacyObliqueTop => write!(f, "legacyObliqueTop"),
2040            Self::LegacyObliqueTopRight => write!(f, "legacyObliqueTopRight"),
2041            Self::LegacyObliqueLeft => write!(f, "legacyObliqueLeft"),
2042            Self::LegacyObliqueFront => write!(f, "legacyObliqueFront"),
2043            Self::LegacyObliqueRight => write!(f, "legacyObliqueRight"),
2044            Self::LegacyObliqueBottomLeft => write!(f, "legacyObliqueBottomLeft"),
2045            Self::LegacyObliqueBottom => write!(f, "legacyObliqueBottom"),
2046            Self::LegacyObliqueBottomRight => write!(f, "legacyObliqueBottomRight"),
2047            Self::LegacyPerspectiveTopLeft => write!(f, "legacyPerspectiveTopLeft"),
2048            Self::LegacyPerspectiveTop => write!(f, "legacyPerspectiveTop"),
2049            Self::LegacyPerspectiveTopRight => write!(f, "legacyPerspectiveTopRight"),
2050            Self::LegacyPerspectiveLeft => write!(f, "legacyPerspectiveLeft"),
2051            Self::LegacyPerspectiveFront => write!(f, "legacyPerspectiveFront"),
2052            Self::LegacyPerspectiveRight => write!(f, "legacyPerspectiveRight"),
2053            Self::LegacyPerspectiveBottomLeft => write!(f, "legacyPerspectiveBottomLeft"),
2054            Self::LegacyPerspectiveBottom => write!(f, "legacyPerspectiveBottom"),
2055            Self::LegacyPerspectiveBottomRight => write!(f, "legacyPerspectiveBottomRight"),
2056            Self::OrthographicFront => write!(f, "orthographicFront"),
2057            Self::IsometricTopUp => write!(f, "isometricTopUp"),
2058            Self::IsometricTopDown => write!(f, "isometricTopDown"),
2059            Self::IsometricBottomUp => write!(f, "isometricBottomUp"),
2060            Self::IsometricBottomDown => write!(f, "isometricBottomDown"),
2061            Self::IsometricLeftUp => write!(f, "isometricLeftUp"),
2062            Self::IsometricLeftDown => write!(f, "isometricLeftDown"),
2063            Self::IsometricRightUp => write!(f, "isometricRightUp"),
2064            Self::IsometricRightDown => write!(f, "isometricRightDown"),
2065            Self::IsometricOffAxis1Left => write!(f, "isometricOffAxis1Left"),
2066            Self::IsometricOffAxis1Right => write!(f, "isometricOffAxis1Right"),
2067            Self::IsometricOffAxis1Top => write!(f, "isometricOffAxis1Top"),
2068            Self::IsometricOffAxis2Left => write!(f, "isometricOffAxis2Left"),
2069            Self::IsometricOffAxis2Right => write!(f, "isometricOffAxis2Right"),
2070            Self::IsometricOffAxis2Top => write!(f, "isometricOffAxis2Top"),
2071            Self::IsometricOffAxis3Left => write!(f, "isometricOffAxis3Left"),
2072            Self::IsometricOffAxis3Right => write!(f, "isometricOffAxis3Right"),
2073            Self::IsometricOffAxis3Bottom => write!(f, "isometricOffAxis3Bottom"),
2074            Self::IsometricOffAxis4Left => write!(f, "isometricOffAxis4Left"),
2075            Self::IsometricOffAxis4Right => write!(f, "isometricOffAxis4Right"),
2076            Self::IsometricOffAxis4Bottom => write!(f, "isometricOffAxis4Bottom"),
2077            Self::ObliqueTopLeft => write!(f, "obliqueTopLeft"),
2078            Self::ObliqueTop => write!(f, "obliqueTop"),
2079            Self::ObliqueTopRight => write!(f, "obliqueTopRight"),
2080            Self::ObliqueLeft => write!(f, "obliqueLeft"),
2081            Self::ObliqueRight => write!(f, "obliqueRight"),
2082            Self::ObliqueBottomLeft => write!(f, "obliqueBottomLeft"),
2083            Self::ObliqueBottom => write!(f, "obliqueBottom"),
2084            Self::ObliqueBottomRight => write!(f, "obliqueBottomRight"),
2085            Self::PerspectiveFront => write!(f, "perspectiveFront"),
2086            Self::PerspectiveLeft => write!(f, "perspectiveLeft"),
2087            Self::PerspectiveRight => write!(f, "perspectiveRight"),
2088            Self::PerspectiveAbove => write!(f, "perspectiveAbove"),
2089            Self::PerspectiveBelow => write!(f, "perspectiveBelow"),
2090            Self::PerspectiveAboveLeftFacing => write!(f, "perspectiveAboveLeftFacing"),
2091            Self::PerspectiveAboveRightFacing => write!(f, "perspectiveAboveRightFacing"),
2092            Self::PerspectiveContrastingLeftFacing => write!(f, "perspectiveContrastingLeftFacing"),
2093            Self::PerspectiveContrastingRightFacing => {
2094                write!(f, "perspectiveContrastingRightFacing")
2095            }
2096            Self::PerspectiveHeroicLeftFacing => write!(f, "perspectiveHeroicLeftFacing"),
2097            Self::PerspectiveHeroicRightFacing => write!(f, "perspectiveHeroicRightFacing"),
2098            Self::PerspectiveHeroicExtremeLeftFacing => {
2099                write!(f, "perspectiveHeroicExtremeLeftFacing")
2100            }
2101            Self::PerspectiveHeroicExtremeRightFacing => {
2102                write!(f, "perspectiveHeroicExtremeRightFacing")
2103            }
2104            Self::PerspectiveRelaxed => write!(f, "perspectiveRelaxed"),
2105            Self::PerspectiveRelaxedModerately => write!(f, "perspectiveRelaxedModerately"),
2106        }
2107    }
2108}
2109
2110impl std::str::FromStr for STPresetCameraType {
2111    type Err = String;
2112
2113    fn from_str(s: &str) -> Result<Self, Self::Err> {
2114        match s {
2115            "legacyObliqueTopLeft" => Ok(Self::LegacyObliqueTopLeft),
2116            "legacyObliqueTop" => Ok(Self::LegacyObliqueTop),
2117            "legacyObliqueTopRight" => Ok(Self::LegacyObliqueTopRight),
2118            "legacyObliqueLeft" => Ok(Self::LegacyObliqueLeft),
2119            "legacyObliqueFront" => Ok(Self::LegacyObliqueFront),
2120            "legacyObliqueRight" => Ok(Self::LegacyObliqueRight),
2121            "legacyObliqueBottomLeft" => Ok(Self::LegacyObliqueBottomLeft),
2122            "legacyObliqueBottom" => Ok(Self::LegacyObliqueBottom),
2123            "legacyObliqueBottomRight" => Ok(Self::LegacyObliqueBottomRight),
2124            "legacyPerspectiveTopLeft" => Ok(Self::LegacyPerspectiveTopLeft),
2125            "legacyPerspectiveTop" => Ok(Self::LegacyPerspectiveTop),
2126            "legacyPerspectiveTopRight" => Ok(Self::LegacyPerspectiveTopRight),
2127            "legacyPerspectiveLeft" => Ok(Self::LegacyPerspectiveLeft),
2128            "legacyPerspectiveFront" => Ok(Self::LegacyPerspectiveFront),
2129            "legacyPerspectiveRight" => Ok(Self::LegacyPerspectiveRight),
2130            "legacyPerspectiveBottomLeft" => Ok(Self::LegacyPerspectiveBottomLeft),
2131            "legacyPerspectiveBottom" => Ok(Self::LegacyPerspectiveBottom),
2132            "legacyPerspectiveBottomRight" => Ok(Self::LegacyPerspectiveBottomRight),
2133            "orthographicFront" => Ok(Self::OrthographicFront),
2134            "isometricTopUp" => Ok(Self::IsometricTopUp),
2135            "isometricTopDown" => Ok(Self::IsometricTopDown),
2136            "isometricBottomUp" => Ok(Self::IsometricBottomUp),
2137            "isometricBottomDown" => Ok(Self::IsometricBottomDown),
2138            "isometricLeftUp" => Ok(Self::IsometricLeftUp),
2139            "isometricLeftDown" => Ok(Self::IsometricLeftDown),
2140            "isometricRightUp" => Ok(Self::IsometricRightUp),
2141            "isometricRightDown" => Ok(Self::IsometricRightDown),
2142            "isometricOffAxis1Left" => Ok(Self::IsometricOffAxis1Left),
2143            "isometricOffAxis1Right" => Ok(Self::IsometricOffAxis1Right),
2144            "isometricOffAxis1Top" => Ok(Self::IsometricOffAxis1Top),
2145            "isometricOffAxis2Left" => Ok(Self::IsometricOffAxis2Left),
2146            "isometricOffAxis2Right" => Ok(Self::IsometricOffAxis2Right),
2147            "isometricOffAxis2Top" => Ok(Self::IsometricOffAxis2Top),
2148            "isometricOffAxis3Left" => Ok(Self::IsometricOffAxis3Left),
2149            "isometricOffAxis3Right" => Ok(Self::IsometricOffAxis3Right),
2150            "isometricOffAxis3Bottom" => Ok(Self::IsometricOffAxis3Bottom),
2151            "isometricOffAxis4Left" => Ok(Self::IsometricOffAxis4Left),
2152            "isometricOffAxis4Right" => Ok(Self::IsometricOffAxis4Right),
2153            "isometricOffAxis4Bottom" => Ok(Self::IsometricOffAxis4Bottom),
2154            "obliqueTopLeft" => Ok(Self::ObliqueTopLeft),
2155            "obliqueTop" => Ok(Self::ObliqueTop),
2156            "obliqueTopRight" => Ok(Self::ObliqueTopRight),
2157            "obliqueLeft" => Ok(Self::ObliqueLeft),
2158            "obliqueRight" => Ok(Self::ObliqueRight),
2159            "obliqueBottomLeft" => Ok(Self::ObliqueBottomLeft),
2160            "obliqueBottom" => Ok(Self::ObliqueBottom),
2161            "obliqueBottomRight" => Ok(Self::ObliqueBottomRight),
2162            "perspectiveFront" => Ok(Self::PerspectiveFront),
2163            "perspectiveLeft" => Ok(Self::PerspectiveLeft),
2164            "perspectiveRight" => Ok(Self::PerspectiveRight),
2165            "perspectiveAbove" => Ok(Self::PerspectiveAbove),
2166            "perspectiveBelow" => Ok(Self::PerspectiveBelow),
2167            "perspectiveAboveLeftFacing" => Ok(Self::PerspectiveAboveLeftFacing),
2168            "perspectiveAboveRightFacing" => Ok(Self::PerspectiveAboveRightFacing),
2169            "perspectiveContrastingLeftFacing" => Ok(Self::PerspectiveContrastingLeftFacing),
2170            "perspectiveContrastingRightFacing" => Ok(Self::PerspectiveContrastingRightFacing),
2171            "perspectiveHeroicLeftFacing" => Ok(Self::PerspectiveHeroicLeftFacing),
2172            "perspectiveHeroicRightFacing" => Ok(Self::PerspectiveHeroicRightFacing),
2173            "perspectiveHeroicExtremeLeftFacing" => Ok(Self::PerspectiveHeroicExtremeLeftFacing),
2174            "perspectiveHeroicExtremeRightFacing" => Ok(Self::PerspectiveHeroicExtremeRightFacing),
2175            "perspectiveRelaxed" => Ok(Self::PerspectiveRelaxed),
2176            "perspectiveRelaxedModerately" => Ok(Self::PerspectiveRelaxedModerately),
2177            _ => Err(format!("unknown STPresetCameraType value: {}", s)),
2178        }
2179    }
2180}
2181
2182pub type STFOVAngle = i32;
2183
2184#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2185pub enum STLightRigDirection {
2186    #[serde(rename = "tl")]
2187    Tl,
2188    #[serde(rename = "t")]
2189    T,
2190    #[serde(rename = "tr")]
2191    Tr,
2192    #[serde(rename = "l")]
2193    L,
2194    #[serde(rename = "r")]
2195    R,
2196    #[serde(rename = "bl")]
2197    Bl,
2198    #[serde(rename = "b")]
2199    B,
2200    #[serde(rename = "br")]
2201    Br,
2202}
2203
2204impl std::fmt::Display for STLightRigDirection {
2205    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2206        match self {
2207            Self::Tl => write!(f, "tl"),
2208            Self::T => write!(f, "t"),
2209            Self::Tr => write!(f, "tr"),
2210            Self::L => write!(f, "l"),
2211            Self::R => write!(f, "r"),
2212            Self::Bl => write!(f, "bl"),
2213            Self::B => write!(f, "b"),
2214            Self::Br => write!(f, "br"),
2215        }
2216    }
2217}
2218
2219impl std::str::FromStr for STLightRigDirection {
2220    type Err = String;
2221
2222    fn from_str(s: &str) -> Result<Self, Self::Err> {
2223        match s {
2224            "tl" => Ok(Self::Tl),
2225            "t" => Ok(Self::T),
2226            "tr" => Ok(Self::Tr),
2227            "l" => Ok(Self::L),
2228            "r" => Ok(Self::R),
2229            "bl" => Ok(Self::Bl),
2230            "b" => Ok(Self::B),
2231            "br" => Ok(Self::Br),
2232            _ => Err(format!("unknown STLightRigDirection value: {}", s)),
2233        }
2234    }
2235}
2236
2237#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2238pub enum STLightRigType {
2239    #[serde(rename = "legacyFlat1")]
2240    LegacyFlat1,
2241    #[serde(rename = "legacyFlat2")]
2242    LegacyFlat2,
2243    #[serde(rename = "legacyFlat3")]
2244    LegacyFlat3,
2245    #[serde(rename = "legacyFlat4")]
2246    LegacyFlat4,
2247    #[serde(rename = "legacyNormal1")]
2248    LegacyNormal1,
2249    #[serde(rename = "legacyNormal2")]
2250    LegacyNormal2,
2251    #[serde(rename = "legacyNormal3")]
2252    LegacyNormal3,
2253    #[serde(rename = "legacyNormal4")]
2254    LegacyNormal4,
2255    #[serde(rename = "legacyHarsh1")]
2256    LegacyHarsh1,
2257    #[serde(rename = "legacyHarsh2")]
2258    LegacyHarsh2,
2259    #[serde(rename = "legacyHarsh3")]
2260    LegacyHarsh3,
2261    #[serde(rename = "legacyHarsh4")]
2262    LegacyHarsh4,
2263    #[serde(rename = "threePt")]
2264    ThreePt,
2265    #[serde(rename = "balanced")]
2266    Balanced,
2267    #[serde(rename = "soft")]
2268    Soft,
2269    #[serde(rename = "harsh")]
2270    Harsh,
2271    #[serde(rename = "flood")]
2272    Flood,
2273    #[serde(rename = "contrasting")]
2274    Contrasting,
2275    #[serde(rename = "morning")]
2276    Morning,
2277    #[serde(rename = "sunrise")]
2278    Sunrise,
2279    #[serde(rename = "sunset")]
2280    Sunset,
2281    #[serde(rename = "chilly")]
2282    Chilly,
2283    #[serde(rename = "freezing")]
2284    Freezing,
2285    #[serde(rename = "flat")]
2286    Flat,
2287    #[serde(rename = "twoPt")]
2288    TwoPt,
2289    #[serde(rename = "glow")]
2290    Glow,
2291    #[serde(rename = "brightRoom")]
2292    BrightRoom,
2293}
2294
2295impl std::fmt::Display for STLightRigType {
2296    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2297        match self {
2298            Self::LegacyFlat1 => write!(f, "legacyFlat1"),
2299            Self::LegacyFlat2 => write!(f, "legacyFlat2"),
2300            Self::LegacyFlat3 => write!(f, "legacyFlat3"),
2301            Self::LegacyFlat4 => write!(f, "legacyFlat4"),
2302            Self::LegacyNormal1 => write!(f, "legacyNormal1"),
2303            Self::LegacyNormal2 => write!(f, "legacyNormal2"),
2304            Self::LegacyNormal3 => write!(f, "legacyNormal3"),
2305            Self::LegacyNormal4 => write!(f, "legacyNormal4"),
2306            Self::LegacyHarsh1 => write!(f, "legacyHarsh1"),
2307            Self::LegacyHarsh2 => write!(f, "legacyHarsh2"),
2308            Self::LegacyHarsh3 => write!(f, "legacyHarsh3"),
2309            Self::LegacyHarsh4 => write!(f, "legacyHarsh4"),
2310            Self::ThreePt => write!(f, "threePt"),
2311            Self::Balanced => write!(f, "balanced"),
2312            Self::Soft => write!(f, "soft"),
2313            Self::Harsh => write!(f, "harsh"),
2314            Self::Flood => write!(f, "flood"),
2315            Self::Contrasting => write!(f, "contrasting"),
2316            Self::Morning => write!(f, "morning"),
2317            Self::Sunrise => write!(f, "sunrise"),
2318            Self::Sunset => write!(f, "sunset"),
2319            Self::Chilly => write!(f, "chilly"),
2320            Self::Freezing => write!(f, "freezing"),
2321            Self::Flat => write!(f, "flat"),
2322            Self::TwoPt => write!(f, "twoPt"),
2323            Self::Glow => write!(f, "glow"),
2324            Self::BrightRoom => write!(f, "brightRoom"),
2325        }
2326    }
2327}
2328
2329impl std::str::FromStr for STLightRigType {
2330    type Err = String;
2331
2332    fn from_str(s: &str) -> Result<Self, Self::Err> {
2333        match s {
2334            "legacyFlat1" => Ok(Self::LegacyFlat1),
2335            "legacyFlat2" => Ok(Self::LegacyFlat2),
2336            "legacyFlat3" => Ok(Self::LegacyFlat3),
2337            "legacyFlat4" => Ok(Self::LegacyFlat4),
2338            "legacyNormal1" => Ok(Self::LegacyNormal1),
2339            "legacyNormal2" => Ok(Self::LegacyNormal2),
2340            "legacyNormal3" => Ok(Self::LegacyNormal3),
2341            "legacyNormal4" => Ok(Self::LegacyNormal4),
2342            "legacyHarsh1" => Ok(Self::LegacyHarsh1),
2343            "legacyHarsh2" => Ok(Self::LegacyHarsh2),
2344            "legacyHarsh3" => Ok(Self::LegacyHarsh3),
2345            "legacyHarsh4" => Ok(Self::LegacyHarsh4),
2346            "threePt" => Ok(Self::ThreePt),
2347            "balanced" => Ok(Self::Balanced),
2348            "soft" => Ok(Self::Soft),
2349            "harsh" => Ok(Self::Harsh),
2350            "flood" => Ok(Self::Flood),
2351            "contrasting" => Ok(Self::Contrasting),
2352            "morning" => Ok(Self::Morning),
2353            "sunrise" => Ok(Self::Sunrise),
2354            "sunset" => Ok(Self::Sunset),
2355            "chilly" => Ok(Self::Chilly),
2356            "freezing" => Ok(Self::Freezing),
2357            "flat" => Ok(Self::Flat),
2358            "twoPt" => Ok(Self::TwoPt),
2359            "glow" => Ok(Self::Glow),
2360            "brightRoom" => Ok(Self::BrightRoom),
2361            _ => Err(format!("unknown STLightRigType value: {}", s)),
2362        }
2363    }
2364}
2365
2366#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2367pub enum STBevelPresetType {
2368    #[serde(rename = "relaxedInset")]
2369    RelaxedInset,
2370    #[serde(rename = "circle")]
2371    Circle,
2372    #[serde(rename = "slope")]
2373    Slope,
2374    #[serde(rename = "cross")]
2375    Cross,
2376    #[serde(rename = "angle")]
2377    Angle,
2378    #[serde(rename = "softRound")]
2379    SoftRound,
2380    #[serde(rename = "convex")]
2381    Convex,
2382    #[serde(rename = "coolSlant")]
2383    CoolSlant,
2384    #[serde(rename = "divot")]
2385    Divot,
2386    #[serde(rename = "riblet")]
2387    Riblet,
2388    #[serde(rename = "hardEdge")]
2389    HardEdge,
2390    #[serde(rename = "artDeco")]
2391    ArtDeco,
2392}
2393
2394impl std::fmt::Display for STBevelPresetType {
2395    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2396        match self {
2397            Self::RelaxedInset => write!(f, "relaxedInset"),
2398            Self::Circle => write!(f, "circle"),
2399            Self::Slope => write!(f, "slope"),
2400            Self::Cross => write!(f, "cross"),
2401            Self::Angle => write!(f, "angle"),
2402            Self::SoftRound => write!(f, "softRound"),
2403            Self::Convex => write!(f, "convex"),
2404            Self::CoolSlant => write!(f, "coolSlant"),
2405            Self::Divot => write!(f, "divot"),
2406            Self::Riblet => write!(f, "riblet"),
2407            Self::HardEdge => write!(f, "hardEdge"),
2408            Self::ArtDeco => write!(f, "artDeco"),
2409        }
2410    }
2411}
2412
2413impl std::str::FromStr for STBevelPresetType {
2414    type Err = String;
2415
2416    fn from_str(s: &str) -> Result<Self, Self::Err> {
2417        match s {
2418            "relaxedInset" => Ok(Self::RelaxedInset),
2419            "circle" => Ok(Self::Circle),
2420            "slope" => Ok(Self::Slope),
2421            "cross" => Ok(Self::Cross),
2422            "angle" => Ok(Self::Angle),
2423            "softRound" => Ok(Self::SoftRound),
2424            "convex" => Ok(Self::Convex),
2425            "coolSlant" => Ok(Self::CoolSlant),
2426            "divot" => Ok(Self::Divot),
2427            "riblet" => Ok(Self::Riblet),
2428            "hardEdge" => Ok(Self::HardEdge),
2429            "artDeco" => Ok(Self::ArtDeco),
2430            _ => Err(format!("unknown STBevelPresetType value: {}", s)),
2431        }
2432    }
2433}
2434
2435#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2436pub enum STPresetMaterialType {
2437    #[serde(rename = "legacyMatte")]
2438    LegacyMatte,
2439    #[serde(rename = "legacyPlastic")]
2440    LegacyPlastic,
2441    #[serde(rename = "legacyMetal")]
2442    LegacyMetal,
2443    #[serde(rename = "legacyWireframe")]
2444    LegacyWireframe,
2445    #[serde(rename = "matte")]
2446    Matte,
2447    #[serde(rename = "plastic")]
2448    Plastic,
2449    #[serde(rename = "metal")]
2450    Metal,
2451    #[serde(rename = "warmMatte")]
2452    WarmMatte,
2453    #[serde(rename = "translucentPowder")]
2454    TranslucentPowder,
2455    #[serde(rename = "powder")]
2456    Powder,
2457    #[serde(rename = "dkEdge")]
2458    DkEdge,
2459    #[serde(rename = "softEdge")]
2460    SoftEdge,
2461    #[serde(rename = "clear")]
2462    Clear,
2463    #[serde(rename = "flat")]
2464    Flat,
2465    #[serde(rename = "softmetal")]
2466    Softmetal,
2467}
2468
2469impl std::fmt::Display for STPresetMaterialType {
2470    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2471        match self {
2472            Self::LegacyMatte => write!(f, "legacyMatte"),
2473            Self::LegacyPlastic => write!(f, "legacyPlastic"),
2474            Self::LegacyMetal => write!(f, "legacyMetal"),
2475            Self::LegacyWireframe => write!(f, "legacyWireframe"),
2476            Self::Matte => write!(f, "matte"),
2477            Self::Plastic => write!(f, "plastic"),
2478            Self::Metal => write!(f, "metal"),
2479            Self::WarmMatte => write!(f, "warmMatte"),
2480            Self::TranslucentPowder => write!(f, "translucentPowder"),
2481            Self::Powder => write!(f, "powder"),
2482            Self::DkEdge => write!(f, "dkEdge"),
2483            Self::SoftEdge => write!(f, "softEdge"),
2484            Self::Clear => write!(f, "clear"),
2485            Self::Flat => write!(f, "flat"),
2486            Self::Softmetal => write!(f, "softmetal"),
2487        }
2488    }
2489}
2490
2491impl std::str::FromStr for STPresetMaterialType {
2492    type Err = String;
2493
2494    fn from_str(s: &str) -> Result<Self, Self::Err> {
2495        match s {
2496            "legacyMatte" => Ok(Self::LegacyMatte),
2497            "legacyPlastic" => Ok(Self::LegacyPlastic),
2498            "legacyMetal" => Ok(Self::LegacyMetal),
2499            "legacyWireframe" => Ok(Self::LegacyWireframe),
2500            "matte" => Ok(Self::Matte),
2501            "plastic" => Ok(Self::Plastic),
2502            "metal" => Ok(Self::Metal),
2503            "warmMatte" => Ok(Self::WarmMatte),
2504            "translucentPowder" => Ok(Self::TranslucentPowder),
2505            "powder" => Ok(Self::Powder),
2506            "dkEdge" => Ok(Self::DkEdge),
2507            "softEdge" => Ok(Self::SoftEdge),
2508            "clear" => Ok(Self::Clear),
2509            "flat" => Ok(Self::Flat),
2510            "softmetal" => Ok(Self::Softmetal),
2511            _ => Err(format!("unknown STPresetMaterialType value: {}", s)),
2512        }
2513    }
2514}
2515
2516#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2517pub enum STPresetShadowVal {
2518    #[serde(rename = "shdw1")]
2519    Shdw1,
2520    #[serde(rename = "shdw2")]
2521    Shdw2,
2522    #[serde(rename = "shdw3")]
2523    Shdw3,
2524    #[serde(rename = "shdw4")]
2525    Shdw4,
2526    #[serde(rename = "shdw5")]
2527    Shdw5,
2528    #[serde(rename = "shdw6")]
2529    Shdw6,
2530    #[serde(rename = "shdw7")]
2531    Shdw7,
2532    #[serde(rename = "shdw8")]
2533    Shdw8,
2534    #[serde(rename = "shdw9")]
2535    Shdw9,
2536    #[serde(rename = "shdw10")]
2537    Shdw10,
2538    #[serde(rename = "shdw11")]
2539    Shdw11,
2540    #[serde(rename = "shdw12")]
2541    Shdw12,
2542    #[serde(rename = "shdw13")]
2543    Shdw13,
2544    #[serde(rename = "shdw14")]
2545    Shdw14,
2546    #[serde(rename = "shdw15")]
2547    Shdw15,
2548    #[serde(rename = "shdw16")]
2549    Shdw16,
2550    #[serde(rename = "shdw17")]
2551    Shdw17,
2552    #[serde(rename = "shdw18")]
2553    Shdw18,
2554    #[serde(rename = "shdw19")]
2555    Shdw19,
2556    #[serde(rename = "shdw20")]
2557    Shdw20,
2558}
2559
2560impl std::fmt::Display for STPresetShadowVal {
2561    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2562        match self {
2563            Self::Shdw1 => write!(f, "shdw1"),
2564            Self::Shdw2 => write!(f, "shdw2"),
2565            Self::Shdw3 => write!(f, "shdw3"),
2566            Self::Shdw4 => write!(f, "shdw4"),
2567            Self::Shdw5 => write!(f, "shdw5"),
2568            Self::Shdw6 => write!(f, "shdw6"),
2569            Self::Shdw7 => write!(f, "shdw7"),
2570            Self::Shdw8 => write!(f, "shdw8"),
2571            Self::Shdw9 => write!(f, "shdw9"),
2572            Self::Shdw10 => write!(f, "shdw10"),
2573            Self::Shdw11 => write!(f, "shdw11"),
2574            Self::Shdw12 => write!(f, "shdw12"),
2575            Self::Shdw13 => write!(f, "shdw13"),
2576            Self::Shdw14 => write!(f, "shdw14"),
2577            Self::Shdw15 => write!(f, "shdw15"),
2578            Self::Shdw16 => write!(f, "shdw16"),
2579            Self::Shdw17 => write!(f, "shdw17"),
2580            Self::Shdw18 => write!(f, "shdw18"),
2581            Self::Shdw19 => write!(f, "shdw19"),
2582            Self::Shdw20 => write!(f, "shdw20"),
2583        }
2584    }
2585}
2586
2587impl std::str::FromStr for STPresetShadowVal {
2588    type Err = String;
2589
2590    fn from_str(s: &str) -> Result<Self, Self::Err> {
2591        match s {
2592            "shdw1" => Ok(Self::Shdw1),
2593            "shdw2" => Ok(Self::Shdw2),
2594            "shdw3" => Ok(Self::Shdw3),
2595            "shdw4" => Ok(Self::Shdw4),
2596            "shdw5" => Ok(Self::Shdw5),
2597            "shdw6" => Ok(Self::Shdw6),
2598            "shdw7" => Ok(Self::Shdw7),
2599            "shdw8" => Ok(Self::Shdw8),
2600            "shdw9" => Ok(Self::Shdw9),
2601            "shdw10" => Ok(Self::Shdw10),
2602            "shdw11" => Ok(Self::Shdw11),
2603            "shdw12" => Ok(Self::Shdw12),
2604            "shdw13" => Ok(Self::Shdw13),
2605            "shdw14" => Ok(Self::Shdw14),
2606            "shdw15" => Ok(Self::Shdw15),
2607            "shdw16" => Ok(Self::Shdw16),
2608            "shdw17" => Ok(Self::Shdw17),
2609            "shdw18" => Ok(Self::Shdw18),
2610            "shdw19" => Ok(Self::Shdw19),
2611            "shdw20" => Ok(Self::Shdw20),
2612            _ => Err(format!("unknown STPresetShadowVal value: {}", s)),
2613        }
2614    }
2615}
2616
2617#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2618pub enum STPathShadeType {
2619    #[serde(rename = "shape")]
2620    Shape,
2621    #[serde(rename = "circle")]
2622    Circle,
2623    #[serde(rename = "rect")]
2624    Rect,
2625}
2626
2627impl std::fmt::Display for STPathShadeType {
2628    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2629        match self {
2630            Self::Shape => write!(f, "shape"),
2631            Self::Circle => write!(f, "circle"),
2632            Self::Rect => write!(f, "rect"),
2633        }
2634    }
2635}
2636
2637impl std::str::FromStr for STPathShadeType {
2638    type Err = String;
2639
2640    fn from_str(s: &str) -> Result<Self, Self::Err> {
2641        match s {
2642            "shape" => Ok(Self::Shape),
2643            "circle" => Ok(Self::Circle),
2644            "rect" => Ok(Self::Rect),
2645            _ => Err(format!("unknown STPathShadeType value: {}", s)),
2646        }
2647    }
2648}
2649
2650#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2651pub enum STTileFlipMode {
2652    #[serde(rename = "none")]
2653    None,
2654    #[serde(rename = "x")]
2655    X,
2656    #[serde(rename = "y")]
2657    Y,
2658    #[serde(rename = "xy")]
2659    Xy,
2660}
2661
2662impl std::fmt::Display for STTileFlipMode {
2663    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2664        match self {
2665            Self::None => write!(f, "none"),
2666            Self::X => write!(f, "x"),
2667            Self::Y => write!(f, "y"),
2668            Self::Xy => write!(f, "xy"),
2669        }
2670    }
2671}
2672
2673impl std::str::FromStr for STTileFlipMode {
2674    type Err = String;
2675
2676    fn from_str(s: &str) -> Result<Self, Self::Err> {
2677        match s {
2678            "none" => Ok(Self::None),
2679            "x" => Ok(Self::X),
2680            "y" => Ok(Self::Y),
2681            "xy" => Ok(Self::Xy),
2682            _ => Err(format!("unknown STTileFlipMode value: {}", s)),
2683        }
2684    }
2685}
2686
2687#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2688pub enum STBlipCompression {
2689    #[serde(rename = "email")]
2690    Email,
2691    #[serde(rename = "screen")]
2692    Screen,
2693    #[serde(rename = "print")]
2694    Print,
2695    #[serde(rename = "hqprint")]
2696    Hqprint,
2697    #[serde(rename = "none")]
2698    None,
2699}
2700
2701impl std::fmt::Display for STBlipCompression {
2702    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2703        match self {
2704            Self::Email => write!(f, "email"),
2705            Self::Screen => write!(f, "screen"),
2706            Self::Print => write!(f, "print"),
2707            Self::Hqprint => write!(f, "hqprint"),
2708            Self::None => write!(f, "none"),
2709        }
2710    }
2711}
2712
2713impl std::str::FromStr for STBlipCompression {
2714    type Err = String;
2715
2716    fn from_str(s: &str) -> Result<Self, Self::Err> {
2717        match s {
2718            "email" => Ok(Self::Email),
2719            "screen" => Ok(Self::Screen),
2720            "print" => Ok(Self::Print),
2721            "hqprint" => Ok(Self::Hqprint),
2722            "none" => Ok(Self::None),
2723            _ => Err(format!("unknown STBlipCompression value: {}", s)),
2724        }
2725    }
2726}
2727
2728#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2729pub enum STPresetPatternVal {
2730    #[serde(rename = "pct5")]
2731    Pct5,
2732    #[serde(rename = "pct10")]
2733    Pct10,
2734    #[serde(rename = "pct20")]
2735    Pct20,
2736    #[serde(rename = "pct25")]
2737    Pct25,
2738    #[serde(rename = "pct30")]
2739    Pct30,
2740    #[serde(rename = "pct40")]
2741    Pct40,
2742    #[serde(rename = "pct50")]
2743    Pct50,
2744    #[serde(rename = "pct60")]
2745    Pct60,
2746    #[serde(rename = "pct70")]
2747    Pct70,
2748    #[serde(rename = "pct75")]
2749    Pct75,
2750    #[serde(rename = "pct80")]
2751    Pct80,
2752    #[serde(rename = "pct90")]
2753    Pct90,
2754    #[serde(rename = "horz")]
2755    Horz,
2756    #[serde(rename = "vert")]
2757    Vert,
2758    #[serde(rename = "ltHorz")]
2759    LtHorz,
2760    #[serde(rename = "ltVert")]
2761    LtVert,
2762    #[serde(rename = "dkHorz")]
2763    DkHorz,
2764    #[serde(rename = "dkVert")]
2765    DkVert,
2766    #[serde(rename = "narHorz")]
2767    NarHorz,
2768    #[serde(rename = "narVert")]
2769    NarVert,
2770    #[serde(rename = "dashHorz")]
2771    DashHorz,
2772    #[serde(rename = "dashVert")]
2773    DashVert,
2774    #[serde(rename = "cross")]
2775    Cross,
2776    #[serde(rename = "dnDiag")]
2777    DnDiag,
2778    #[serde(rename = "upDiag")]
2779    UpDiag,
2780    #[serde(rename = "ltDnDiag")]
2781    LtDnDiag,
2782    #[serde(rename = "ltUpDiag")]
2783    LtUpDiag,
2784    #[serde(rename = "dkDnDiag")]
2785    DkDnDiag,
2786    #[serde(rename = "dkUpDiag")]
2787    DkUpDiag,
2788    #[serde(rename = "wdDnDiag")]
2789    WdDnDiag,
2790    #[serde(rename = "wdUpDiag")]
2791    WdUpDiag,
2792    #[serde(rename = "dashDnDiag")]
2793    DashDnDiag,
2794    #[serde(rename = "dashUpDiag")]
2795    DashUpDiag,
2796    #[serde(rename = "diagCross")]
2797    DiagCross,
2798    #[serde(rename = "smCheck")]
2799    SmCheck,
2800    #[serde(rename = "lgCheck")]
2801    LgCheck,
2802    #[serde(rename = "smGrid")]
2803    SmGrid,
2804    #[serde(rename = "lgGrid")]
2805    LgGrid,
2806    #[serde(rename = "dotGrid")]
2807    DotGrid,
2808    #[serde(rename = "smConfetti")]
2809    SmConfetti,
2810    #[serde(rename = "lgConfetti")]
2811    LgConfetti,
2812    #[serde(rename = "horzBrick")]
2813    HorzBrick,
2814    #[serde(rename = "diagBrick")]
2815    DiagBrick,
2816    #[serde(rename = "solidDmnd")]
2817    SolidDmnd,
2818    #[serde(rename = "openDmnd")]
2819    OpenDmnd,
2820    #[serde(rename = "dotDmnd")]
2821    DotDmnd,
2822    #[serde(rename = "plaid")]
2823    Plaid,
2824    #[serde(rename = "sphere")]
2825    Sphere,
2826    #[serde(rename = "weave")]
2827    Weave,
2828    #[serde(rename = "divot")]
2829    Divot,
2830    #[serde(rename = "shingle")]
2831    Shingle,
2832    #[serde(rename = "wave")]
2833    Wave,
2834    #[serde(rename = "trellis")]
2835    Trellis,
2836    #[serde(rename = "zigZag")]
2837    ZigZag,
2838}
2839
2840impl std::fmt::Display for STPresetPatternVal {
2841    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2842        match self {
2843            Self::Pct5 => write!(f, "pct5"),
2844            Self::Pct10 => write!(f, "pct10"),
2845            Self::Pct20 => write!(f, "pct20"),
2846            Self::Pct25 => write!(f, "pct25"),
2847            Self::Pct30 => write!(f, "pct30"),
2848            Self::Pct40 => write!(f, "pct40"),
2849            Self::Pct50 => write!(f, "pct50"),
2850            Self::Pct60 => write!(f, "pct60"),
2851            Self::Pct70 => write!(f, "pct70"),
2852            Self::Pct75 => write!(f, "pct75"),
2853            Self::Pct80 => write!(f, "pct80"),
2854            Self::Pct90 => write!(f, "pct90"),
2855            Self::Horz => write!(f, "horz"),
2856            Self::Vert => write!(f, "vert"),
2857            Self::LtHorz => write!(f, "ltHorz"),
2858            Self::LtVert => write!(f, "ltVert"),
2859            Self::DkHorz => write!(f, "dkHorz"),
2860            Self::DkVert => write!(f, "dkVert"),
2861            Self::NarHorz => write!(f, "narHorz"),
2862            Self::NarVert => write!(f, "narVert"),
2863            Self::DashHorz => write!(f, "dashHorz"),
2864            Self::DashVert => write!(f, "dashVert"),
2865            Self::Cross => write!(f, "cross"),
2866            Self::DnDiag => write!(f, "dnDiag"),
2867            Self::UpDiag => write!(f, "upDiag"),
2868            Self::LtDnDiag => write!(f, "ltDnDiag"),
2869            Self::LtUpDiag => write!(f, "ltUpDiag"),
2870            Self::DkDnDiag => write!(f, "dkDnDiag"),
2871            Self::DkUpDiag => write!(f, "dkUpDiag"),
2872            Self::WdDnDiag => write!(f, "wdDnDiag"),
2873            Self::WdUpDiag => write!(f, "wdUpDiag"),
2874            Self::DashDnDiag => write!(f, "dashDnDiag"),
2875            Self::DashUpDiag => write!(f, "dashUpDiag"),
2876            Self::DiagCross => write!(f, "diagCross"),
2877            Self::SmCheck => write!(f, "smCheck"),
2878            Self::LgCheck => write!(f, "lgCheck"),
2879            Self::SmGrid => write!(f, "smGrid"),
2880            Self::LgGrid => write!(f, "lgGrid"),
2881            Self::DotGrid => write!(f, "dotGrid"),
2882            Self::SmConfetti => write!(f, "smConfetti"),
2883            Self::LgConfetti => write!(f, "lgConfetti"),
2884            Self::HorzBrick => write!(f, "horzBrick"),
2885            Self::DiagBrick => write!(f, "diagBrick"),
2886            Self::SolidDmnd => write!(f, "solidDmnd"),
2887            Self::OpenDmnd => write!(f, "openDmnd"),
2888            Self::DotDmnd => write!(f, "dotDmnd"),
2889            Self::Plaid => write!(f, "plaid"),
2890            Self::Sphere => write!(f, "sphere"),
2891            Self::Weave => write!(f, "weave"),
2892            Self::Divot => write!(f, "divot"),
2893            Self::Shingle => write!(f, "shingle"),
2894            Self::Wave => write!(f, "wave"),
2895            Self::Trellis => write!(f, "trellis"),
2896            Self::ZigZag => write!(f, "zigZag"),
2897        }
2898    }
2899}
2900
2901impl std::str::FromStr for STPresetPatternVal {
2902    type Err = String;
2903
2904    fn from_str(s: &str) -> Result<Self, Self::Err> {
2905        match s {
2906            "pct5" => Ok(Self::Pct5),
2907            "pct10" => Ok(Self::Pct10),
2908            "pct20" => Ok(Self::Pct20),
2909            "pct25" => Ok(Self::Pct25),
2910            "pct30" => Ok(Self::Pct30),
2911            "pct40" => Ok(Self::Pct40),
2912            "pct50" => Ok(Self::Pct50),
2913            "pct60" => Ok(Self::Pct60),
2914            "pct70" => Ok(Self::Pct70),
2915            "pct75" => Ok(Self::Pct75),
2916            "pct80" => Ok(Self::Pct80),
2917            "pct90" => Ok(Self::Pct90),
2918            "horz" => Ok(Self::Horz),
2919            "vert" => Ok(Self::Vert),
2920            "ltHorz" => Ok(Self::LtHorz),
2921            "ltVert" => Ok(Self::LtVert),
2922            "dkHorz" => Ok(Self::DkHorz),
2923            "dkVert" => Ok(Self::DkVert),
2924            "narHorz" => Ok(Self::NarHorz),
2925            "narVert" => Ok(Self::NarVert),
2926            "dashHorz" => Ok(Self::DashHorz),
2927            "dashVert" => Ok(Self::DashVert),
2928            "cross" => Ok(Self::Cross),
2929            "dnDiag" => Ok(Self::DnDiag),
2930            "upDiag" => Ok(Self::UpDiag),
2931            "ltDnDiag" => Ok(Self::LtDnDiag),
2932            "ltUpDiag" => Ok(Self::LtUpDiag),
2933            "dkDnDiag" => Ok(Self::DkDnDiag),
2934            "dkUpDiag" => Ok(Self::DkUpDiag),
2935            "wdDnDiag" => Ok(Self::WdDnDiag),
2936            "wdUpDiag" => Ok(Self::WdUpDiag),
2937            "dashDnDiag" => Ok(Self::DashDnDiag),
2938            "dashUpDiag" => Ok(Self::DashUpDiag),
2939            "diagCross" => Ok(Self::DiagCross),
2940            "smCheck" => Ok(Self::SmCheck),
2941            "lgCheck" => Ok(Self::LgCheck),
2942            "smGrid" => Ok(Self::SmGrid),
2943            "lgGrid" => Ok(Self::LgGrid),
2944            "dotGrid" => Ok(Self::DotGrid),
2945            "smConfetti" => Ok(Self::SmConfetti),
2946            "lgConfetti" => Ok(Self::LgConfetti),
2947            "horzBrick" => Ok(Self::HorzBrick),
2948            "diagBrick" => Ok(Self::DiagBrick),
2949            "solidDmnd" => Ok(Self::SolidDmnd),
2950            "openDmnd" => Ok(Self::OpenDmnd),
2951            "dotDmnd" => Ok(Self::DotDmnd),
2952            "plaid" => Ok(Self::Plaid),
2953            "sphere" => Ok(Self::Sphere),
2954            "weave" => Ok(Self::Weave),
2955            "divot" => Ok(Self::Divot),
2956            "shingle" => Ok(Self::Shingle),
2957            "wave" => Ok(Self::Wave),
2958            "trellis" => Ok(Self::Trellis),
2959            "zigZag" => Ok(Self::ZigZag),
2960            _ => Err(format!("unknown STPresetPatternVal value: {}", s)),
2961        }
2962    }
2963}
2964
2965#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2966pub enum STBlendMode {
2967    #[serde(rename = "over")]
2968    Over,
2969    #[serde(rename = "mult")]
2970    Mult,
2971    #[serde(rename = "screen")]
2972    Screen,
2973    #[serde(rename = "darken")]
2974    Darken,
2975    #[serde(rename = "lighten")]
2976    Lighten,
2977}
2978
2979impl std::fmt::Display for STBlendMode {
2980    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2981        match self {
2982            Self::Over => write!(f, "over"),
2983            Self::Mult => write!(f, "mult"),
2984            Self::Screen => write!(f, "screen"),
2985            Self::Darken => write!(f, "darken"),
2986            Self::Lighten => write!(f, "lighten"),
2987        }
2988    }
2989}
2990
2991impl std::str::FromStr for STBlendMode {
2992    type Err = String;
2993
2994    fn from_str(s: &str) -> Result<Self, Self::Err> {
2995        match s {
2996            "over" => Ok(Self::Over),
2997            "mult" => Ok(Self::Mult),
2998            "screen" => Ok(Self::Screen),
2999            "darken" => Ok(Self::Darken),
3000            "lighten" => Ok(Self::Lighten),
3001            _ => Err(format!("unknown STBlendMode value: {}", s)),
3002        }
3003    }
3004}
3005
3006#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3007pub enum STEffectContainerType {
3008    #[serde(rename = "sib")]
3009    Sib,
3010    #[serde(rename = "tree")]
3011    Tree,
3012}
3013
3014impl std::fmt::Display for STEffectContainerType {
3015    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3016        match self {
3017            Self::Sib => write!(f, "sib"),
3018            Self::Tree => write!(f, "tree"),
3019        }
3020    }
3021}
3022
3023impl std::str::FromStr for STEffectContainerType {
3024    type Err = String;
3025
3026    fn from_str(s: &str) -> Result<Self, Self::Err> {
3027        match s {
3028            "sib" => Ok(Self::Sib),
3029            "tree" => Ok(Self::Tree),
3030            _ => Err(format!("unknown STEffectContainerType value: {}", s)),
3031        }
3032    }
3033}
3034
3035#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3036pub enum STShapeType {
3037    #[serde(rename = "line")]
3038    Line,
3039    #[serde(rename = "lineInv")]
3040    LineInv,
3041    #[serde(rename = "triangle")]
3042    Triangle,
3043    #[serde(rename = "rtTriangle")]
3044    RtTriangle,
3045    #[serde(rename = "rect")]
3046    Rect,
3047    #[serde(rename = "diamond")]
3048    Diamond,
3049    #[serde(rename = "parallelogram")]
3050    Parallelogram,
3051    #[serde(rename = "trapezoid")]
3052    Trapezoid,
3053    #[serde(rename = "nonIsoscelesTrapezoid")]
3054    NonIsoscelesTrapezoid,
3055    #[serde(rename = "pentagon")]
3056    Pentagon,
3057    #[serde(rename = "hexagon")]
3058    Hexagon,
3059    #[serde(rename = "heptagon")]
3060    Heptagon,
3061    #[serde(rename = "octagon")]
3062    Octagon,
3063    #[serde(rename = "decagon")]
3064    Decagon,
3065    #[serde(rename = "dodecagon")]
3066    Dodecagon,
3067    #[serde(rename = "star4")]
3068    Star4,
3069    #[serde(rename = "star5")]
3070    Star5,
3071    #[serde(rename = "star6")]
3072    Star6,
3073    #[serde(rename = "star7")]
3074    Star7,
3075    #[serde(rename = "star8")]
3076    Star8,
3077    #[serde(rename = "star10")]
3078    Star10,
3079    #[serde(rename = "star12")]
3080    Star12,
3081    #[serde(rename = "star16")]
3082    Star16,
3083    #[serde(rename = "star24")]
3084    Star24,
3085    #[serde(rename = "star32")]
3086    Star32,
3087    #[serde(rename = "roundRect")]
3088    RoundRect,
3089    #[serde(rename = "round1Rect")]
3090    Round1Rect,
3091    #[serde(rename = "round2SameRect")]
3092    Round2SameRect,
3093    #[serde(rename = "round2DiagRect")]
3094    Round2DiagRect,
3095    #[serde(rename = "snipRoundRect")]
3096    SnipRoundRect,
3097    #[serde(rename = "snip1Rect")]
3098    Snip1Rect,
3099    #[serde(rename = "snip2SameRect")]
3100    Snip2SameRect,
3101    #[serde(rename = "snip2DiagRect")]
3102    Snip2DiagRect,
3103    #[serde(rename = "plaque")]
3104    Plaque,
3105    #[serde(rename = "ellipse")]
3106    Ellipse,
3107    #[serde(rename = "teardrop")]
3108    Teardrop,
3109    #[serde(rename = "homePlate")]
3110    HomePlate,
3111    #[serde(rename = "chevron")]
3112    Chevron,
3113    #[serde(rename = "pieWedge")]
3114    PieWedge,
3115    #[serde(rename = "pie")]
3116    Pie,
3117    #[serde(rename = "blockArc")]
3118    BlockArc,
3119    #[serde(rename = "donut")]
3120    Donut,
3121    #[serde(rename = "noSmoking")]
3122    NoSmoking,
3123    #[serde(rename = "rightArrow")]
3124    RightArrow,
3125    #[serde(rename = "leftArrow")]
3126    LeftArrow,
3127    #[serde(rename = "upArrow")]
3128    UpArrow,
3129    #[serde(rename = "downArrow")]
3130    DownArrow,
3131    #[serde(rename = "stripedRightArrow")]
3132    StripedRightArrow,
3133    #[serde(rename = "notchedRightArrow")]
3134    NotchedRightArrow,
3135    #[serde(rename = "bentUpArrow")]
3136    BentUpArrow,
3137    #[serde(rename = "leftRightArrow")]
3138    LeftRightArrow,
3139    #[serde(rename = "upDownArrow")]
3140    UpDownArrow,
3141    #[serde(rename = "leftUpArrow")]
3142    LeftUpArrow,
3143    #[serde(rename = "leftRightUpArrow")]
3144    LeftRightUpArrow,
3145    #[serde(rename = "quadArrow")]
3146    QuadArrow,
3147    #[serde(rename = "leftArrowCallout")]
3148    LeftArrowCallout,
3149    #[serde(rename = "rightArrowCallout")]
3150    RightArrowCallout,
3151    #[serde(rename = "upArrowCallout")]
3152    UpArrowCallout,
3153    #[serde(rename = "downArrowCallout")]
3154    DownArrowCallout,
3155    #[serde(rename = "leftRightArrowCallout")]
3156    LeftRightArrowCallout,
3157    #[serde(rename = "upDownArrowCallout")]
3158    UpDownArrowCallout,
3159    #[serde(rename = "quadArrowCallout")]
3160    QuadArrowCallout,
3161    #[serde(rename = "bentArrow")]
3162    BentArrow,
3163    #[serde(rename = "uturnArrow")]
3164    UturnArrow,
3165    #[serde(rename = "circularArrow")]
3166    CircularArrow,
3167    #[serde(rename = "leftCircularArrow")]
3168    LeftCircularArrow,
3169    #[serde(rename = "leftRightCircularArrow")]
3170    LeftRightCircularArrow,
3171    #[serde(rename = "curvedRightArrow")]
3172    CurvedRightArrow,
3173    #[serde(rename = "curvedLeftArrow")]
3174    CurvedLeftArrow,
3175    #[serde(rename = "curvedUpArrow")]
3176    CurvedUpArrow,
3177    #[serde(rename = "curvedDownArrow")]
3178    CurvedDownArrow,
3179    #[serde(rename = "swooshArrow")]
3180    SwooshArrow,
3181    #[serde(rename = "cube")]
3182    Cube,
3183    #[serde(rename = "can")]
3184    Can,
3185    #[serde(rename = "lightningBolt")]
3186    LightningBolt,
3187    #[serde(rename = "heart")]
3188    Heart,
3189    #[serde(rename = "sun")]
3190    Sun,
3191    #[serde(rename = "moon")]
3192    Moon,
3193    #[serde(rename = "smileyFace")]
3194    SmileyFace,
3195    #[serde(rename = "irregularSeal1")]
3196    IrregularSeal1,
3197    #[serde(rename = "irregularSeal2")]
3198    IrregularSeal2,
3199    #[serde(rename = "foldedCorner")]
3200    FoldedCorner,
3201    #[serde(rename = "bevel")]
3202    Bevel,
3203    #[serde(rename = "frame")]
3204    Frame,
3205    #[serde(rename = "halfFrame")]
3206    HalfFrame,
3207    #[serde(rename = "corner")]
3208    Corner,
3209    #[serde(rename = "diagStripe")]
3210    DiagStripe,
3211    #[serde(rename = "chord")]
3212    Chord,
3213    #[serde(rename = "arc")]
3214    Arc,
3215    #[serde(rename = "leftBracket")]
3216    LeftBracket,
3217    #[serde(rename = "rightBracket")]
3218    RightBracket,
3219    #[serde(rename = "leftBrace")]
3220    LeftBrace,
3221    #[serde(rename = "rightBrace")]
3222    RightBrace,
3223    #[serde(rename = "bracketPair")]
3224    BracketPair,
3225    #[serde(rename = "bracePair")]
3226    BracePair,
3227    #[serde(rename = "straightConnector1")]
3228    StraightConnector1,
3229    #[serde(rename = "bentConnector2")]
3230    BentConnector2,
3231    #[serde(rename = "bentConnector3")]
3232    BentConnector3,
3233    #[serde(rename = "bentConnector4")]
3234    BentConnector4,
3235    #[serde(rename = "bentConnector5")]
3236    BentConnector5,
3237    #[serde(rename = "curvedConnector2")]
3238    CurvedConnector2,
3239    #[serde(rename = "curvedConnector3")]
3240    CurvedConnector3,
3241    #[serde(rename = "curvedConnector4")]
3242    CurvedConnector4,
3243    #[serde(rename = "curvedConnector5")]
3244    CurvedConnector5,
3245    #[serde(rename = "callout1")]
3246    Callout1,
3247    #[serde(rename = "callout2")]
3248    Callout2,
3249    #[serde(rename = "callout3")]
3250    Callout3,
3251    #[serde(rename = "accentCallout1")]
3252    AccentCallout1,
3253    #[serde(rename = "accentCallout2")]
3254    AccentCallout2,
3255    #[serde(rename = "accentCallout3")]
3256    AccentCallout3,
3257    #[serde(rename = "borderCallout1")]
3258    BorderCallout1,
3259    #[serde(rename = "borderCallout2")]
3260    BorderCallout2,
3261    #[serde(rename = "borderCallout3")]
3262    BorderCallout3,
3263    #[serde(rename = "accentBorderCallout1")]
3264    AccentBorderCallout1,
3265    #[serde(rename = "accentBorderCallout2")]
3266    AccentBorderCallout2,
3267    #[serde(rename = "accentBorderCallout3")]
3268    AccentBorderCallout3,
3269    #[serde(rename = "wedgeRectCallout")]
3270    WedgeRectCallout,
3271    #[serde(rename = "wedgeRoundRectCallout")]
3272    WedgeRoundRectCallout,
3273    #[serde(rename = "wedgeEllipseCallout")]
3274    WedgeEllipseCallout,
3275    #[serde(rename = "cloudCallout")]
3276    CloudCallout,
3277    #[serde(rename = "cloud")]
3278    Cloud,
3279    #[serde(rename = "ribbon")]
3280    Ribbon,
3281    #[serde(rename = "ribbon2")]
3282    Ribbon2,
3283    #[serde(rename = "ellipseRibbon")]
3284    EllipseRibbon,
3285    #[serde(rename = "ellipseRibbon2")]
3286    EllipseRibbon2,
3287    #[serde(rename = "leftRightRibbon")]
3288    LeftRightRibbon,
3289    #[serde(rename = "verticalScroll")]
3290    VerticalScroll,
3291    #[serde(rename = "horizontalScroll")]
3292    HorizontalScroll,
3293    #[serde(rename = "wave")]
3294    Wave,
3295    #[serde(rename = "doubleWave")]
3296    DoubleWave,
3297    #[serde(rename = "plus")]
3298    Plus,
3299    #[serde(rename = "flowChartProcess")]
3300    FlowChartProcess,
3301    #[serde(rename = "flowChartDecision")]
3302    FlowChartDecision,
3303    #[serde(rename = "flowChartInputOutput")]
3304    FlowChartInputOutput,
3305    #[serde(rename = "flowChartPredefinedProcess")]
3306    FlowChartPredefinedProcess,
3307    #[serde(rename = "flowChartInternalStorage")]
3308    FlowChartInternalStorage,
3309    #[serde(rename = "flowChartDocument")]
3310    FlowChartDocument,
3311    #[serde(rename = "flowChartMultidocument")]
3312    FlowChartMultidocument,
3313    #[serde(rename = "flowChartTerminator")]
3314    FlowChartTerminator,
3315    #[serde(rename = "flowChartPreparation")]
3316    FlowChartPreparation,
3317    #[serde(rename = "flowChartManualInput")]
3318    FlowChartManualInput,
3319    #[serde(rename = "flowChartManualOperation")]
3320    FlowChartManualOperation,
3321    #[serde(rename = "flowChartConnector")]
3322    FlowChartConnector,
3323    #[serde(rename = "flowChartPunchedCard")]
3324    FlowChartPunchedCard,
3325    #[serde(rename = "flowChartPunchedTape")]
3326    FlowChartPunchedTape,
3327    #[serde(rename = "flowChartSummingJunction")]
3328    FlowChartSummingJunction,
3329    #[serde(rename = "flowChartOr")]
3330    FlowChartOr,
3331    #[serde(rename = "flowChartCollate")]
3332    FlowChartCollate,
3333    #[serde(rename = "flowChartSort")]
3334    FlowChartSort,
3335    #[serde(rename = "flowChartExtract")]
3336    FlowChartExtract,
3337    #[serde(rename = "flowChartMerge")]
3338    FlowChartMerge,
3339    #[serde(rename = "flowChartOfflineStorage")]
3340    FlowChartOfflineStorage,
3341    #[serde(rename = "flowChartOnlineStorage")]
3342    FlowChartOnlineStorage,
3343    #[serde(rename = "flowChartMagneticTape")]
3344    FlowChartMagneticTape,
3345    #[serde(rename = "flowChartMagneticDisk")]
3346    FlowChartMagneticDisk,
3347    #[serde(rename = "flowChartMagneticDrum")]
3348    FlowChartMagneticDrum,
3349    #[serde(rename = "flowChartDisplay")]
3350    FlowChartDisplay,
3351    #[serde(rename = "flowChartDelay")]
3352    FlowChartDelay,
3353    #[serde(rename = "flowChartAlternateProcess")]
3354    FlowChartAlternateProcess,
3355    #[serde(rename = "flowChartOffpageConnector")]
3356    FlowChartOffpageConnector,
3357    #[serde(rename = "actionButtonBlank")]
3358    ActionButtonBlank,
3359    #[serde(rename = "actionButtonHome")]
3360    ActionButtonHome,
3361    #[serde(rename = "actionButtonHelp")]
3362    ActionButtonHelp,
3363    #[serde(rename = "actionButtonInformation")]
3364    ActionButtonInformation,
3365    #[serde(rename = "actionButtonForwardNext")]
3366    ActionButtonForwardNext,
3367    #[serde(rename = "actionButtonBackPrevious")]
3368    ActionButtonBackPrevious,
3369    #[serde(rename = "actionButtonEnd")]
3370    ActionButtonEnd,
3371    #[serde(rename = "actionButtonBeginning")]
3372    ActionButtonBeginning,
3373    #[serde(rename = "actionButtonReturn")]
3374    ActionButtonReturn,
3375    #[serde(rename = "actionButtonDocument")]
3376    ActionButtonDocument,
3377    #[serde(rename = "actionButtonSound")]
3378    ActionButtonSound,
3379    #[serde(rename = "actionButtonMovie")]
3380    ActionButtonMovie,
3381    #[serde(rename = "gear6")]
3382    Gear6,
3383    #[serde(rename = "gear9")]
3384    Gear9,
3385    #[serde(rename = "funnel")]
3386    Funnel,
3387    #[serde(rename = "mathPlus")]
3388    MathPlus,
3389    #[serde(rename = "mathMinus")]
3390    MathMinus,
3391    #[serde(rename = "mathMultiply")]
3392    MathMultiply,
3393    #[serde(rename = "mathDivide")]
3394    MathDivide,
3395    #[serde(rename = "mathEqual")]
3396    MathEqual,
3397    #[serde(rename = "mathNotEqual")]
3398    MathNotEqual,
3399    #[serde(rename = "cornerTabs")]
3400    CornerTabs,
3401    #[serde(rename = "squareTabs")]
3402    SquareTabs,
3403    #[serde(rename = "plaqueTabs")]
3404    PlaqueTabs,
3405    #[serde(rename = "chartX")]
3406    ChartX,
3407    #[serde(rename = "chartStar")]
3408    ChartStar,
3409    #[serde(rename = "chartPlus")]
3410    ChartPlus,
3411}
3412
3413impl std::fmt::Display for STShapeType {
3414    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3415        match self {
3416            Self::Line => write!(f, "line"),
3417            Self::LineInv => write!(f, "lineInv"),
3418            Self::Triangle => write!(f, "triangle"),
3419            Self::RtTriangle => write!(f, "rtTriangle"),
3420            Self::Rect => write!(f, "rect"),
3421            Self::Diamond => write!(f, "diamond"),
3422            Self::Parallelogram => write!(f, "parallelogram"),
3423            Self::Trapezoid => write!(f, "trapezoid"),
3424            Self::NonIsoscelesTrapezoid => write!(f, "nonIsoscelesTrapezoid"),
3425            Self::Pentagon => write!(f, "pentagon"),
3426            Self::Hexagon => write!(f, "hexagon"),
3427            Self::Heptagon => write!(f, "heptagon"),
3428            Self::Octagon => write!(f, "octagon"),
3429            Self::Decagon => write!(f, "decagon"),
3430            Self::Dodecagon => write!(f, "dodecagon"),
3431            Self::Star4 => write!(f, "star4"),
3432            Self::Star5 => write!(f, "star5"),
3433            Self::Star6 => write!(f, "star6"),
3434            Self::Star7 => write!(f, "star7"),
3435            Self::Star8 => write!(f, "star8"),
3436            Self::Star10 => write!(f, "star10"),
3437            Self::Star12 => write!(f, "star12"),
3438            Self::Star16 => write!(f, "star16"),
3439            Self::Star24 => write!(f, "star24"),
3440            Self::Star32 => write!(f, "star32"),
3441            Self::RoundRect => write!(f, "roundRect"),
3442            Self::Round1Rect => write!(f, "round1Rect"),
3443            Self::Round2SameRect => write!(f, "round2SameRect"),
3444            Self::Round2DiagRect => write!(f, "round2DiagRect"),
3445            Self::SnipRoundRect => write!(f, "snipRoundRect"),
3446            Self::Snip1Rect => write!(f, "snip1Rect"),
3447            Self::Snip2SameRect => write!(f, "snip2SameRect"),
3448            Self::Snip2DiagRect => write!(f, "snip2DiagRect"),
3449            Self::Plaque => write!(f, "plaque"),
3450            Self::Ellipse => write!(f, "ellipse"),
3451            Self::Teardrop => write!(f, "teardrop"),
3452            Self::HomePlate => write!(f, "homePlate"),
3453            Self::Chevron => write!(f, "chevron"),
3454            Self::PieWedge => write!(f, "pieWedge"),
3455            Self::Pie => write!(f, "pie"),
3456            Self::BlockArc => write!(f, "blockArc"),
3457            Self::Donut => write!(f, "donut"),
3458            Self::NoSmoking => write!(f, "noSmoking"),
3459            Self::RightArrow => write!(f, "rightArrow"),
3460            Self::LeftArrow => write!(f, "leftArrow"),
3461            Self::UpArrow => write!(f, "upArrow"),
3462            Self::DownArrow => write!(f, "downArrow"),
3463            Self::StripedRightArrow => write!(f, "stripedRightArrow"),
3464            Self::NotchedRightArrow => write!(f, "notchedRightArrow"),
3465            Self::BentUpArrow => write!(f, "bentUpArrow"),
3466            Self::LeftRightArrow => write!(f, "leftRightArrow"),
3467            Self::UpDownArrow => write!(f, "upDownArrow"),
3468            Self::LeftUpArrow => write!(f, "leftUpArrow"),
3469            Self::LeftRightUpArrow => write!(f, "leftRightUpArrow"),
3470            Self::QuadArrow => write!(f, "quadArrow"),
3471            Self::LeftArrowCallout => write!(f, "leftArrowCallout"),
3472            Self::RightArrowCallout => write!(f, "rightArrowCallout"),
3473            Self::UpArrowCallout => write!(f, "upArrowCallout"),
3474            Self::DownArrowCallout => write!(f, "downArrowCallout"),
3475            Self::LeftRightArrowCallout => write!(f, "leftRightArrowCallout"),
3476            Self::UpDownArrowCallout => write!(f, "upDownArrowCallout"),
3477            Self::QuadArrowCallout => write!(f, "quadArrowCallout"),
3478            Self::BentArrow => write!(f, "bentArrow"),
3479            Self::UturnArrow => write!(f, "uturnArrow"),
3480            Self::CircularArrow => write!(f, "circularArrow"),
3481            Self::LeftCircularArrow => write!(f, "leftCircularArrow"),
3482            Self::LeftRightCircularArrow => write!(f, "leftRightCircularArrow"),
3483            Self::CurvedRightArrow => write!(f, "curvedRightArrow"),
3484            Self::CurvedLeftArrow => write!(f, "curvedLeftArrow"),
3485            Self::CurvedUpArrow => write!(f, "curvedUpArrow"),
3486            Self::CurvedDownArrow => write!(f, "curvedDownArrow"),
3487            Self::SwooshArrow => write!(f, "swooshArrow"),
3488            Self::Cube => write!(f, "cube"),
3489            Self::Can => write!(f, "can"),
3490            Self::LightningBolt => write!(f, "lightningBolt"),
3491            Self::Heart => write!(f, "heart"),
3492            Self::Sun => write!(f, "sun"),
3493            Self::Moon => write!(f, "moon"),
3494            Self::SmileyFace => write!(f, "smileyFace"),
3495            Self::IrregularSeal1 => write!(f, "irregularSeal1"),
3496            Self::IrregularSeal2 => write!(f, "irregularSeal2"),
3497            Self::FoldedCorner => write!(f, "foldedCorner"),
3498            Self::Bevel => write!(f, "bevel"),
3499            Self::Frame => write!(f, "frame"),
3500            Self::HalfFrame => write!(f, "halfFrame"),
3501            Self::Corner => write!(f, "corner"),
3502            Self::DiagStripe => write!(f, "diagStripe"),
3503            Self::Chord => write!(f, "chord"),
3504            Self::Arc => write!(f, "arc"),
3505            Self::LeftBracket => write!(f, "leftBracket"),
3506            Self::RightBracket => write!(f, "rightBracket"),
3507            Self::LeftBrace => write!(f, "leftBrace"),
3508            Self::RightBrace => write!(f, "rightBrace"),
3509            Self::BracketPair => write!(f, "bracketPair"),
3510            Self::BracePair => write!(f, "bracePair"),
3511            Self::StraightConnector1 => write!(f, "straightConnector1"),
3512            Self::BentConnector2 => write!(f, "bentConnector2"),
3513            Self::BentConnector3 => write!(f, "bentConnector3"),
3514            Self::BentConnector4 => write!(f, "bentConnector4"),
3515            Self::BentConnector5 => write!(f, "bentConnector5"),
3516            Self::CurvedConnector2 => write!(f, "curvedConnector2"),
3517            Self::CurvedConnector3 => write!(f, "curvedConnector3"),
3518            Self::CurvedConnector4 => write!(f, "curvedConnector4"),
3519            Self::CurvedConnector5 => write!(f, "curvedConnector5"),
3520            Self::Callout1 => write!(f, "callout1"),
3521            Self::Callout2 => write!(f, "callout2"),
3522            Self::Callout3 => write!(f, "callout3"),
3523            Self::AccentCallout1 => write!(f, "accentCallout1"),
3524            Self::AccentCallout2 => write!(f, "accentCallout2"),
3525            Self::AccentCallout3 => write!(f, "accentCallout3"),
3526            Self::BorderCallout1 => write!(f, "borderCallout1"),
3527            Self::BorderCallout2 => write!(f, "borderCallout2"),
3528            Self::BorderCallout3 => write!(f, "borderCallout3"),
3529            Self::AccentBorderCallout1 => write!(f, "accentBorderCallout1"),
3530            Self::AccentBorderCallout2 => write!(f, "accentBorderCallout2"),
3531            Self::AccentBorderCallout3 => write!(f, "accentBorderCallout3"),
3532            Self::WedgeRectCallout => write!(f, "wedgeRectCallout"),
3533            Self::WedgeRoundRectCallout => write!(f, "wedgeRoundRectCallout"),
3534            Self::WedgeEllipseCallout => write!(f, "wedgeEllipseCallout"),
3535            Self::CloudCallout => write!(f, "cloudCallout"),
3536            Self::Cloud => write!(f, "cloud"),
3537            Self::Ribbon => write!(f, "ribbon"),
3538            Self::Ribbon2 => write!(f, "ribbon2"),
3539            Self::EllipseRibbon => write!(f, "ellipseRibbon"),
3540            Self::EllipseRibbon2 => write!(f, "ellipseRibbon2"),
3541            Self::LeftRightRibbon => write!(f, "leftRightRibbon"),
3542            Self::VerticalScroll => write!(f, "verticalScroll"),
3543            Self::HorizontalScroll => write!(f, "horizontalScroll"),
3544            Self::Wave => write!(f, "wave"),
3545            Self::DoubleWave => write!(f, "doubleWave"),
3546            Self::Plus => write!(f, "plus"),
3547            Self::FlowChartProcess => write!(f, "flowChartProcess"),
3548            Self::FlowChartDecision => write!(f, "flowChartDecision"),
3549            Self::FlowChartInputOutput => write!(f, "flowChartInputOutput"),
3550            Self::FlowChartPredefinedProcess => write!(f, "flowChartPredefinedProcess"),
3551            Self::FlowChartInternalStorage => write!(f, "flowChartInternalStorage"),
3552            Self::FlowChartDocument => write!(f, "flowChartDocument"),
3553            Self::FlowChartMultidocument => write!(f, "flowChartMultidocument"),
3554            Self::FlowChartTerminator => write!(f, "flowChartTerminator"),
3555            Self::FlowChartPreparation => write!(f, "flowChartPreparation"),
3556            Self::FlowChartManualInput => write!(f, "flowChartManualInput"),
3557            Self::FlowChartManualOperation => write!(f, "flowChartManualOperation"),
3558            Self::FlowChartConnector => write!(f, "flowChartConnector"),
3559            Self::FlowChartPunchedCard => write!(f, "flowChartPunchedCard"),
3560            Self::FlowChartPunchedTape => write!(f, "flowChartPunchedTape"),
3561            Self::FlowChartSummingJunction => write!(f, "flowChartSummingJunction"),
3562            Self::FlowChartOr => write!(f, "flowChartOr"),
3563            Self::FlowChartCollate => write!(f, "flowChartCollate"),
3564            Self::FlowChartSort => write!(f, "flowChartSort"),
3565            Self::FlowChartExtract => write!(f, "flowChartExtract"),
3566            Self::FlowChartMerge => write!(f, "flowChartMerge"),
3567            Self::FlowChartOfflineStorage => write!(f, "flowChartOfflineStorage"),
3568            Self::FlowChartOnlineStorage => write!(f, "flowChartOnlineStorage"),
3569            Self::FlowChartMagneticTape => write!(f, "flowChartMagneticTape"),
3570            Self::FlowChartMagneticDisk => write!(f, "flowChartMagneticDisk"),
3571            Self::FlowChartMagneticDrum => write!(f, "flowChartMagneticDrum"),
3572            Self::FlowChartDisplay => write!(f, "flowChartDisplay"),
3573            Self::FlowChartDelay => write!(f, "flowChartDelay"),
3574            Self::FlowChartAlternateProcess => write!(f, "flowChartAlternateProcess"),
3575            Self::FlowChartOffpageConnector => write!(f, "flowChartOffpageConnector"),
3576            Self::ActionButtonBlank => write!(f, "actionButtonBlank"),
3577            Self::ActionButtonHome => write!(f, "actionButtonHome"),
3578            Self::ActionButtonHelp => write!(f, "actionButtonHelp"),
3579            Self::ActionButtonInformation => write!(f, "actionButtonInformation"),
3580            Self::ActionButtonForwardNext => write!(f, "actionButtonForwardNext"),
3581            Self::ActionButtonBackPrevious => write!(f, "actionButtonBackPrevious"),
3582            Self::ActionButtonEnd => write!(f, "actionButtonEnd"),
3583            Self::ActionButtonBeginning => write!(f, "actionButtonBeginning"),
3584            Self::ActionButtonReturn => write!(f, "actionButtonReturn"),
3585            Self::ActionButtonDocument => write!(f, "actionButtonDocument"),
3586            Self::ActionButtonSound => write!(f, "actionButtonSound"),
3587            Self::ActionButtonMovie => write!(f, "actionButtonMovie"),
3588            Self::Gear6 => write!(f, "gear6"),
3589            Self::Gear9 => write!(f, "gear9"),
3590            Self::Funnel => write!(f, "funnel"),
3591            Self::MathPlus => write!(f, "mathPlus"),
3592            Self::MathMinus => write!(f, "mathMinus"),
3593            Self::MathMultiply => write!(f, "mathMultiply"),
3594            Self::MathDivide => write!(f, "mathDivide"),
3595            Self::MathEqual => write!(f, "mathEqual"),
3596            Self::MathNotEqual => write!(f, "mathNotEqual"),
3597            Self::CornerTabs => write!(f, "cornerTabs"),
3598            Self::SquareTabs => write!(f, "squareTabs"),
3599            Self::PlaqueTabs => write!(f, "plaqueTabs"),
3600            Self::ChartX => write!(f, "chartX"),
3601            Self::ChartStar => write!(f, "chartStar"),
3602            Self::ChartPlus => write!(f, "chartPlus"),
3603        }
3604    }
3605}
3606
3607impl std::str::FromStr for STShapeType {
3608    type Err = String;
3609
3610    fn from_str(s: &str) -> Result<Self, Self::Err> {
3611        match s {
3612            "line" => Ok(Self::Line),
3613            "lineInv" => Ok(Self::LineInv),
3614            "triangle" => Ok(Self::Triangle),
3615            "rtTriangle" => Ok(Self::RtTriangle),
3616            "rect" => Ok(Self::Rect),
3617            "diamond" => Ok(Self::Diamond),
3618            "parallelogram" => Ok(Self::Parallelogram),
3619            "trapezoid" => Ok(Self::Trapezoid),
3620            "nonIsoscelesTrapezoid" => Ok(Self::NonIsoscelesTrapezoid),
3621            "pentagon" => Ok(Self::Pentagon),
3622            "hexagon" => Ok(Self::Hexagon),
3623            "heptagon" => Ok(Self::Heptagon),
3624            "octagon" => Ok(Self::Octagon),
3625            "decagon" => Ok(Self::Decagon),
3626            "dodecagon" => Ok(Self::Dodecagon),
3627            "star4" => Ok(Self::Star4),
3628            "star5" => Ok(Self::Star5),
3629            "star6" => Ok(Self::Star6),
3630            "star7" => Ok(Self::Star7),
3631            "star8" => Ok(Self::Star8),
3632            "star10" => Ok(Self::Star10),
3633            "star12" => Ok(Self::Star12),
3634            "star16" => Ok(Self::Star16),
3635            "star24" => Ok(Self::Star24),
3636            "star32" => Ok(Self::Star32),
3637            "roundRect" => Ok(Self::RoundRect),
3638            "round1Rect" => Ok(Self::Round1Rect),
3639            "round2SameRect" => Ok(Self::Round2SameRect),
3640            "round2DiagRect" => Ok(Self::Round2DiagRect),
3641            "snipRoundRect" => Ok(Self::SnipRoundRect),
3642            "snip1Rect" => Ok(Self::Snip1Rect),
3643            "snip2SameRect" => Ok(Self::Snip2SameRect),
3644            "snip2DiagRect" => Ok(Self::Snip2DiagRect),
3645            "plaque" => Ok(Self::Plaque),
3646            "ellipse" => Ok(Self::Ellipse),
3647            "teardrop" => Ok(Self::Teardrop),
3648            "homePlate" => Ok(Self::HomePlate),
3649            "chevron" => Ok(Self::Chevron),
3650            "pieWedge" => Ok(Self::PieWedge),
3651            "pie" => Ok(Self::Pie),
3652            "blockArc" => Ok(Self::BlockArc),
3653            "donut" => Ok(Self::Donut),
3654            "noSmoking" => Ok(Self::NoSmoking),
3655            "rightArrow" => Ok(Self::RightArrow),
3656            "leftArrow" => Ok(Self::LeftArrow),
3657            "upArrow" => Ok(Self::UpArrow),
3658            "downArrow" => Ok(Self::DownArrow),
3659            "stripedRightArrow" => Ok(Self::StripedRightArrow),
3660            "notchedRightArrow" => Ok(Self::NotchedRightArrow),
3661            "bentUpArrow" => Ok(Self::BentUpArrow),
3662            "leftRightArrow" => Ok(Self::LeftRightArrow),
3663            "upDownArrow" => Ok(Self::UpDownArrow),
3664            "leftUpArrow" => Ok(Self::LeftUpArrow),
3665            "leftRightUpArrow" => Ok(Self::LeftRightUpArrow),
3666            "quadArrow" => Ok(Self::QuadArrow),
3667            "leftArrowCallout" => Ok(Self::LeftArrowCallout),
3668            "rightArrowCallout" => Ok(Self::RightArrowCallout),
3669            "upArrowCallout" => Ok(Self::UpArrowCallout),
3670            "downArrowCallout" => Ok(Self::DownArrowCallout),
3671            "leftRightArrowCallout" => Ok(Self::LeftRightArrowCallout),
3672            "upDownArrowCallout" => Ok(Self::UpDownArrowCallout),
3673            "quadArrowCallout" => Ok(Self::QuadArrowCallout),
3674            "bentArrow" => Ok(Self::BentArrow),
3675            "uturnArrow" => Ok(Self::UturnArrow),
3676            "circularArrow" => Ok(Self::CircularArrow),
3677            "leftCircularArrow" => Ok(Self::LeftCircularArrow),
3678            "leftRightCircularArrow" => Ok(Self::LeftRightCircularArrow),
3679            "curvedRightArrow" => Ok(Self::CurvedRightArrow),
3680            "curvedLeftArrow" => Ok(Self::CurvedLeftArrow),
3681            "curvedUpArrow" => Ok(Self::CurvedUpArrow),
3682            "curvedDownArrow" => Ok(Self::CurvedDownArrow),
3683            "swooshArrow" => Ok(Self::SwooshArrow),
3684            "cube" => Ok(Self::Cube),
3685            "can" => Ok(Self::Can),
3686            "lightningBolt" => Ok(Self::LightningBolt),
3687            "heart" => Ok(Self::Heart),
3688            "sun" => Ok(Self::Sun),
3689            "moon" => Ok(Self::Moon),
3690            "smileyFace" => Ok(Self::SmileyFace),
3691            "irregularSeal1" => Ok(Self::IrregularSeal1),
3692            "irregularSeal2" => Ok(Self::IrregularSeal2),
3693            "foldedCorner" => Ok(Self::FoldedCorner),
3694            "bevel" => Ok(Self::Bevel),
3695            "frame" => Ok(Self::Frame),
3696            "halfFrame" => Ok(Self::HalfFrame),
3697            "corner" => Ok(Self::Corner),
3698            "diagStripe" => Ok(Self::DiagStripe),
3699            "chord" => Ok(Self::Chord),
3700            "arc" => Ok(Self::Arc),
3701            "leftBracket" => Ok(Self::LeftBracket),
3702            "rightBracket" => Ok(Self::RightBracket),
3703            "leftBrace" => Ok(Self::LeftBrace),
3704            "rightBrace" => Ok(Self::RightBrace),
3705            "bracketPair" => Ok(Self::BracketPair),
3706            "bracePair" => Ok(Self::BracePair),
3707            "straightConnector1" => Ok(Self::StraightConnector1),
3708            "bentConnector2" => Ok(Self::BentConnector2),
3709            "bentConnector3" => Ok(Self::BentConnector3),
3710            "bentConnector4" => Ok(Self::BentConnector4),
3711            "bentConnector5" => Ok(Self::BentConnector5),
3712            "curvedConnector2" => Ok(Self::CurvedConnector2),
3713            "curvedConnector3" => Ok(Self::CurvedConnector3),
3714            "curvedConnector4" => Ok(Self::CurvedConnector4),
3715            "curvedConnector5" => Ok(Self::CurvedConnector5),
3716            "callout1" => Ok(Self::Callout1),
3717            "callout2" => Ok(Self::Callout2),
3718            "callout3" => Ok(Self::Callout3),
3719            "accentCallout1" => Ok(Self::AccentCallout1),
3720            "accentCallout2" => Ok(Self::AccentCallout2),
3721            "accentCallout3" => Ok(Self::AccentCallout3),
3722            "borderCallout1" => Ok(Self::BorderCallout1),
3723            "borderCallout2" => Ok(Self::BorderCallout2),
3724            "borderCallout3" => Ok(Self::BorderCallout3),
3725            "accentBorderCallout1" => Ok(Self::AccentBorderCallout1),
3726            "accentBorderCallout2" => Ok(Self::AccentBorderCallout2),
3727            "accentBorderCallout3" => Ok(Self::AccentBorderCallout3),
3728            "wedgeRectCallout" => Ok(Self::WedgeRectCallout),
3729            "wedgeRoundRectCallout" => Ok(Self::WedgeRoundRectCallout),
3730            "wedgeEllipseCallout" => Ok(Self::WedgeEllipseCallout),
3731            "cloudCallout" => Ok(Self::CloudCallout),
3732            "cloud" => Ok(Self::Cloud),
3733            "ribbon" => Ok(Self::Ribbon),
3734            "ribbon2" => Ok(Self::Ribbon2),
3735            "ellipseRibbon" => Ok(Self::EllipseRibbon),
3736            "ellipseRibbon2" => Ok(Self::EllipseRibbon2),
3737            "leftRightRibbon" => Ok(Self::LeftRightRibbon),
3738            "verticalScroll" => Ok(Self::VerticalScroll),
3739            "horizontalScroll" => Ok(Self::HorizontalScroll),
3740            "wave" => Ok(Self::Wave),
3741            "doubleWave" => Ok(Self::DoubleWave),
3742            "plus" => Ok(Self::Plus),
3743            "flowChartProcess" => Ok(Self::FlowChartProcess),
3744            "flowChartDecision" => Ok(Self::FlowChartDecision),
3745            "flowChartInputOutput" => Ok(Self::FlowChartInputOutput),
3746            "flowChartPredefinedProcess" => Ok(Self::FlowChartPredefinedProcess),
3747            "flowChartInternalStorage" => Ok(Self::FlowChartInternalStorage),
3748            "flowChartDocument" => Ok(Self::FlowChartDocument),
3749            "flowChartMultidocument" => Ok(Self::FlowChartMultidocument),
3750            "flowChartTerminator" => Ok(Self::FlowChartTerminator),
3751            "flowChartPreparation" => Ok(Self::FlowChartPreparation),
3752            "flowChartManualInput" => Ok(Self::FlowChartManualInput),
3753            "flowChartManualOperation" => Ok(Self::FlowChartManualOperation),
3754            "flowChartConnector" => Ok(Self::FlowChartConnector),
3755            "flowChartPunchedCard" => Ok(Self::FlowChartPunchedCard),
3756            "flowChartPunchedTape" => Ok(Self::FlowChartPunchedTape),
3757            "flowChartSummingJunction" => Ok(Self::FlowChartSummingJunction),
3758            "flowChartOr" => Ok(Self::FlowChartOr),
3759            "flowChartCollate" => Ok(Self::FlowChartCollate),
3760            "flowChartSort" => Ok(Self::FlowChartSort),
3761            "flowChartExtract" => Ok(Self::FlowChartExtract),
3762            "flowChartMerge" => Ok(Self::FlowChartMerge),
3763            "flowChartOfflineStorage" => Ok(Self::FlowChartOfflineStorage),
3764            "flowChartOnlineStorage" => Ok(Self::FlowChartOnlineStorage),
3765            "flowChartMagneticTape" => Ok(Self::FlowChartMagneticTape),
3766            "flowChartMagneticDisk" => Ok(Self::FlowChartMagneticDisk),
3767            "flowChartMagneticDrum" => Ok(Self::FlowChartMagneticDrum),
3768            "flowChartDisplay" => Ok(Self::FlowChartDisplay),
3769            "flowChartDelay" => Ok(Self::FlowChartDelay),
3770            "flowChartAlternateProcess" => Ok(Self::FlowChartAlternateProcess),
3771            "flowChartOffpageConnector" => Ok(Self::FlowChartOffpageConnector),
3772            "actionButtonBlank" => Ok(Self::ActionButtonBlank),
3773            "actionButtonHome" => Ok(Self::ActionButtonHome),
3774            "actionButtonHelp" => Ok(Self::ActionButtonHelp),
3775            "actionButtonInformation" => Ok(Self::ActionButtonInformation),
3776            "actionButtonForwardNext" => Ok(Self::ActionButtonForwardNext),
3777            "actionButtonBackPrevious" => Ok(Self::ActionButtonBackPrevious),
3778            "actionButtonEnd" => Ok(Self::ActionButtonEnd),
3779            "actionButtonBeginning" => Ok(Self::ActionButtonBeginning),
3780            "actionButtonReturn" => Ok(Self::ActionButtonReturn),
3781            "actionButtonDocument" => Ok(Self::ActionButtonDocument),
3782            "actionButtonSound" => Ok(Self::ActionButtonSound),
3783            "actionButtonMovie" => Ok(Self::ActionButtonMovie),
3784            "gear6" => Ok(Self::Gear6),
3785            "gear9" => Ok(Self::Gear9),
3786            "funnel" => Ok(Self::Funnel),
3787            "mathPlus" => Ok(Self::MathPlus),
3788            "mathMinus" => Ok(Self::MathMinus),
3789            "mathMultiply" => Ok(Self::MathMultiply),
3790            "mathDivide" => Ok(Self::MathDivide),
3791            "mathEqual" => Ok(Self::MathEqual),
3792            "mathNotEqual" => Ok(Self::MathNotEqual),
3793            "cornerTabs" => Ok(Self::CornerTabs),
3794            "squareTabs" => Ok(Self::SquareTabs),
3795            "plaqueTabs" => Ok(Self::PlaqueTabs),
3796            "chartX" => Ok(Self::ChartX),
3797            "chartStar" => Ok(Self::ChartStar),
3798            "chartPlus" => Ok(Self::ChartPlus),
3799            _ => Err(format!("unknown STShapeType value: {}", s)),
3800        }
3801    }
3802}
3803
3804#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3805pub enum STTextShapeType {
3806    #[serde(rename = "textNoShape")]
3807    TextNoShape,
3808    #[serde(rename = "textPlain")]
3809    TextPlain,
3810    #[serde(rename = "textStop")]
3811    TextStop,
3812    #[serde(rename = "textTriangle")]
3813    TextTriangle,
3814    #[serde(rename = "textTriangleInverted")]
3815    TextTriangleInverted,
3816    #[serde(rename = "textChevron")]
3817    TextChevron,
3818    #[serde(rename = "textChevronInverted")]
3819    TextChevronInverted,
3820    #[serde(rename = "textRingInside")]
3821    TextRingInside,
3822    #[serde(rename = "textRingOutside")]
3823    TextRingOutside,
3824    #[serde(rename = "textArchUp")]
3825    TextArchUp,
3826    #[serde(rename = "textArchDown")]
3827    TextArchDown,
3828    #[serde(rename = "textCircle")]
3829    TextCircle,
3830    #[serde(rename = "textButton")]
3831    TextButton,
3832    #[serde(rename = "textArchUpPour")]
3833    TextArchUpPour,
3834    #[serde(rename = "textArchDownPour")]
3835    TextArchDownPour,
3836    #[serde(rename = "textCirclePour")]
3837    TextCirclePour,
3838    #[serde(rename = "textButtonPour")]
3839    TextButtonPour,
3840    #[serde(rename = "textCurveUp")]
3841    TextCurveUp,
3842    #[serde(rename = "textCurveDown")]
3843    TextCurveDown,
3844    #[serde(rename = "textCanUp")]
3845    TextCanUp,
3846    #[serde(rename = "textCanDown")]
3847    TextCanDown,
3848    #[serde(rename = "textWave1")]
3849    TextWave1,
3850    #[serde(rename = "textWave2")]
3851    TextWave2,
3852    #[serde(rename = "textDoubleWave1")]
3853    TextDoubleWave1,
3854    #[serde(rename = "textWave4")]
3855    TextWave4,
3856    #[serde(rename = "textInflate")]
3857    TextInflate,
3858    #[serde(rename = "textDeflate")]
3859    TextDeflate,
3860    #[serde(rename = "textInflateBottom")]
3861    TextInflateBottom,
3862    #[serde(rename = "textDeflateBottom")]
3863    TextDeflateBottom,
3864    #[serde(rename = "textInflateTop")]
3865    TextInflateTop,
3866    #[serde(rename = "textDeflateTop")]
3867    TextDeflateTop,
3868    #[serde(rename = "textDeflateInflate")]
3869    TextDeflateInflate,
3870    #[serde(rename = "textDeflateInflateDeflate")]
3871    TextDeflateInflateDeflate,
3872    #[serde(rename = "textFadeRight")]
3873    TextFadeRight,
3874    #[serde(rename = "textFadeLeft")]
3875    TextFadeLeft,
3876    #[serde(rename = "textFadeUp")]
3877    TextFadeUp,
3878    #[serde(rename = "textFadeDown")]
3879    TextFadeDown,
3880    #[serde(rename = "textSlantUp")]
3881    TextSlantUp,
3882    #[serde(rename = "textSlantDown")]
3883    TextSlantDown,
3884    #[serde(rename = "textCascadeUp")]
3885    TextCascadeUp,
3886    #[serde(rename = "textCascadeDown")]
3887    TextCascadeDown,
3888}
3889
3890impl std::fmt::Display for STTextShapeType {
3891    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3892        match self {
3893            Self::TextNoShape => write!(f, "textNoShape"),
3894            Self::TextPlain => write!(f, "textPlain"),
3895            Self::TextStop => write!(f, "textStop"),
3896            Self::TextTriangle => write!(f, "textTriangle"),
3897            Self::TextTriangleInverted => write!(f, "textTriangleInverted"),
3898            Self::TextChevron => write!(f, "textChevron"),
3899            Self::TextChevronInverted => write!(f, "textChevronInverted"),
3900            Self::TextRingInside => write!(f, "textRingInside"),
3901            Self::TextRingOutside => write!(f, "textRingOutside"),
3902            Self::TextArchUp => write!(f, "textArchUp"),
3903            Self::TextArchDown => write!(f, "textArchDown"),
3904            Self::TextCircle => write!(f, "textCircle"),
3905            Self::TextButton => write!(f, "textButton"),
3906            Self::TextArchUpPour => write!(f, "textArchUpPour"),
3907            Self::TextArchDownPour => write!(f, "textArchDownPour"),
3908            Self::TextCirclePour => write!(f, "textCirclePour"),
3909            Self::TextButtonPour => write!(f, "textButtonPour"),
3910            Self::TextCurveUp => write!(f, "textCurveUp"),
3911            Self::TextCurveDown => write!(f, "textCurveDown"),
3912            Self::TextCanUp => write!(f, "textCanUp"),
3913            Self::TextCanDown => write!(f, "textCanDown"),
3914            Self::TextWave1 => write!(f, "textWave1"),
3915            Self::TextWave2 => write!(f, "textWave2"),
3916            Self::TextDoubleWave1 => write!(f, "textDoubleWave1"),
3917            Self::TextWave4 => write!(f, "textWave4"),
3918            Self::TextInflate => write!(f, "textInflate"),
3919            Self::TextDeflate => write!(f, "textDeflate"),
3920            Self::TextInflateBottom => write!(f, "textInflateBottom"),
3921            Self::TextDeflateBottom => write!(f, "textDeflateBottom"),
3922            Self::TextInflateTop => write!(f, "textInflateTop"),
3923            Self::TextDeflateTop => write!(f, "textDeflateTop"),
3924            Self::TextDeflateInflate => write!(f, "textDeflateInflate"),
3925            Self::TextDeflateInflateDeflate => write!(f, "textDeflateInflateDeflate"),
3926            Self::TextFadeRight => write!(f, "textFadeRight"),
3927            Self::TextFadeLeft => write!(f, "textFadeLeft"),
3928            Self::TextFadeUp => write!(f, "textFadeUp"),
3929            Self::TextFadeDown => write!(f, "textFadeDown"),
3930            Self::TextSlantUp => write!(f, "textSlantUp"),
3931            Self::TextSlantDown => write!(f, "textSlantDown"),
3932            Self::TextCascadeUp => write!(f, "textCascadeUp"),
3933            Self::TextCascadeDown => write!(f, "textCascadeDown"),
3934        }
3935    }
3936}
3937
3938impl std::str::FromStr for STTextShapeType {
3939    type Err = String;
3940
3941    fn from_str(s: &str) -> Result<Self, Self::Err> {
3942        match s {
3943            "textNoShape" => Ok(Self::TextNoShape),
3944            "textPlain" => Ok(Self::TextPlain),
3945            "textStop" => Ok(Self::TextStop),
3946            "textTriangle" => Ok(Self::TextTriangle),
3947            "textTriangleInverted" => Ok(Self::TextTriangleInverted),
3948            "textChevron" => Ok(Self::TextChevron),
3949            "textChevronInverted" => Ok(Self::TextChevronInverted),
3950            "textRingInside" => Ok(Self::TextRingInside),
3951            "textRingOutside" => Ok(Self::TextRingOutside),
3952            "textArchUp" => Ok(Self::TextArchUp),
3953            "textArchDown" => Ok(Self::TextArchDown),
3954            "textCircle" => Ok(Self::TextCircle),
3955            "textButton" => Ok(Self::TextButton),
3956            "textArchUpPour" => Ok(Self::TextArchUpPour),
3957            "textArchDownPour" => Ok(Self::TextArchDownPour),
3958            "textCirclePour" => Ok(Self::TextCirclePour),
3959            "textButtonPour" => Ok(Self::TextButtonPour),
3960            "textCurveUp" => Ok(Self::TextCurveUp),
3961            "textCurveDown" => Ok(Self::TextCurveDown),
3962            "textCanUp" => Ok(Self::TextCanUp),
3963            "textCanDown" => Ok(Self::TextCanDown),
3964            "textWave1" => Ok(Self::TextWave1),
3965            "textWave2" => Ok(Self::TextWave2),
3966            "textDoubleWave1" => Ok(Self::TextDoubleWave1),
3967            "textWave4" => Ok(Self::TextWave4),
3968            "textInflate" => Ok(Self::TextInflate),
3969            "textDeflate" => Ok(Self::TextDeflate),
3970            "textInflateBottom" => Ok(Self::TextInflateBottom),
3971            "textDeflateBottom" => Ok(Self::TextDeflateBottom),
3972            "textInflateTop" => Ok(Self::TextInflateTop),
3973            "textDeflateTop" => Ok(Self::TextDeflateTop),
3974            "textDeflateInflate" => Ok(Self::TextDeflateInflate),
3975            "textDeflateInflateDeflate" => Ok(Self::TextDeflateInflateDeflate),
3976            "textFadeRight" => Ok(Self::TextFadeRight),
3977            "textFadeLeft" => Ok(Self::TextFadeLeft),
3978            "textFadeUp" => Ok(Self::TextFadeUp),
3979            "textFadeDown" => Ok(Self::TextFadeDown),
3980            "textSlantUp" => Ok(Self::TextSlantUp),
3981            "textSlantDown" => Ok(Self::TextSlantDown),
3982            "textCascadeUp" => Ok(Self::TextCascadeUp),
3983            "textCascadeDown" => Ok(Self::TextCascadeDown),
3984            _ => Err(format!("unknown STTextShapeType value: {}", s)),
3985        }
3986    }
3987}
3988
3989pub type STGeomGuideName = String;
3990
3991pub type STGeomGuideFormula = String;
3992
3993pub type STAdjCoordinate = String;
3994
3995pub type STAdjAngle = String;
3996
3997#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3998pub enum STPathFillMode {
3999    #[serde(rename = "none")]
4000    None,
4001    #[serde(rename = "norm")]
4002    Norm,
4003    #[serde(rename = "lighten")]
4004    Lighten,
4005    #[serde(rename = "lightenLess")]
4006    LightenLess,
4007    #[serde(rename = "darken")]
4008    Darken,
4009    #[serde(rename = "darkenLess")]
4010    DarkenLess,
4011}
4012
4013impl std::fmt::Display for STPathFillMode {
4014    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4015        match self {
4016            Self::None => write!(f, "none"),
4017            Self::Norm => write!(f, "norm"),
4018            Self::Lighten => write!(f, "lighten"),
4019            Self::LightenLess => write!(f, "lightenLess"),
4020            Self::Darken => write!(f, "darken"),
4021            Self::DarkenLess => write!(f, "darkenLess"),
4022        }
4023    }
4024}
4025
4026impl std::str::FromStr for STPathFillMode {
4027    type Err = String;
4028
4029    fn from_str(s: &str) -> Result<Self, Self::Err> {
4030        match s {
4031            "none" => Ok(Self::None),
4032            "norm" => Ok(Self::Norm),
4033            "lighten" => Ok(Self::Lighten),
4034            "lightenLess" => Ok(Self::LightenLess),
4035            "darken" => Ok(Self::Darken),
4036            "darkenLess" => Ok(Self::DarkenLess),
4037            _ => Err(format!("unknown STPathFillMode value: {}", s)),
4038        }
4039    }
4040}
4041
4042#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4043pub enum STLineEndType {
4044    #[serde(rename = "none")]
4045    None,
4046    #[serde(rename = "triangle")]
4047    Triangle,
4048    #[serde(rename = "stealth")]
4049    Stealth,
4050    #[serde(rename = "diamond")]
4051    Diamond,
4052    #[serde(rename = "oval")]
4053    Oval,
4054    #[serde(rename = "arrow")]
4055    Arrow,
4056}
4057
4058impl std::fmt::Display for STLineEndType {
4059    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4060        match self {
4061            Self::None => write!(f, "none"),
4062            Self::Triangle => write!(f, "triangle"),
4063            Self::Stealth => write!(f, "stealth"),
4064            Self::Diamond => write!(f, "diamond"),
4065            Self::Oval => write!(f, "oval"),
4066            Self::Arrow => write!(f, "arrow"),
4067        }
4068    }
4069}
4070
4071impl std::str::FromStr for STLineEndType {
4072    type Err = String;
4073
4074    fn from_str(s: &str) -> Result<Self, Self::Err> {
4075        match s {
4076            "none" => Ok(Self::None),
4077            "triangle" => Ok(Self::Triangle),
4078            "stealth" => Ok(Self::Stealth),
4079            "diamond" => Ok(Self::Diamond),
4080            "oval" => Ok(Self::Oval),
4081            "arrow" => Ok(Self::Arrow),
4082            _ => Err(format!("unknown STLineEndType value: {}", s)),
4083        }
4084    }
4085}
4086
4087#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4088pub enum STLineEndWidth {
4089    #[serde(rename = "sm")]
4090    Sm,
4091    #[serde(rename = "med")]
4092    Med,
4093    #[serde(rename = "lg")]
4094    Lg,
4095}
4096
4097impl std::fmt::Display for STLineEndWidth {
4098    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4099        match self {
4100            Self::Sm => write!(f, "sm"),
4101            Self::Med => write!(f, "med"),
4102            Self::Lg => write!(f, "lg"),
4103        }
4104    }
4105}
4106
4107impl std::str::FromStr for STLineEndWidth {
4108    type Err = String;
4109
4110    fn from_str(s: &str) -> Result<Self, Self::Err> {
4111        match s {
4112            "sm" => Ok(Self::Sm),
4113            "med" => Ok(Self::Med),
4114            "lg" => Ok(Self::Lg),
4115            _ => Err(format!("unknown STLineEndWidth value: {}", s)),
4116        }
4117    }
4118}
4119
4120#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4121pub enum STLineEndLength {
4122    #[serde(rename = "sm")]
4123    Sm,
4124    #[serde(rename = "med")]
4125    Med,
4126    #[serde(rename = "lg")]
4127    Lg,
4128}
4129
4130impl std::fmt::Display for STLineEndLength {
4131    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4132        match self {
4133            Self::Sm => write!(f, "sm"),
4134            Self::Med => write!(f, "med"),
4135            Self::Lg => write!(f, "lg"),
4136        }
4137    }
4138}
4139
4140impl std::str::FromStr for STLineEndLength {
4141    type Err = String;
4142
4143    fn from_str(s: &str) -> Result<Self, Self::Err> {
4144        match s {
4145            "sm" => Ok(Self::Sm),
4146            "med" => Ok(Self::Med),
4147            "lg" => Ok(Self::Lg),
4148            _ => Err(format!("unknown STLineEndLength value: {}", s)),
4149        }
4150    }
4151}
4152
4153#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4154pub enum STPresetLineDashVal {
4155    #[serde(rename = "solid")]
4156    Solid,
4157    #[serde(rename = "dot")]
4158    Dot,
4159    #[serde(rename = "dash")]
4160    Dash,
4161    #[serde(rename = "lgDash")]
4162    LgDash,
4163    #[serde(rename = "dashDot")]
4164    DashDot,
4165    #[serde(rename = "lgDashDot")]
4166    LgDashDot,
4167    #[serde(rename = "lgDashDotDot")]
4168    LgDashDotDot,
4169    #[serde(rename = "sysDash")]
4170    SysDash,
4171    #[serde(rename = "sysDot")]
4172    SysDot,
4173    #[serde(rename = "sysDashDot")]
4174    SysDashDot,
4175    #[serde(rename = "sysDashDotDot")]
4176    SysDashDotDot,
4177}
4178
4179impl std::fmt::Display for STPresetLineDashVal {
4180    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4181        match self {
4182            Self::Solid => write!(f, "solid"),
4183            Self::Dot => write!(f, "dot"),
4184            Self::Dash => write!(f, "dash"),
4185            Self::LgDash => write!(f, "lgDash"),
4186            Self::DashDot => write!(f, "dashDot"),
4187            Self::LgDashDot => write!(f, "lgDashDot"),
4188            Self::LgDashDotDot => write!(f, "lgDashDotDot"),
4189            Self::SysDash => write!(f, "sysDash"),
4190            Self::SysDot => write!(f, "sysDot"),
4191            Self::SysDashDot => write!(f, "sysDashDot"),
4192            Self::SysDashDotDot => write!(f, "sysDashDotDot"),
4193        }
4194    }
4195}
4196
4197impl std::str::FromStr for STPresetLineDashVal {
4198    type Err = String;
4199
4200    fn from_str(s: &str) -> Result<Self, Self::Err> {
4201        match s {
4202            "solid" => Ok(Self::Solid),
4203            "dot" => Ok(Self::Dot),
4204            "dash" => Ok(Self::Dash),
4205            "lgDash" => Ok(Self::LgDash),
4206            "dashDot" => Ok(Self::DashDot),
4207            "lgDashDot" => Ok(Self::LgDashDot),
4208            "lgDashDotDot" => Ok(Self::LgDashDotDot),
4209            "sysDash" => Ok(Self::SysDash),
4210            "sysDot" => Ok(Self::SysDot),
4211            "sysDashDot" => Ok(Self::SysDashDot),
4212            "sysDashDotDot" => Ok(Self::SysDashDotDot),
4213            _ => Err(format!("unknown STPresetLineDashVal value: {}", s)),
4214        }
4215    }
4216}
4217
4218#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4219pub enum STLineCap {
4220    #[serde(rename = "rnd")]
4221    Rnd,
4222    #[serde(rename = "sq")]
4223    Sq,
4224    #[serde(rename = "flat")]
4225    Flat,
4226}
4227
4228impl std::fmt::Display for STLineCap {
4229    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4230        match self {
4231            Self::Rnd => write!(f, "rnd"),
4232            Self::Sq => write!(f, "sq"),
4233            Self::Flat => write!(f, "flat"),
4234        }
4235    }
4236}
4237
4238impl std::str::FromStr for STLineCap {
4239    type Err = String;
4240
4241    fn from_str(s: &str) -> Result<Self, Self::Err> {
4242        match s {
4243            "rnd" => Ok(Self::Rnd),
4244            "sq" => Ok(Self::Sq),
4245            "flat" => Ok(Self::Flat),
4246            _ => Err(format!("unknown STLineCap value: {}", s)),
4247        }
4248    }
4249}
4250
4251pub type STLineWidth = i32;
4252
4253#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4254pub enum STPenAlignment {
4255    #[serde(rename = "ctr")]
4256    Ctr,
4257    #[serde(rename = "in")]
4258    In,
4259}
4260
4261impl std::fmt::Display for STPenAlignment {
4262    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4263        match self {
4264            Self::Ctr => write!(f, "ctr"),
4265            Self::In => write!(f, "in"),
4266        }
4267    }
4268}
4269
4270impl std::str::FromStr for STPenAlignment {
4271    type Err = String;
4272
4273    fn from_str(s: &str) -> Result<Self, Self::Err> {
4274        match s {
4275            "ctr" => Ok(Self::Ctr),
4276            "in" => Ok(Self::In),
4277            _ => Err(format!("unknown STPenAlignment value: {}", s)),
4278        }
4279    }
4280}
4281
4282#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4283pub enum STCompoundLine {
4284    #[serde(rename = "sng")]
4285    Sng,
4286    #[serde(rename = "dbl")]
4287    Dbl,
4288    #[serde(rename = "thickThin")]
4289    ThickThin,
4290    #[serde(rename = "thinThick")]
4291    ThinThick,
4292    #[serde(rename = "tri")]
4293    Tri,
4294}
4295
4296impl std::fmt::Display for STCompoundLine {
4297    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4298        match self {
4299            Self::Sng => write!(f, "sng"),
4300            Self::Dbl => write!(f, "dbl"),
4301            Self::ThickThin => write!(f, "thickThin"),
4302            Self::ThinThick => write!(f, "thinThick"),
4303            Self::Tri => write!(f, "tri"),
4304        }
4305    }
4306}
4307
4308impl std::str::FromStr for STCompoundLine {
4309    type Err = String;
4310
4311    fn from_str(s: &str) -> Result<Self, Self::Err> {
4312        match s {
4313            "sng" => Ok(Self::Sng),
4314            "dbl" => Ok(Self::Dbl),
4315            "thickThin" => Ok(Self::ThickThin),
4316            "thinThick" => Ok(Self::ThinThick),
4317            "tri" => Ok(Self::Tri),
4318            _ => Err(format!("unknown STCompoundLine value: {}", s)),
4319        }
4320    }
4321}
4322
4323pub type STShapeID = String;
4324
4325#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4326pub enum STOnOffStyleType {
4327    #[serde(rename = "on")]
4328    On,
4329    #[serde(rename = "off")]
4330    Off,
4331    #[serde(rename = "def")]
4332    Def,
4333}
4334
4335impl std::fmt::Display for STOnOffStyleType {
4336    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4337        match self {
4338            Self::On => write!(f, "on"),
4339            Self::Off => write!(f, "off"),
4340            Self::Def => write!(f, "def"),
4341        }
4342    }
4343}
4344
4345impl std::str::FromStr for STOnOffStyleType {
4346    type Err = String;
4347
4348    fn from_str(s: &str) -> Result<Self, Self::Err> {
4349        match s {
4350            "on" => Ok(Self::On),
4351            "off" => Ok(Self::Off),
4352            "def" => Ok(Self::Def),
4353            _ => Err(format!("unknown STOnOffStyleType value: {}", s)),
4354        }
4355    }
4356}
4357
4358#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4359pub enum STTextAnchoringType {
4360    #[serde(rename = "t")]
4361    T,
4362    #[serde(rename = "ctr")]
4363    Ctr,
4364    #[serde(rename = "b")]
4365    B,
4366    #[serde(rename = "just")]
4367    Just,
4368    #[serde(rename = "dist")]
4369    Dist,
4370}
4371
4372impl std::fmt::Display for STTextAnchoringType {
4373    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4374        match self {
4375            Self::T => write!(f, "t"),
4376            Self::Ctr => write!(f, "ctr"),
4377            Self::B => write!(f, "b"),
4378            Self::Just => write!(f, "just"),
4379            Self::Dist => write!(f, "dist"),
4380        }
4381    }
4382}
4383
4384impl std::str::FromStr for STTextAnchoringType {
4385    type Err = String;
4386
4387    fn from_str(s: &str) -> Result<Self, Self::Err> {
4388        match s {
4389            "t" => Ok(Self::T),
4390            "ctr" => Ok(Self::Ctr),
4391            "b" => Ok(Self::B),
4392            "just" => Ok(Self::Just),
4393            "dist" => Ok(Self::Dist),
4394            _ => Err(format!("unknown STTextAnchoringType value: {}", s)),
4395        }
4396    }
4397}
4398
4399#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4400pub enum STTextVertOverflowType {
4401    #[serde(rename = "overflow")]
4402    Overflow,
4403    #[serde(rename = "ellipsis")]
4404    Ellipsis,
4405    #[serde(rename = "clip")]
4406    Clip,
4407}
4408
4409impl std::fmt::Display for STTextVertOverflowType {
4410    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4411        match self {
4412            Self::Overflow => write!(f, "overflow"),
4413            Self::Ellipsis => write!(f, "ellipsis"),
4414            Self::Clip => write!(f, "clip"),
4415        }
4416    }
4417}
4418
4419impl std::str::FromStr for STTextVertOverflowType {
4420    type Err = String;
4421
4422    fn from_str(s: &str) -> Result<Self, Self::Err> {
4423        match s {
4424            "overflow" => Ok(Self::Overflow),
4425            "ellipsis" => Ok(Self::Ellipsis),
4426            "clip" => Ok(Self::Clip),
4427            _ => Err(format!("unknown STTextVertOverflowType value: {}", s)),
4428        }
4429    }
4430}
4431
4432#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4433pub enum STTextHorzOverflowType {
4434    #[serde(rename = "overflow")]
4435    Overflow,
4436    #[serde(rename = "clip")]
4437    Clip,
4438}
4439
4440impl std::fmt::Display for STTextHorzOverflowType {
4441    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4442        match self {
4443            Self::Overflow => write!(f, "overflow"),
4444            Self::Clip => write!(f, "clip"),
4445        }
4446    }
4447}
4448
4449impl std::str::FromStr for STTextHorzOverflowType {
4450    type Err = String;
4451
4452    fn from_str(s: &str) -> Result<Self, Self::Err> {
4453        match s {
4454            "overflow" => Ok(Self::Overflow),
4455            "clip" => Ok(Self::Clip),
4456            _ => Err(format!("unknown STTextHorzOverflowType value: {}", s)),
4457        }
4458    }
4459}
4460
4461#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4462pub enum STTextVerticalType {
4463    #[serde(rename = "horz")]
4464    Horz,
4465    #[serde(rename = "vert")]
4466    Vert,
4467    #[serde(rename = "vert270")]
4468    Vert270,
4469    #[serde(rename = "wordArtVert")]
4470    WordArtVert,
4471    #[serde(rename = "eaVert")]
4472    EaVert,
4473    #[serde(rename = "mongolianVert")]
4474    MongolianVert,
4475    #[serde(rename = "wordArtVertRtl")]
4476    WordArtVertRtl,
4477}
4478
4479impl std::fmt::Display for STTextVerticalType {
4480    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4481        match self {
4482            Self::Horz => write!(f, "horz"),
4483            Self::Vert => write!(f, "vert"),
4484            Self::Vert270 => write!(f, "vert270"),
4485            Self::WordArtVert => write!(f, "wordArtVert"),
4486            Self::EaVert => write!(f, "eaVert"),
4487            Self::MongolianVert => write!(f, "mongolianVert"),
4488            Self::WordArtVertRtl => write!(f, "wordArtVertRtl"),
4489        }
4490    }
4491}
4492
4493impl std::str::FromStr for STTextVerticalType {
4494    type Err = String;
4495
4496    fn from_str(s: &str) -> Result<Self, Self::Err> {
4497        match s {
4498            "horz" => Ok(Self::Horz),
4499            "vert" => Ok(Self::Vert),
4500            "vert270" => Ok(Self::Vert270),
4501            "wordArtVert" => Ok(Self::WordArtVert),
4502            "eaVert" => Ok(Self::EaVert),
4503            "mongolianVert" => Ok(Self::MongolianVert),
4504            "wordArtVertRtl" => Ok(Self::WordArtVertRtl),
4505            _ => Err(format!("unknown STTextVerticalType value: {}", s)),
4506        }
4507    }
4508}
4509
4510#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4511pub enum STTextWrappingType {
4512    #[serde(rename = "none")]
4513    None,
4514    #[serde(rename = "square")]
4515    Square,
4516}
4517
4518impl std::fmt::Display for STTextWrappingType {
4519    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4520        match self {
4521            Self::None => write!(f, "none"),
4522            Self::Square => write!(f, "square"),
4523        }
4524    }
4525}
4526
4527impl std::str::FromStr for STTextWrappingType {
4528    type Err = String;
4529
4530    fn from_str(s: &str) -> Result<Self, Self::Err> {
4531        match s {
4532            "none" => Ok(Self::None),
4533            "square" => Ok(Self::Square),
4534            _ => Err(format!("unknown STTextWrappingType value: {}", s)),
4535        }
4536    }
4537}
4538
4539pub type STTextColumnCount = i32;
4540
4541pub type STTextFontScalePercentOrPercentString = String;
4542
4543pub type STTextFontScalePercent = i32;
4544
4545pub type STTextBulletStartAtNum = i32;
4546
4547#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4548pub enum STTextAutonumberScheme {
4549    #[serde(rename = "alphaLcParenBoth")]
4550    AlphaLcParenBoth,
4551    #[serde(rename = "alphaUcParenBoth")]
4552    AlphaUcParenBoth,
4553    #[serde(rename = "alphaLcParenR")]
4554    AlphaLcParenR,
4555    #[serde(rename = "alphaUcParenR")]
4556    AlphaUcParenR,
4557    #[serde(rename = "alphaLcPeriod")]
4558    AlphaLcPeriod,
4559    #[serde(rename = "alphaUcPeriod")]
4560    AlphaUcPeriod,
4561    #[serde(rename = "arabicParenBoth")]
4562    ArabicParenBoth,
4563    #[serde(rename = "arabicParenR")]
4564    ArabicParenR,
4565    #[serde(rename = "arabicPeriod")]
4566    ArabicPeriod,
4567    #[serde(rename = "arabicPlain")]
4568    ArabicPlain,
4569    #[serde(rename = "romanLcParenBoth")]
4570    RomanLcParenBoth,
4571    #[serde(rename = "romanUcParenBoth")]
4572    RomanUcParenBoth,
4573    #[serde(rename = "romanLcParenR")]
4574    RomanLcParenR,
4575    #[serde(rename = "romanUcParenR")]
4576    RomanUcParenR,
4577    #[serde(rename = "romanLcPeriod")]
4578    RomanLcPeriod,
4579    #[serde(rename = "romanUcPeriod")]
4580    RomanUcPeriod,
4581    #[serde(rename = "circleNumDbPlain")]
4582    CircleNumDbPlain,
4583    #[serde(rename = "circleNumWdBlackPlain")]
4584    CircleNumWdBlackPlain,
4585    #[serde(rename = "circleNumWdWhitePlain")]
4586    CircleNumWdWhitePlain,
4587    #[serde(rename = "arabicDbPeriod")]
4588    ArabicDbPeriod,
4589    #[serde(rename = "arabicDbPlain")]
4590    ArabicDbPlain,
4591    #[serde(rename = "ea1ChsPeriod")]
4592    Ea1ChsPeriod,
4593    #[serde(rename = "ea1ChsPlain")]
4594    Ea1ChsPlain,
4595    #[serde(rename = "ea1ChtPeriod")]
4596    Ea1ChtPeriod,
4597    #[serde(rename = "ea1ChtPlain")]
4598    Ea1ChtPlain,
4599    #[serde(rename = "ea1JpnChsDbPeriod")]
4600    Ea1JpnChsDbPeriod,
4601    #[serde(rename = "ea1JpnKorPlain")]
4602    Ea1JpnKorPlain,
4603    #[serde(rename = "ea1JpnKorPeriod")]
4604    Ea1JpnKorPeriod,
4605    #[serde(rename = "arabic1Minus")]
4606    Arabic1Minus,
4607    #[serde(rename = "arabic2Minus")]
4608    Arabic2Minus,
4609    #[serde(rename = "hebrew2Minus")]
4610    Hebrew2Minus,
4611    #[serde(rename = "thaiAlphaPeriod")]
4612    ThaiAlphaPeriod,
4613    #[serde(rename = "thaiAlphaParenR")]
4614    ThaiAlphaParenR,
4615    #[serde(rename = "thaiAlphaParenBoth")]
4616    ThaiAlphaParenBoth,
4617    #[serde(rename = "thaiNumPeriod")]
4618    ThaiNumPeriod,
4619    #[serde(rename = "thaiNumParenR")]
4620    ThaiNumParenR,
4621    #[serde(rename = "thaiNumParenBoth")]
4622    ThaiNumParenBoth,
4623    #[serde(rename = "hindiAlphaPeriod")]
4624    HindiAlphaPeriod,
4625    #[serde(rename = "hindiNumPeriod")]
4626    HindiNumPeriod,
4627    #[serde(rename = "hindiNumParenR")]
4628    HindiNumParenR,
4629    #[serde(rename = "hindiAlpha1Period")]
4630    HindiAlpha1Period,
4631}
4632
4633impl std::fmt::Display for STTextAutonumberScheme {
4634    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4635        match self {
4636            Self::AlphaLcParenBoth => write!(f, "alphaLcParenBoth"),
4637            Self::AlphaUcParenBoth => write!(f, "alphaUcParenBoth"),
4638            Self::AlphaLcParenR => write!(f, "alphaLcParenR"),
4639            Self::AlphaUcParenR => write!(f, "alphaUcParenR"),
4640            Self::AlphaLcPeriod => write!(f, "alphaLcPeriod"),
4641            Self::AlphaUcPeriod => write!(f, "alphaUcPeriod"),
4642            Self::ArabicParenBoth => write!(f, "arabicParenBoth"),
4643            Self::ArabicParenR => write!(f, "arabicParenR"),
4644            Self::ArabicPeriod => write!(f, "arabicPeriod"),
4645            Self::ArabicPlain => write!(f, "arabicPlain"),
4646            Self::RomanLcParenBoth => write!(f, "romanLcParenBoth"),
4647            Self::RomanUcParenBoth => write!(f, "romanUcParenBoth"),
4648            Self::RomanLcParenR => write!(f, "romanLcParenR"),
4649            Self::RomanUcParenR => write!(f, "romanUcParenR"),
4650            Self::RomanLcPeriod => write!(f, "romanLcPeriod"),
4651            Self::RomanUcPeriod => write!(f, "romanUcPeriod"),
4652            Self::CircleNumDbPlain => write!(f, "circleNumDbPlain"),
4653            Self::CircleNumWdBlackPlain => write!(f, "circleNumWdBlackPlain"),
4654            Self::CircleNumWdWhitePlain => write!(f, "circleNumWdWhitePlain"),
4655            Self::ArabicDbPeriod => write!(f, "arabicDbPeriod"),
4656            Self::ArabicDbPlain => write!(f, "arabicDbPlain"),
4657            Self::Ea1ChsPeriod => write!(f, "ea1ChsPeriod"),
4658            Self::Ea1ChsPlain => write!(f, "ea1ChsPlain"),
4659            Self::Ea1ChtPeriod => write!(f, "ea1ChtPeriod"),
4660            Self::Ea1ChtPlain => write!(f, "ea1ChtPlain"),
4661            Self::Ea1JpnChsDbPeriod => write!(f, "ea1JpnChsDbPeriod"),
4662            Self::Ea1JpnKorPlain => write!(f, "ea1JpnKorPlain"),
4663            Self::Ea1JpnKorPeriod => write!(f, "ea1JpnKorPeriod"),
4664            Self::Arabic1Minus => write!(f, "arabic1Minus"),
4665            Self::Arabic2Minus => write!(f, "arabic2Minus"),
4666            Self::Hebrew2Minus => write!(f, "hebrew2Minus"),
4667            Self::ThaiAlphaPeriod => write!(f, "thaiAlphaPeriod"),
4668            Self::ThaiAlphaParenR => write!(f, "thaiAlphaParenR"),
4669            Self::ThaiAlphaParenBoth => write!(f, "thaiAlphaParenBoth"),
4670            Self::ThaiNumPeriod => write!(f, "thaiNumPeriod"),
4671            Self::ThaiNumParenR => write!(f, "thaiNumParenR"),
4672            Self::ThaiNumParenBoth => write!(f, "thaiNumParenBoth"),
4673            Self::HindiAlphaPeriod => write!(f, "hindiAlphaPeriod"),
4674            Self::HindiNumPeriod => write!(f, "hindiNumPeriod"),
4675            Self::HindiNumParenR => write!(f, "hindiNumParenR"),
4676            Self::HindiAlpha1Period => write!(f, "hindiAlpha1Period"),
4677        }
4678    }
4679}
4680
4681impl std::str::FromStr for STTextAutonumberScheme {
4682    type Err = String;
4683
4684    fn from_str(s: &str) -> Result<Self, Self::Err> {
4685        match s {
4686            "alphaLcParenBoth" => Ok(Self::AlphaLcParenBoth),
4687            "alphaUcParenBoth" => Ok(Self::AlphaUcParenBoth),
4688            "alphaLcParenR" => Ok(Self::AlphaLcParenR),
4689            "alphaUcParenR" => Ok(Self::AlphaUcParenR),
4690            "alphaLcPeriod" => Ok(Self::AlphaLcPeriod),
4691            "alphaUcPeriod" => Ok(Self::AlphaUcPeriod),
4692            "arabicParenBoth" => Ok(Self::ArabicParenBoth),
4693            "arabicParenR" => Ok(Self::ArabicParenR),
4694            "arabicPeriod" => Ok(Self::ArabicPeriod),
4695            "arabicPlain" => Ok(Self::ArabicPlain),
4696            "romanLcParenBoth" => Ok(Self::RomanLcParenBoth),
4697            "romanUcParenBoth" => Ok(Self::RomanUcParenBoth),
4698            "romanLcParenR" => Ok(Self::RomanLcParenR),
4699            "romanUcParenR" => Ok(Self::RomanUcParenR),
4700            "romanLcPeriod" => Ok(Self::RomanLcPeriod),
4701            "romanUcPeriod" => Ok(Self::RomanUcPeriod),
4702            "circleNumDbPlain" => Ok(Self::CircleNumDbPlain),
4703            "circleNumWdBlackPlain" => Ok(Self::CircleNumWdBlackPlain),
4704            "circleNumWdWhitePlain" => Ok(Self::CircleNumWdWhitePlain),
4705            "arabicDbPeriod" => Ok(Self::ArabicDbPeriod),
4706            "arabicDbPlain" => Ok(Self::ArabicDbPlain),
4707            "ea1ChsPeriod" => Ok(Self::Ea1ChsPeriod),
4708            "ea1ChsPlain" => Ok(Self::Ea1ChsPlain),
4709            "ea1ChtPeriod" => Ok(Self::Ea1ChtPeriod),
4710            "ea1ChtPlain" => Ok(Self::Ea1ChtPlain),
4711            "ea1JpnChsDbPeriod" => Ok(Self::Ea1JpnChsDbPeriod),
4712            "ea1JpnKorPlain" => Ok(Self::Ea1JpnKorPlain),
4713            "ea1JpnKorPeriod" => Ok(Self::Ea1JpnKorPeriod),
4714            "arabic1Minus" => Ok(Self::Arabic1Minus),
4715            "arabic2Minus" => Ok(Self::Arabic2Minus),
4716            "hebrew2Minus" => Ok(Self::Hebrew2Minus),
4717            "thaiAlphaPeriod" => Ok(Self::ThaiAlphaPeriod),
4718            "thaiAlphaParenR" => Ok(Self::ThaiAlphaParenR),
4719            "thaiAlphaParenBoth" => Ok(Self::ThaiAlphaParenBoth),
4720            "thaiNumPeriod" => Ok(Self::ThaiNumPeriod),
4721            "thaiNumParenR" => Ok(Self::ThaiNumParenR),
4722            "thaiNumParenBoth" => Ok(Self::ThaiNumParenBoth),
4723            "hindiAlphaPeriod" => Ok(Self::HindiAlphaPeriod),
4724            "hindiNumPeriod" => Ok(Self::HindiNumPeriod),
4725            "hindiNumParenR" => Ok(Self::HindiNumParenR),
4726            "hindiAlpha1Period" => Ok(Self::HindiAlpha1Period),
4727            _ => Err(format!("unknown STTextAutonumberScheme value: {}", s)),
4728        }
4729    }
4730}
4731
4732pub type STTextBulletSize = String;
4733
4734pub type STTextBulletSizePercent = String;
4735
4736pub type STTextBulletSizeDecimal = i32;
4737
4738pub type STTextPoint = String;
4739
4740pub type STTextPointUnqualified = i32;
4741
4742pub type STTextNonNegativePoint = i32;
4743
4744pub type STTextFontSize = i32;
4745
4746pub type STTextTypeface = String;
4747
4748pub type STPitchFamily = String;
4749
4750#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4751pub enum STTextUnderlineType {
4752    #[serde(rename = "none")]
4753    None,
4754    #[serde(rename = "words")]
4755    Words,
4756    #[serde(rename = "sng")]
4757    Sng,
4758    #[serde(rename = "dbl")]
4759    Dbl,
4760    #[serde(rename = "heavy")]
4761    Heavy,
4762    #[serde(rename = "dotted")]
4763    Dotted,
4764    #[serde(rename = "dottedHeavy")]
4765    DottedHeavy,
4766    #[serde(rename = "dash")]
4767    Dash,
4768    #[serde(rename = "dashHeavy")]
4769    DashHeavy,
4770    #[serde(rename = "dashLong")]
4771    DashLong,
4772    #[serde(rename = "dashLongHeavy")]
4773    DashLongHeavy,
4774    #[serde(rename = "dotDash")]
4775    DotDash,
4776    #[serde(rename = "dotDashHeavy")]
4777    DotDashHeavy,
4778    #[serde(rename = "dotDotDash")]
4779    DotDotDash,
4780    #[serde(rename = "dotDotDashHeavy")]
4781    DotDotDashHeavy,
4782    #[serde(rename = "wavy")]
4783    Wavy,
4784    #[serde(rename = "wavyHeavy")]
4785    WavyHeavy,
4786    #[serde(rename = "wavyDbl")]
4787    WavyDbl,
4788}
4789
4790impl std::fmt::Display for STTextUnderlineType {
4791    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4792        match self {
4793            Self::None => write!(f, "none"),
4794            Self::Words => write!(f, "words"),
4795            Self::Sng => write!(f, "sng"),
4796            Self::Dbl => write!(f, "dbl"),
4797            Self::Heavy => write!(f, "heavy"),
4798            Self::Dotted => write!(f, "dotted"),
4799            Self::DottedHeavy => write!(f, "dottedHeavy"),
4800            Self::Dash => write!(f, "dash"),
4801            Self::DashHeavy => write!(f, "dashHeavy"),
4802            Self::DashLong => write!(f, "dashLong"),
4803            Self::DashLongHeavy => write!(f, "dashLongHeavy"),
4804            Self::DotDash => write!(f, "dotDash"),
4805            Self::DotDashHeavy => write!(f, "dotDashHeavy"),
4806            Self::DotDotDash => write!(f, "dotDotDash"),
4807            Self::DotDotDashHeavy => write!(f, "dotDotDashHeavy"),
4808            Self::Wavy => write!(f, "wavy"),
4809            Self::WavyHeavy => write!(f, "wavyHeavy"),
4810            Self::WavyDbl => write!(f, "wavyDbl"),
4811        }
4812    }
4813}
4814
4815impl std::str::FromStr for STTextUnderlineType {
4816    type Err = String;
4817
4818    fn from_str(s: &str) -> Result<Self, Self::Err> {
4819        match s {
4820            "none" => Ok(Self::None),
4821            "words" => Ok(Self::Words),
4822            "sng" => Ok(Self::Sng),
4823            "dbl" => Ok(Self::Dbl),
4824            "heavy" => Ok(Self::Heavy),
4825            "dotted" => Ok(Self::Dotted),
4826            "dottedHeavy" => Ok(Self::DottedHeavy),
4827            "dash" => Ok(Self::Dash),
4828            "dashHeavy" => Ok(Self::DashHeavy),
4829            "dashLong" => Ok(Self::DashLong),
4830            "dashLongHeavy" => Ok(Self::DashLongHeavy),
4831            "dotDash" => Ok(Self::DotDash),
4832            "dotDashHeavy" => Ok(Self::DotDashHeavy),
4833            "dotDotDash" => Ok(Self::DotDotDash),
4834            "dotDotDashHeavy" => Ok(Self::DotDotDashHeavy),
4835            "wavy" => Ok(Self::Wavy),
4836            "wavyHeavy" => Ok(Self::WavyHeavy),
4837            "wavyDbl" => Ok(Self::WavyDbl),
4838            _ => Err(format!("unknown STTextUnderlineType value: {}", s)),
4839        }
4840    }
4841}
4842
4843#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4844pub enum STTextStrikeType {
4845    #[serde(rename = "noStrike")]
4846    NoStrike,
4847    #[serde(rename = "sngStrike")]
4848    SngStrike,
4849    #[serde(rename = "dblStrike")]
4850    DblStrike,
4851}
4852
4853impl std::fmt::Display for STTextStrikeType {
4854    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4855        match self {
4856            Self::NoStrike => write!(f, "noStrike"),
4857            Self::SngStrike => write!(f, "sngStrike"),
4858            Self::DblStrike => write!(f, "dblStrike"),
4859        }
4860    }
4861}
4862
4863impl std::str::FromStr for STTextStrikeType {
4864    type Err = String;
4865
4866    fn from_str(s: &str) -> Result<Self, Self::Err> {
4867        match s {
4868            "noStrike" => Ok(Self::NoStrike),
4869            "sngStrike" => Ok(Self::SngStrike),
4870            "dblStrike" => Ok(Self::DblStrike),
4871            _ => Err(format!("unknown STTextStrikeType value: {}", s)),
4872        }
4873    }
4874}
4875
4876#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4877pub enum STTextCapsType {
4878    #[serde(rename = "none")]
4879    None,
4880    #[serde(rename = "small")]
4881    Small,
4882    #[serde(rename = "all")]
4883    All,
4884}
4885
4886impl std::fmt::Display for STTextCapsType {
4887    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4888        match self {
4889            Self::None => write!(f, "none"),
4890            Self::Small => write!(f, "small"),
4891            Self::All => write!(f, "all"),
4892        }
4893    }
4894}
4895
4896impl std::str::FromStr for STTextCapsType {
4897    type Err = String;
4898
4899    fn from_str(s: &str) -> Result<Self, Self::Err> {
4900        match s {
4901            "none" => Ok(Self::None),
4902            "small" => Ok(Self::Small),
4903            "all" => Ok(Self::All),
4904            _ => Err(format!("unknown STTextCapsType value: {}", s)),
4905        }
4906    }
4907}
4908
4909pub type STTextSpacingPoint = i32;
4910
4911pub type STTextSpacingPercentOrPercentString = String;
4912
4913pub type STTextSpacingPercent = i32;
4914
4915pub type STTextMargin = i32;
4916
4917pub type STTextIndent = i32;
4918
4919#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4920pub enum STTextTabAlignType {
4921    #[serde(rename = "l")]
4922    L,
4923    #[serde(rename = "ctr")]
4924    Ctr,
4925    #[serde(rename = "r")]
4926    R,
4927    #[serde(rename = "dec")]
4928    Dec,
4929}
4930
4931impl std::fmt::Display for STTextTabAlignType {
4932    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4933        match self {
4934            Self::L => write!(f, "l"),
4935            Self::Ctr => write!(f, "ctr"),
4936            Self::R => write!(f, "r"),
4937            Self::Dec => write!(f, "dec"),
4938        }
4939    }
4940}
4941
4942impl std::str::FromStr for STTextTabAlignType {
4943    type Err = String;
4944
4945    fn from_str(s: &str) -> Result<Self, Self::Err> {
4946        match s {
4947            "l" => Ok(Self::L),
4948            "ctr" => Ok(Self::Ctr),
4949            "r" => Ok(Self::R),
4950            "dec" => Ok(Self::Dec),
4951            _ => Err(format!("unknown STTextTabAlignType value: {}", s)),
4952        }
4953    }
4954}
4955
4956#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4957pub enum STTextAlignType {
4958    #[serde(rename = "l")]
4959    L,
4960    #[serde(rename = "ctr")]
4961    Ctr,
4962    #[serde(rename = "r")]
4963    R,
4964    #[serde(rename = "just")]
4965    Just,
4966    #[serde(rename = "justLow")]
4967    JustLow,
4968    #[serde(rename = "dist")]
4969    Dist,
4970    #[serde(rename = "thaiDist")]
4971    ThaiDist,
4972}
4973
4974impl std::fmt::Display for STTextAlignType {
4975    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4976        match self {
4977            Self::L => write!(f, "l"),
4978            Self::Ctr => write!(f, "ctr"),
4979            Self::R => write!(f, "r"),
4980            Self::Just => write!(f, "just"),
4981            Self::JustLow => write!(f, "justLow"),
4982            Self::Dist => write!(f, "dist"),
4983            Self::ThaiDist => write!(f, "thaiDist"),
4984        }
4985    }
4986}
4987
4988impl std::str::FromStr for STTextAlignType {
4989    type Err = String;
4990
4991    fn from_str(s: &str) -> Result<Self, Self::Err> {
4992        match s {
4993            "l" => Ok(Self::L),
4994            "ctr" => Ok(Self::Ctr),
4995            "r" => Ok(Self::R),
4996            "just" => Ok(Self::Just),
4997            "justLow" => Ok(Self::JustLow),
4998            "dist" => Ok(Self::Dist),
4999            "thaiDist" => Ok(Self::ThaiDist),
5000            _ => Err(format!("unknown STTextAlignType value: {}", s)),
5001        }
5002    }
5003}
5004
5005#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5006pub enum STTextFontAlignType {
5007    #[serde(rename = "auto")]
5008    Auto,
5009    #[serde(rename = "t")]
5010    T,
5011    #[serde(rename = "ctr")]
5012    Ctr,
5013    #[serde(rename = "base")]
5014    Base,
5015    #[serde(rename = "b")]
5016    B,
5017}
5018
5019impl std::fmt::Display for STTextFontAlignType {
5020    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5021        match self {
5022            Self::Auto => write!(f, "auto"),
5023            Self::T => write!(f, "t"),
5024            Self::Ctr => write!(f, "ctr"),
5025            Self::Base => write!(f, "base"),
5026            Self::B => write!(f, "b"),
5027        }
5028    }
5029}
5030
5031impl std::str::FromStr for STTextFontAlignType {
5032    type Err = String;
5033
5034    fn from_str(s: &str) -> Result<Self, Self::Err> {
5035        match s {
5036            "auto" => Ok(Self::Auto),
5037            "t" => Ok(Self::T),
5038            "ctr" => Ok(Self::Ctr),
5039            "base" => Ok(Self::Base),
5040            "b" => Ok(Self::B),
5041            _ => Err(format!("unknown STTextFontAlignType value: {}", s)),
5042        }
5043    }
5044}
5045
5046pub type STTextIndentLevelType = i32;
5047
5048#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5049pub enum LayoutTargetType {
5050    #[serde(rename = "inner")]
5051    Inner,
5052    #[serde(rename = "outer")]
5053    Outer,
5054}
5055
5056impl std::fmt::Display for LayoutTargetType {
5057    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5058        match self {
5059            Self::Inner => write!(f, "inner"),
5060            Self::Outer => write!(f, "outer"),
5061        }
5062    }
5063}
5064
5065impl std::str::FromStr for LayoutTargetType {
5066    type Err = String;
5067
5068    fn from_str(s: &str) -> Result<Self, Self::Err> {
5069        match s {
5070            "inner" => Ok(Self::Inner),
5071            "outer" => Ok(Self::Outer),
5072            _ => Err(format!("unknown LayoutTargetType value: {}", s)),
5073        }
5074    }
5075}
5076
5077#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5078pub enum LayoutModeType {
5079    #[serde(rename = "edge")]
5080    Edge,
5081    #[serde(rename = "factor")]
5082    Factor,
5083}
5084
5085impl std::fmt::Display for LayoutModeType {
5086    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5087        match self {
5088            Self::Edge => write!(f, "edge"),
5089            Self::Factor => write!(f, "factor"),
5090        }
5091    }
5092}
5093
5094impl std::str::FromStr for LayoutModeType {
5095    type Err = String;
5096
5097    fn from_str(s: &str) -> Result<Self, Self::Err> {
5098        match s {
5099            "edge" => Ok(Self::Edge),
5100            "factor" => Ok(Self::Factor),
5101            _ => Err(format!("unknown LayoutModeType value: {}", s)),
5102        }
5103    }
5104}
5105
5106pub type RotXValue = i8;
5107
5108pub type HPercentValue = String;
5109
5110pub type HPercentWithSymbol = String;
5111
5112pub type HPercentUShort = u16;
5113
5114pub type RotYValue = u16;
5115
5116pub type DepthPercentValue = String;
5117
5118pub type DepthPercentWithSymbol = String;
5119
5120pub type DepthPercentUShort = u16;
5121
5122pub type PerspectiveValue = u8;
5123
5124pub type ChartThicknessValue = String;
5125
5126pub type ThicknessPercentStr = String;
5127
5128pub type GapAmountValue = String;
5129
5130pub type GapAmountPercent = String;
5131
5132pub type GapAmountUShort = u16;
5133
5134pub type OverlapValue = String;
5135
5136pub type OverlapPercent = String;
5137
5138pub type OverlapByte = i8;
5139
5140pub type BubbleScaleValue = String;
5141
5142pub type BubbleScalePercent = String;
5143
5144pub type BubbleScaleUInt = u32;
5145
5146#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5147pub enum SizeRepresentsType {
5148    #[serde(rename = "area")]
5149    Area,
5150    #[serde(rename = "w")]
5151    W,
5152}
5153
5154impl std::fmt::Display for SizeRepresentsType {
5155    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5156        match self {
5157            Self::Area => write!(f, "area"),
5158            Self::W => write!(f, "w"),
5159        }
5160    }
5161}
5162
5163impl std::str::FromStr for SizeRepresentsType {
5164    type Err = String;
5165
5166    fn from_str(s: &str) -> Result<Self, Self::Err> {
5167        match s {
5168            "area" => Ok(Self::Area),
5169            "w" => Ok(Self::W),
5170            _ => Err(format!("unknown SizeRepresentsType value: {}", s)),
5171        }
5172    }
5173}
5174
5175pub type FirstSliceAngValue = u16;
5176
5177pub type HoleSizeValue = String;
5178
5179pub type HoleSizePercent = String;
5180
5181pub type HoleSizeUByte = u8;
5182
5183#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5184pub enum SplitTypeValue {
5185    #[serde(rename = "auto")]
5186    Auto,
5187    #[serde(rename = "cust")]
5188    Cust,
5189    #[serde(rename = "percent")]
5190    Percent,
5191    #[serde(rename = "pos")]
5192    Pos,
5193    #[serde(rename = "val")]
5194    Val,
5195}
5196
5197impl std::fmt::Display for SplitTypeValue {
5198    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5199        match self {
5200            Self::Auto => write!(f, "auto"),
5201            Self::Cust => write!(f, "cust"),
5202            Self::Percent => write!(f, "percent"),
5203            Self::Pos => write!(f, "pos"),
5204            Self::Val => write!(f, "val"),
5205        }
5206    }
5207}
5208
5209impl std::str::FromStr for SplitTypeValue {
5210    type Err = String;
5211
5212    fn from_str(s: &str) -> Result<Self, Self::Err> {
5213        match s {
5214            "auto" => Ok(Self::Auto),
5215            "cust" => Ok(Self::Cust),
5216            "percent" => Ok(Self::Percent),
5217            "pos" => Ok(Self::Pos),
5218            "val" => Ok(Self::Val),
5219            _ => Err(format!("unknown SplitTypeValue value: {}", s)),
5220        }
5221    }
5222}
5223
5224pub type SecondPieSizeValue = String;
5225
5226pub type SecondPieSizePercent = String;
5227
5228pub type SecondPieSizeUShort = u16;
5229
5230#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5231pub enum LabelAlignType {
5232    #[serde(rename = "ctr")]
5233    Ctr,
5234    #[serde(rename = "l")]
5235    L,
5236    #[serde(rename = "r")]
5237    R,
5238}
5239
5240impl std::fmt::Display for LabelAlignType {
5241    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5242        match self {
5243            Self::Ctr => write!(f, "ctr"),
5244            Self::L => write!(f, "l"),
5245            Self::R => write!(f, "r"),
5246        }
5247    }
5248}
5249
5250impl std::str::FromStr for LabelAlignType {
5251    type Err = String;
5252
5253    fn from_str(s: &str) -> Result<Self, Self::Err> {
5254        match s {
5255            "ctr" => Ok(Self::Ctr),
5256            "l" => Ok(Self::L),
5257            "r" => Ok(Self::R),
5258            _ => Err(format!("unknown LabelAlignType value: {}", s)),
5259        }
5260    }
5261}
5262
5263#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5264pub enum DataLabelPositionType {
5265    #[serde(rename = "bestFit")]
5266    BestFit,
5267    #[serde(rename = "b")]
5268    B,
5269    #[serde(rename = "ctr")]
5270    Ctr,
5271    #[serde(rename = "inBase")]
5272    InBase,
5273    #[serde(rename = "inEnd")]
5274    InEnd,
5275    #[serde(rename = "l")]
5276    L,
5277    #[serde(rename = "outEnd")]
5278    OutEnd,
5279    #[serde(rename = "r")]
5280    R,
5281    #[serde(rename = "t")]
5282    T,
5283}
5284
5285impl std::fmt::Display for DataLabelPositionType {
5286    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5287        match self {
5288            Self::BestFit => write!(f, "bestFit"),
5289            Self::B => write!(f, "b"),
5290            Self::Ctr => write!(f, "ctr"),
5291            Self::InBase => write!(f, "inBase"),
5292            Self::InEnd => write!(f, "inEnd"),
5293            Self::L => write!(f, "l"),
5294            Self::OutEnd => write!(f, "outEnd"),
5295            Self::R => write!(f, "r"),
5296            Self::T => write!(f, "t"),
5297        }
5298    }
5299}
5300
5301impl std::str::FromStr for DataLabelPositionType {
5302    type Err = String;
5303
5304    fn from_str(s: &str) -> Result<Self, Self::Err> {
5305        match s {
5306            "bestFit" => Ok(Self::BestFit),
5307            "b" => Ok(Self::B),
5308            "ctr" => Ok(Self::Ctr),
5309            "inBase" => Ok(Self::InBase),
5310            "inEnd" => Ok(Self::InEnd),
5311            "l" => Ok(Self::L),
5312            "outEnd" => Ok(Self::OutEnd),
5313            "r" => Ok(Self::R),
5314            "t" => Ok(Self::T),
5315            _ => Err(format!("unknown DataLabelPositionType value: {}", s)),
5316        }
5317    }
5318}
5319
5320#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5321pub enum MarkerStyleType {
5322    #[serde(rename = "circle")]
5323    Circle,
5324    #[serde(rename = "dash")]
5325    Dash,
5326    #[serde(rename = "diamond")]
5327    Diamond,
5328    #[serde(rename = "dot")]
5329    Dot,
5330    #[serde(rename = "none")]
5331    None,
5332    #[serde(rename = "picture")]
5333    Picture,
5334    #[serde(rename = "plus")]
5335    Plus,
5336    #[serde(rename = "square")]
5337    Square,
5338    #[serde(rename = "star")]
5339    Star,
5340    #[serde(rename = "triangle")]
5341    Triangle,
5342    #[serde(rename = "x")]
5343    X,
5344    #[serde(rename = "auto")]
5345    Auto,
5346}
5347
5348impl std::fmt::Display for MarkerStyleType {
5349    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5350        match self {
5351            Self::Circle => write!(f, "circle"),
5352            Self::Dash => write!(f, "dash"),
5353            Self::Diamond => write!(f, "diamond"),
5354            Self::Dot => write!(f, "dot"),
5355            Self::None => write!(f, "none"),
5356            Self::Picture => write!(f, "picture"),
5357            Self::Plus => write!(f, "plus"),
5358            Self::Square => write!(f, "square"),
5359            Self::Star => write!(f, "star"),
5360            Self::Triangle => write!(f, "triangle"),
5361            Self::X => write!(f, "x"),
5362            Self::Auto => write!(f, "auto"),
5363        }
5364    }
5365}
5366
5367impl std::str::FromStr for MarkerStyleType {
5368    type Err = String;
5369
5370    fn from_str(s: &str) -> Result<Self, Self::Err> {
5371        match s {
5372            "circle" => Ok(Self::Circle),
5373            "dash" => Ok(Self::Dash),
5374            "diamond" => Ok(Self::Diamond),
5375            "dot" => Ok(Self::Dot),
5376            "none" => Ok(Self::None),
5377            "picture" => Ok(Self::Picture),
5378            "plus" => Ok(Self::Plus),
5379            "square" => Ok(Self::Square),
5380            "star" => Ok(Self::Star),
5381            "triangle" => Ok(Self::Triangle),
5382            "x" => Ok(Self::X),
5383            "auto" => Ok(Self::Auto),
5384            _ => Err(format!("unknown MarkerStyleType value: {}", s)),
5385        }
5386    }
5387}
5388
5389pub type MarkerSizeValue = u8;
5390
5391#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5392pub enum TrendlineTypeValue {
5393    #[serde(rename = "exp")]
5394    Exp,
5395    #[serde(rename = "linear")]
5396    Linear,
5397    #[serde(rename = "log")]
5398    Log,
5399    #[serde(rename = "movingAvg")]
5400    MovingAvg,
5401    #[serde(rename = "poly")]
5402    Poly,
5403    #[serde(rename = "power")]
5404    Power,
5405}
5406
5407impl std::fmt::Display for TrendlineTypeValue {
5408    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5409        match self {
5410            Self::Exp => write!(f, "exp"),
5411            Self::Linear => write!(f, "linear"),
5412            Self::Log => write!(f, "log"),
5413            Self::MovingAvg => write!(f, "movingAvg"),
5414            Self::Poly => write!(f, "poly"),
5415            Self::Power => write!(f, "power"),
5416        }
5417    }
5418}
5419
5420impl std::str::FromStr for TrendlineTypeValue {
5421    type Err = String;
5422
5423    fn from_str(s: &str) -> Result<Self, Self::Err> {
5424        match s {
5425            "exp" => Ok(Self::Exp),
5426            "linear" => Ok(Self::Linear),
5427            "log" => Ok(Self::Log),
5428            "movingAvg" => Ok(Self::MovingAvg),
5429            "poly" => Ok(Self::Poly),
5430            "power" => Ok(Self::Power),
5431            _ => Err(format!("unknown TrendlineTypeValue value: {}", s)),
5432        }
5433    }
5434}
5435
5436pub type TrendlineOrderValue = u8;
5437
5438pub type TrendlinePeriodValue = u32;
5439
5440#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5441pub enum ErrorDirectionType {
5442    #[serde(rename = "x")]
5443    X,
5444    #[serde(rename = "y")]
5445    Y,
5446}
5447
5448impl std::fmt::Display for ErrorDirectionType {
5449    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5450        match self {
5451            Self::X => write!(f, "x"),
5452            Self::Y => write!(f, "y"),
5453        }
5454    }
5455}
5456
5457impl std::str::FromStr for ErrorDirectionType {
5458    type Err = String;
5459
5460    fn from_str(s: &str) -> Result<Self, Self::Err> {
5461        match s {
5462            "x" => Ok(Self::X),
5463            "y" => Ok(Self::Y),
5464            _ => Err(format!("unknown ErrorDirectionType value: {}", s)),
5465        }
5466    }
5467}
5468
5469#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5470pub enum ErrorBarTypeValue {
5471    #[serde(rename = "both")]
5472    Both,
5473    #[serde(rename = "minus")]
5474    Minus,
5475    #[serde(rename = "plus")]
5476    Plus,
5477}
5478
5479impl std::fmt::Display for ErrorBarTypeValue {
5480    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5481        match self {
5482            Self::Both => write!(f, "both"),
5483            Self::Minus => write!(f, "minus"),
5484            Self::Plus => write!(f, "plus"),
5485        }
5486    }
5487}
5488
5489impl std::str::FromStr for ErrorBarTypeValue {
5490    type Err = String;
5491
5492    fn from_str(s: &str) -> Result<Self, Self::Err> {
5493        match s {
5494            "both" => Ok(Self::Both),
5495            "minus" => Ok(Self::Minus),
5496            "plus" => Ok(Self::Plus),
5497            _ => Err(format!("unknown ErrorBarTypeValue value: {}", s)),
5498        }
5499    }
5500}
5501
5502#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5503pub enum ErrorValueTypeValue {
5504    #[serde(rename = "cust")]
5505    Cust,
5506    #[serde(rename = "fixedVal")]
5507    FixedVal,
5508    #[serde(rename = "percentage")]
5509    Percentage,
5510    #[serde(rename = "stdDev")]
5511    StdDev,
5512    #[serde(rename = "stdErr")]
5513    StdErr,
5514}
5515
5516impl std::fmt::Display for ErrorValueTypeValue {
5517    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5518        match self {
5519            Self::Cust => write!(f, "cust"),
5520            Self::FixedVal => write!(f, "fixedVal"),
5521            Self::Percentage => write!(f, "percentage"),
5522            Self::StdDev => write!(f, "stdDev"),
5523            Self::StdErr => write!(f, "stdErr"),
5524        }
5525    }
5526}
5527
5528impl std::str::FromStr for ErrorValueTypeValue {
5529    type Err = String;
5530
5531    fn from_str(s: &str) -> Result<Self, Self::Err> {
5532        match s {
5533            "cust" => Ok(Self::Cust),
5534            "fixedVal" => Ok(Self::FixedVal),
5535            "percentage" => Ok(Self::Percentage),
5536            "stdDev" => Ok(Self::StdDev),
5537            "stdErr" => Ok(Self::StdErr),
5538            _ => Err(format!("unknown ErrorValueTypeValue value: {}", s)),
5539        }
5540    }
5541}
5542
5543#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5544pub enum GroupingType {
5545    #[serde(rename = "percentStacked")]
5546    PercentStacked,
5547    #[serde(rename = "standard")]
5548    Standard,
5549    #[serde(rename = "stacked")]
5550    Stacked,
5551}
5552
5553impl std::fmt::Display for GroupingType {
5554    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5555        match self {
5556            Self::PercentStacked => write!(f, "percentStacked"),
5557            Self::Standard => write!(f, "standard"),
5558            Self::Stacked => write!(f, "stacked"),
5559        }
5560    }
5561}
5562
5563impl std::str::FromStr for GroupingType {
5564    type Err = String;
5565
5566    fn from_str(s: &str) -> Result<Self, Self::Err> {
5567        match s {
5568            "percentStacked" => Ok(Self::PercentStacked),
5569            "standard" => Ok(Self::Standard),
5570            "stacked" => Ok(Self::Stacked),
5571            _ => Err(format!("unknown GroupingType value: {}", s)),
5572        }
5573    }
5574}
5575
5576#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5577pub enum ScatterStyleType {
5578    #[serde(rename = "none")]
5579    None,
5580    #[serde(rename = "line")]
5581    Line,
5582    #[serde(rename = "lineMarker")]
5583    LineMarker,
5584    #[serde(rename = "marker")]
5585    Marker,
5586    #[serde(rename = "smooth")]
5587    Smooth,
5588    #[serde(rename = "smoothMarker")]
5589    SmoothMarker,
5590}
5591
5592impl std::fmt::Display for ScatterStyleType {
5593    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5594        match self {
5595            Self::None => write!(f, "none"),
5596            Self::Line => write!(f, "line"),
5597            Self::LineMarker => write!(f, "lineMarker"),
5598            Self::Marker => write!(f, "marker"),
5599            Self::Smooth => write!(f, "smooth"),
5600            Self::SmoothMarker => write!(f, "smoothMarker"),
5601        }
5602    }
5603}
5604
5605impl std::str::FromStr for ScatterStyleType {
5606    type Err = String;
5607
5608    fn from_str(s: &str) -> Result<Self, Self::Err> {
5609        match s {
5610            "none" => Ok(Self::None),
5611            "line" => Ok(Self::Line),
5612            "lineMarker" => Ok(Self::LineMarker),
5613            "marker" => Ok(Self::Marker),
5614            "smooth" => Ok(Self::Smooth),
5615            "smoothMarker" => Ok(Self::SmoothMarker),
5616            _ => Err(format!("unknown ScatterStyleType value: {}", s)),
5617        }
5618    }
5619}
5620
5621#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5622pub enum RadarStyleType {
5623    #[serde(rename = "standard")]
5624    Standard,
5625    #[serde(rename = "marker")]
5626    Marker,
5627    #[serde(rename = "filled")]
5628    Filled,
5629}
5630
5631impl std::fmt::Display for RadarStyleType {
5632    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5633        match self {
5634            Self::Standard => write!(f, "standard"),
5635            Self::Marker => write!(f, "marker"),
5636            Self::Filled => write!(f, "filled"),
5637        }
5638    }
5639}
5640
5641impl std::str::FromStr for RadarStyleType {
5642    type Err = String;
5643
5644    fn from_str(s: &str) -> Result<Self, Self::Err> {
5645        match s {
5646            "standard" => Ok(Self::Standard),
5647            "marker" => Ok(Self::Marker),
5648            "filled" => Ok(Self::Filled),
5649            _ => Err(format!("unknown RadarStyleType value: {}", s)),
5650        }
5651    }
5652}
5653
5654#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5655pub enum BarGroupingType {
5656    #[serde(rename = "percentStacked")]
5657    PercentStacked,
5658    #[serde(rename = "clustered")]
5659    Clustered,
5660    #[serde(rename = "standard")]
5661    Standard,
5662    #[serde(rename = "stacked")]
5663    Stacked,
5664}
5665
5666impl std::fmt::Display for BarGroupingType {
5667    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5668        match self {
5669            Self::PercentStacked => write!(f, "percentStacked"),
5670            Self::Clustered => write!(f, "clustered"),
5671            Self::Standard => write!(f, "standard"),
5672            Self::Stacked => write!(f, "stacked"),
5673        }
5674    }
5675}
5676
5677impl std::str::FromStr for BarGroupingType {
5678    type Err = String;
5679
5680    fn from_str(s: &str) -> Result<Self, Self::Err> {
5681        match s {
5682            "percentStacked" => Ok(Self::PercentStacked),
5683            "clustered" => Ok(Self::Clustered),
5684            "standard" => Ok(Self::Standard),
5685            "stacked" => Ok(Self::Stacked),
5686            _ => Err(format!("unknown BarGroupingType value: {}", s)),
5687        }
5688    }
5689}
5690
5691#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5692pub enum BarDirectionType {
5693    #[serde(rename = "bar")]
5694    Bar,
5695    #[serde(rename = "col")]
5696    Col,
5697}
5698
5699impl std::fmt::Display for BarDirectionType {
5700    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5701        match self {
5702            Self::Bar => write!(f, "bar"),
5703            Self::Col => write!(f, "col"),
5704        }
5705    }
5706}
5707
5708impl std::str::FromStr for BarDirectionType {
5709    type Err = String;
5710
5711    fn from_str(s: &str) -> Result<Self, Self::Err> {
5712        match s {
5713            "bar" => Ok(Self::Bar),
5714            "col" => Ok(Self::Col),
5715            _ => Err(format!("unknown BarDirectionType value: {}", s)),
5716        }
5717    }
5718}
5719
5720#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5721pub enum BarShapeType {
5722    #[serde(rename = "cone")]
5723    Cone,
5724    #[serde(rename = "coneToMax")]
5725    ConeToMax,
5726    #[serde(rename = "box")]
5727    Box,
5728    #[serde(rename = "cylinder")]
5729    Cylinder,
5730    #[serde(rename = "pyramid")]
5731    Pyramid,
5732    #[serde(rename = "pyramidToMax")]
5733    PyramidToMax,
5734}
5735
5736impl std::fmt::Display for BarShapeType {
5737    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5738        match self {
5739            Self::Cone => write!(f, "cone"),
5740            Self::ConeToMax => write!(f, "coneToMax"),
5741            Self::Box => write!(f, "box"),
5742            Self::Cylinder => write!(f, "cylinder"),
5743            Self::Pyramid => write!(f, "pyramid"),
5744            Self::PyramidToMax => write!(f, "pyramidToMax"),
5745        }
5746    }
5747}
5748
5749impl std::str::FromStr for BarShapeType {
5750    type Err = String;
5751
5752    fn from_str(s: &str) -> Result<Self, Self::Err> {
5753        match s {
5754            "cone" => Ok(Self::Cone),
5755            "coneToMax" => Ok(Self::ConeToMax),
5756            "box" => Ok(Self::Box),
5757            "cylinder" => Ok(Self::Cylinder),
5758            "pyramid" => Ok(Self::Pyramid),
5759            "pyramidToMax" => Ok(Self::PyramidToMax),
5760            _ => Err(format!("unknown BarShapeType value: {}", s)),
5761        }
5762    }
5763}
5764
5765#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5766pub enum OfPieTypeValue {
5767    #[serde(rename = "pie")]
5768    Pie,
5769    #[serde(rename = "bar")]
5770    Bar,
5771}
5772
5773impl std::fmt::Display for OfPieTypeValue {
5774    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5775        match self {
5776            Self::Pie => write!(f, "pie"),
5777            Self::Bar => write!(f, "bar"),
5778        }
5779    }
5780}
5781
5782impl std::str::FromStr for OfPieTypeValue {
5783    type Err = String;
5784
5785    fn from_str(s: &str) -> Result<Self, Self::Err> {
5786        match s {
5787            "pie" => Ok(Self::Pie),
5788            "bar" => Ok(Self::Bar),
5789            _ => Err(format!("unknown OfPieTypeValue value: {}", s)),
5790        }
5791    }
5792}
5793
5794#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5795pub enum AxisPositionType {
5796    #[serde(rename = "b")]
5797    B,
5798    #[serde(rename = "l")]
5799    L,
5800    #[serde(rename = "r")]
5801    R,
5802    #[serde(rename = "t")]
5803    T,
5804}
5805
5806impl std::fmt::Display for AxisPositionType {
5807    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5808        match self {
5809            Self::B => write!(f, "b"),
5810            Self::L => write!(f, "l"),
5811            Self::R => write!(f, "r"),
5812            Self::T => write!(f, "t"),
5813        }
5814    }
5815}
5816
5817impl std::str::FromStr for AxisPositionType {
5818    type Err = String;
5819
5820    fn from_str(s: &str) -> Result<Self, Self::Err> {
5821        match s {
5822            "b" => Ok(Self::B),
5823            "l" => Ok(Self::L),
5824            "r" => Ok(Self::R),
5825            "t" => Ok(Self::T),
5826            _ => Err(format!("unknown AxisPositionType value: {}", s)),
5827        }
5828    }
5829}
5830
5831#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5832pub enum AxisCrossesType {
5833    #[serde(rename = "autoZero")]
5834    AutoZero,
5835    #[serde(rename = "max")]
5836    Max,
5837    #[serde(rename = "min")]
5838    Min,
5839}
5840
5841impl std::fmt::Display for AxisCrossesType {
5842    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5843        match self {
5844            Self::AutoZero => write!(f, "autoZero"),
5845            Self::Max => write!(f, "max"),
5846            Self::Min => write!(f, "min"),
5847        }
5848    }
5849}
5850
5851impl std::str::FromStr for AxisCrossesType {
5852    type Err = String;
5853
5854    fn from_str(s: &str) -> Result<Self, Self::Err> {
5855        match s {
5856            "autoZero" => Ok(Self::AutoZero),
5857            "max" => Ok(Self::Max),
5858            "min" => Ok(Self::Min),
5859            _ => Err(format!("unknown AxisCrossesType value: {}", s)),
5860        }
5861    }
5862}
5863
5864#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5865pub enum CrossBetweenType {
5866    #[serde(rename = "between")]
5867    Between,
5868    #[serde(rename = "midCat")]
5869    MidCat,
5870}
5871
5872impl std::fmt::Display for CrossBetweenType {
5873    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5874        match self {
5875            Self::Between => write!(f, "between"),
5876            Self::MidCat => write!(f, "midCat"),
5877        }
5878    }
5879}
5880
5881impl std::str::FromStr for CrossBetweenType {
5882    type Err = String;
5883
5884    fn from_str(s: &str) -> Result<Self, Self::Err> {
5885        match s {
5886            "between" => Ok(Self::Between),
5887            "midCat" => Ok(Self::MidCat),
5888            _ => Err(format!("unknown CrossBetweenType value: {}", s)),
5889        }
5890    }
5891}
5892
5893#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5894pub enum TickMarkType {
5895    #[serde(rename = "cross")]
5896    Cross,
5897    #[serde(rename = "in")]
5898    In,
5899    #[serde(rename = "none")]
5900    None,
5901    #[serde(rename = "out")]
5902    Out,
5903}
5904
5905impl std::fmt::Display for TickMarkType {
5906    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5907        match self {
5908            Self::Cross => write!(f, "cross"),
5909            Self::In => write!(f, "in"),
5910            Self::None => write!(f, "none"),
5911            Self::Out => write!(f, "out"),
5912        }
5913    }
5914}
5915
5916impl std::str::FromStr for TickMarkType {
5917    type Err = String;
5918
5919    fn from_str(s: &str) -> Result<Self, Self::Err> {
5920        match s {
5921            "cross" => Ok(Self::Cross),
5922            "in" => Ok(Self::In),
5923            "none" => Ok(Self::None),
5924            "out" => Ok(Self::Out),
5925            _ => Err(format!("unknown TickMarkType value: {}", s)),
5926        }
5927    }
5928}
5929
5930#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5931pub enum TickLabelPositionType {
5932    #[serde(rename = "high")]
5933    High,
5934    #[serde(rename = "low")]
5935    Low,
5936    #[serde(rename = "nextTo")]
5937    NextTo,
5938    #[serde(rename = "none")]
5939    None,
5940}
5941
5942impl std::fmt::Display for TickLabelPositionType {
5943    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5944        match self {
5945            Self::High => write!(f, "high"),
5946            Self::Low => write!(f, "low"),
5947            Self::NextTo => write!(f, "nextTo"),
5948            Self::None => write!(f, "none"),
5949        }
5950    }
5951}
5952
5953impl std::str::FromStr for TickLabelPositionType {
5954    type Err = String;
5955
5956    fn from_str(s: &str) -> Result<Self, Self::Err> {
5957        match s {
5958            "high" => Ok(Self::High),
5959            "low" => Ok(Self::Low),
5960            "nextTo" => Ok(Self::NextTo),
5961            "none" => Ok(Self::None),
5962            _ => Err(format!("unknown TickLabelPositionType value: {}", s)),
5963        }
5964    }
5965}
5966
5967pub type AxisSkipValue = u32;
5968
5969#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5970pub enum TimeUnitType {
5971    #[serde(rename = "days")]
5972    Days,
5973    #[serde(rename = "months")]
5974    Months,
5975    #[serde(rename = "years")]
5976    Years,
5977}
5978
5979impl std::fmt::Display for TimeUnitType {
5980    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5981        match self {
5982            Self::Days => write!(f, "days"),
5983            Self::Months => write!(f, "months"),
5984            Self::Years => write!(f, "years"),
5985        }
5986    }
5987}
5988
5989impl std::str::FromStr for TimeUnitType {
5990    type Err = String;
5991
5992    fn from_str(s: &str) -> Result<Self, Self::Err> {
5993        match s {
5994            "days" => Ok(Self::Days),
5995            "months" => Ok(Self::Months),
5996            "years" => Ok(Self::Years),
5997            _ => Err(format!("unknown TimeUnitType value: {}", s)),
5998        }
5999    }
6000}
6001
6002pub type AxisUnitValue = f64;
6003
6004#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6005pub enum BuiltInUnitType {
6006    #[serde(rename = "hundreds")]
6007    Hundreds,
6008    #[serde(rename = "thousands")]
6009    Thousands,
6010    #[serde(rename = "tenThousands")]
6011    TenThousands,
6012    #[serde(rename = "hundredThousands")]
6013    HundredThousands,
6014    #[serde(rename = "millions")]
6015    Millions,
6016    #[serde(rename = "tenMillions")]
6017    TenMillions,
6018    #[serde(rename = "hundredMillions")]
6019    HundredMillions,
6020    #[serde(rename = "billions")]
6021    Billions,
6022    #[serde(rename = "trillions")]
6023    Trillions,
6024}
6025
6026impl std::fmt::Display for BuiltInUnitType {
6027    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6028        match self {
6029            Self::Hundreds => write!(f, "hundreds"),
6030            Self::Thousands => write!(f, "thousands"),
6031            Self::TenThousands => write!(f, "tenThousands"),
6032            Self::HundredThousands => write!(f, "hundredThousands"),
6033            Self::Millions => write!(f, "millions"),
6034            Self::TenMillions => write!(f, "tenMillions"),
6035            Self::HundredMillions => write!(f, "hundredMillions"),
6036            Self::Billions => write!(f, "billions"),
6037            Self::Trillions => write!(f, "trillions"),
6038        }
6039    }
6040}
6041
6042impl std::str::FromStr for BuiltInUnitType {
6043    type Err = String;
6044
6045    fn from_str(s: &str) -> Result<Self, Self::Err> {
6046        match s {
6047            "hundreds" => Ok(Self::Hundreds),
6048            "thousands" => Ok(Self::Thousands),
6049            "tenThousands" => Ok(Self::TenThousands),
6050            "hundredThousands" => Ok(Self::HundredThousands),
6051            "millions" => Ok(Self::Millions),
6052            "tenMillions" => Ok(Self::TenMillions),
6053            "hundredMillions" => Ok(Self::HundredMillions),
6054            "billions" => Ok(Self::Billions),
6055            "trillions" => Ok(Self::Trillions),
6056            _ => Err(format!("unknown BuiltInUnitType value: {}", s)),
6057        }
6058    }
6059}
6060
6061#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6062pub enum PictureFormatType {
6063    #[serde(rename = "stretch")]
6064    Stretch,
6065    #[serde(rename = "stack")]
6066    Stack,
6067    #[serde(rename = "stackScale")]
6068    StackScale,
6069}
6070
6071impl std::fmt::Display for PictureFormatType {
6072    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6073        match self {
6074            Self::Stretch => write!(f, "stretch"),
6075            Self::Stack => write!(f, "stack"),
6076            Self::StackScale => write!(f, "stackScale"),
6077        }
6078    }
6079}
6080
6081impl std::str::FromStr for PictureFormatType {
6082    type Err = String;
6083
6084    fn from_str(s: &str) -> Result<Self, Self::Err> {
6085        match s {
6086            "stretch" => Ok(Self::Stretch),
6087            "stack" => Ok(Self::Stack),
6088            "stackScale" => Ok(Self::StackScale),
6089            _ => Err(format!("unknown PictureFormatType value: {}", s)),
6090        }
6091    }
6092}
6093
6094pub type PictureStackUnitValue = f64;
6095
6096#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6097pub enum AxisOrientationType {
6098    #[serde(rename = "maxMin")]
6099    MaxMin,
6100    #[serde(rename = "minMax")]
6101    MinMax,
6102}
6103
6104impl std::fmt::Display for AxisOrientationType {
6105    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6106        match self {
6107            Self::MaxMin => write!(f, "maxMin"),
6108            Self::MinMax => write!(f, "minMax"),
6109        }
6110    }
6111}
6112
6113impl std::str::FromStr for AxisOrientationType {
6114    type Err = String;
6115
6116    fn from_str(s: &str) -> Result<Self, Self::Err> {
6117        match s {
6118            "maxMin" => Ok(Self::MaxMin),
6119            "minMax" => Ok(Self::MinMax),
6120            _ => Err(format!("unknown AxisOrientationType value: {}", s)),
6121        }
6122    }
6123}
6124
6125pub type LogBaseValue = f64;
6126
6127pub type LabelOffsetValue = String;
6128
6129pub type LabelOffsetPercent = String;
6130
6131pub type LabelOffsetUShort = u16;
6132
6133#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6134pub enum LegendPositionType {
6135    #[serde(rename = "b")]
6136    B,
6137    #[serde(rename = "tr")]
6138    Tr,
6139    #[serde(rename = "l")]
6140    L,
6141    #[serde(rename = "r")]
6142    R,
6143    #[serde(rename = "t")]
6144    T,
6145}
6146
6147impl std::fmt::Display for LegendPositionType {
6148    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6149        match self {
6150            Self::B => write!(f, "b"),
6151            Self::Tr => write!(f, "tr"),
6152            Self::L => write!(f, "l"),
6153            Self::R => write!(f, "r"),
6154            Self::T => write!(f, "t"),
6155        }
6156    }
6157}
6158
6159impl std::str::FromStr for LegendPositionType {
6160    type Err = String;
6161
6162    fn from_str(s: &str) -> Result<Self, Self::Err> {
6163        match s {
6164            "b" => Ok(Self::B),
6165            "tr" => Ok(Self::Tr),
6166            "l" => Ok(Self::L),
6167            "r" => Ok(Self::R),
6168            "t" => Ok(Self::T),
6169            _ => Err(format!("unknown LegendPositionType value: {}", s)),
6170        }
6171    }
6172}
6173
6174#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6175pub enum DisplayBlanksAsType {
6176    #[serde(rename = "span")]
6177    Span,
6178    #[serde(rename = "gap")]
6179    Gap,
6180    #[serde(rename = "zero")]
6181    Zero,
6182}
6183
6184impl std::fmt::Display for DisplayBlanksAsType {
6185    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6186        match self {
6187            Self::Span => write!(f, "span"),
6188            Self::Gap => write!(f, "gap"),
6189            Self::Zero => write!(f, "zero"),
6190        }
6191    }
6192}
6193
6194impl std::str::FromStr for DisplayBlanksAsType {
6195    type Err = String;
6196
6197    fn from_str(s: &str) -> Result<Self, Self::Err> {
6198        match s {
6199            "span" => Ok(Self::Span),
6200            "gap" => Ok(Self::Gap),
6201            "zero" => Ok(Self::Zero),
6202            _ => Err(format!("unknown DisplayBlanksAsType value: {}", s)),
6203        }
6204    }
6205}
6206
6207pub type ChartStyleValue = u8;
6208
6209#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6210pub enum ChartPageOrientation {
6211    #[serde(rename = "default")]
6212    Default,
6213    #[serde(rename = "portrait")]
6214    Portrait,
6215    #[serde(rename = "landscape")]
6216    Landscape,
6217}
6218
6219impl std::fmt::Display for ChartPageOrientation {
6220    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6221        match self {
6222            Self::Default => write!(f, "default"),
6223            Self::Portrait => write!(f, "portrait"),
6224            Self::Landscape => write!(f, "landscape"),
6225        }
6226    }
6227}
6228
6229impl std::str::FromStr for ChartPageOrientation {
6230    type Err = String;
6231
6232    fn from_str(s: &str) -> Result<Self, Self::Err> {
6233        match s {
6234            "default" => Ok(Self::Default),
6235            "portrait" => Ok(Self::Portrait),
6236            "landscape" => Ok(Self::Landscape),
6237            _ => Err(format!("unknown ChartPageOrientation value: {}", s)),
6238        }
6239    }
6240}
6241
6242#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6243pub enum STClrAppMethod {
6244    #[serde(rename = "span")]
6245    Span,
6246    #[serde(rename = "cycle")]
6247    Cycle,
6248    #[serde(rename = "repeat")]
6249    Repeat,
6250}
6251
6252impl std::fmt::Display for STClrAppMethod {
6253    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6254        match self {
6255            Self::Span => write!(f, "span"),
6256            Self::Cycle => write!(f, "cycle"),
6257            Self::Repeat => write!(f, "repeat"),
6258        }
6259    }
6260}
6261
6262impl std::str::FromStr for STClrAppMethod {
6263    type Err = String;
6264
6265    fn from_str(s: &str) -> Result<Self, Self::Err> {
6266        match s {
6267            "span" => Ok(Self::Span),
6268            "cycle" => Ok(Self::Cycle),
6269            "repeat" => Ok(Self::Repeat),
6270            _ => Err(format!("unknown STClrAppMethod value: {}", s)),
6271        }
6272    }
6273}
6274
6275#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6276pub enum STHueDir {
6277    #[serde(rename = "cw")]
6278    Cw,
6279    #[serde(rename = "ccw")]
6280    Ccw,
6281}
6282
6283impl std::fmt::Display for STHueDir {
6284    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6285        match self {
6286            Self::Cw => write!(f, "cw"),
6287            Self::Ccw => write!(f, "ccw"),
6288        }
6289    }
6290}
6291
6292impl std::str::FromStr for STHueDir {
6293    type Err = String;
6294
6295    fn from_str(s: &str) -> Result<Self, Self::Err> {
6296        match s {
6297            "cw" => Ok(Self::Cw),
6298            "ccw" => Ok(Self::Ccw),
6299            _ => Err(format!("unknown STHueDir value: {}", s)),
6300        }
6301    }
6302}
6303
6304#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6305pub enum STPtType {
6306    #[serde(rename = "node")]
6307    Node,
6308    #[serde(rename = "asst")]
6309    Asst,
6310    #[serde(rename = "doc")]
6311    Doc,
6312    #[serde(rename = "pres")]
6313    Pres,
6314    #[serde(rename = "parTrans")]
6315    ParTrans,
6316    #[serde(rename = "sibTrans")]
6317    SibTrans,
6318}
6319
6320impl std::fmt::Display for STPtType {
6321    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6322        match self {
6323            Self::Node => write!(f, "node"),
6324            Self::Asst => write!(f, "asst"),
6325            Self::Doc => write!(f, "doc"),
6326            Self::Pres => write!(f, "pres"),
6327            Self::ParTrans => write!(f, "parTrans"),
6328            Self::SibTrans => write!(f, "sibTrans"),
6329        }
6330    }
6331}
6332
6333impl std::str::FromStr for STPtType {
6334    type Err = String;
6335
6336    fn from_str(s: &str) -> Result<Self, Self::Err> {
6337        match s {
6338            "node" => Ok(Self::Node),
6339            "asst" => Ok(Self::Asst),
6340            "doc" => Ok(Self::Doc),
6341            "pres" => Ok(Self::Pres),
6342            "parTrans" => Ok(Self::ParTrans),
6343            "sibTrans" => Ok(Self::SibTrans),
6344            _ => Err(format!("unknown STPtType value: {}", s)),
6345        }
6346    }
6347}
6348
6349#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6350pub enum STCxnType {
6351    #[serde(rename = "parOf")]
6352    ParOf,
6353    #[serde(rename = "presOf")]
6354    PresOf,
6355    #[serde(rename = "presParOf")]
6356    PresParOf,
6357    #[serde(rename = "unknownRelationship")]
6358    UnknownRelationship,
6359}
6360
6361impl std::fmt::Display for STCxnType {
6362    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6363        match self {
6364            Self::ParOf => write!(f, "parOf"),
6365            Self::PresOf => write!(f, "presOf"),
6366            Self::PresParOf => write!(f, "presParOf"),
6367            Self::UnknownRelationship => write!(f, "unknownRelationship"),
6368        }
6369    }
6370}
6371
6372impl std::str::FromStr for STCxnType {
6373    type Err = String;
6374
6375    fn from_str(s: &str) -> Result<Self, Self::Err> {
6376        match s {
6377            "parOf" => Ok(Self::ParOf),
6378            "presOf" => Ok(Self::PresOf),
6379            "presParOf" => Ok(Self::PresParOf),
6380            "unknownRelationship" => Ok(Self::UnknownRelationship),
6381            _ => Err(format!("unknown STCxnType value: {}", s)),
6382        }
6383    }
6384}
6385
6386pub type STLayoutShapeType = String;
6387
6388pub type STIndex1 = u32;
6389
6390pub type STParameterVal = String;
6391
6392pub type STModelId = String;
6393
6394pub type STPrSetCustVal = String;
6395
6396#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6397pub enum STDirection {
6398    #[serde(rename = "norm")]
6399    Norm,
6400    #[serde(rename = "rev")]
6401    Rev,
6402}
6403
6404impl std::fmt::Display for STDirection {
6405    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6406        match self {
6407            Self::Norm => write!(f, "norm"),
6408            Self::Rev => write!(f, "rev"),
6409        }
6410    }
6411}
6412
6413impl std::str::FromStr for STDirection {
6414    type Err = String;
6415
6416    fn from_str(s: &str) -> Result<Self, Self::Err> {
6417        match s {
6418            "norm" => Ok(Self::Norm),
6419            "rev" => Ok(Self::Rev),
6420            _ => Err(format!("unknown STDirection value: {}", s)),
6421        }
6422    }
6423}
6424
6425#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6426pub enum STHierBranchStyle {
6427    #[serde(rename = "l")]
6428    L,
6429    #[serde(rename = "r")]
6430    R,
6431    #[serde(rename = "hang")]
6432    Hang,
6433    #[serde(rename = "std")]
6434    Std,
6435    #[serde(rename = "init")]
6436    Init,
6437}
6438
6439impl std::fmt::Display for STHierBranchStyle {
6440    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6441        match self {
6442            Self::L => write!(f, "l"),
6443            Self::R => write!(f, "r"),
6444            Self::Hang => write!(f, "hang"),
6445            Self::Std => write!(f, "std"),
6446            Self::Init => write!(f, "init"),
6447        }
6448    }
6449}
6450
6451impl std::str::FromStr for STHierBranchStyle {
6452    type Err = String;
6453
6454    fn from_str(s: &str) -> Result<Self, Self::Err> {
6455        match s {
6456            "l" => Ok(Self::L),
6457            "r" => Ok(Self::R),
6458            "hang" => Ok(Self::Hang),
6459            "std" => Ok(Self::Std),
6460            "init" => Ok(Self::Init),
6461            _ => Err(format!("unknown STHierBranchStyle value: {}", s)),
6462        }
6463    }
6464}
6465
6466#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6467pub enum STAnimOneStr {
6468    #[serde(rename = "none")]
6469    None,
6470    #[serde(rename = "one")]
6471    One,
6472    #[serde(rename = "branch")]
6473    Branch,
6474}
6475
6476impl std::fmt::Display for STAnimOneStr {
6477    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6478        match self {
6479            Self::None => write!(f, "none"),
6480            Self::One => write!(f, "one"),
6481            Self::Branch => write!(f, "branch"),
6482        }
6483    }
6484}
6485
6486impl std::str::FromStr for STAnimOneStr {
6487    type Err = String;
6488
6489    fn from_str(s: &str) -> Result<Self, Self::Err> {
6490        match s {
6491            "none" => Ok(Self::None),
6492            "one" => Ok(Self::One),
6493            "branch" => Ok(Self::Branch),
6494            _ => Err(format!("unknown STAnimOneStr value: {}", s)),
6495        }
6496    }
6497}
6498
6499#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6500pub enum STAnimLvlStr {
6501    #[serde(rename = "none")]
6502    None,
6503    #[serde(rename = "lvl")]
6504    Lvl,
6505    #[serde(rename = "ctr")]
6506    Ctr,
6507}
6508
6509impl std::fmt::Display for STAnimLvlStr {
6510    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6511        match self {
6512            Self::None => write!(f, "none"),
6513            Self::Lvl => write!(f, "lvl"),
6514            Self::Ctr => write!(f, "ctr"),
6515        }
6516    }
6517}
6518
6519impl std::str::FromStr for STAnimLvlStr {
6520    type Err = String;
6521
6522    fn from_str(s: &str) -> Result<Self, Self::Err> {
6523        match s {
6524            "none" => Ok(Self::None),
6525            "lvl" => Ok(Self::Lvl),
6526            "ctr" => Ok(Self::Ctr),
6527            _ => Err(format!("unknown STAnimLvlStr value: {}", s)),
6528        }
6529    }
6530}
6531
6532pub type STNodeCount = i32;
6533
6534#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6535pub enum STResizeHandlesStr {
6536    #[serde(rename = "exact")]
6537    Exact,
6538    #[serde(rename = "rel")]
6539    Rel,
6540}
6541
6542impl std::fmt::Display for STResizeHandlesStr {
6543    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6544        match self {
6545            Self::Exact => write!(f, "exact"),
6546            Self::Rel => write!(f, "rel"),
6547        }
6548    }
6549}
6550
6551impl std::str::FromStr for STResizeHandlesStr {
6552    type Err = String;
6553
6554    fn from_str(s: &str) -> Result<Self, Self::Err> {
6555        match s {
6556            "exact" => Ok(Self::Exact),
6557            "rel" => Ok(Self::Rel),
6558            _ => Err(format!("unknown STResizeHandlesStr value: {}", s)),
6559        }
6560    }
6561}
6562
6563#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6564pub enum STAlgorithmType {
6565    #[serde(rename = "composite")]
6566    Composite,
6567    #[serde(rename = "conn")]
6568    Conn,
6569    #[serde(rename = "cycle")]
6570    Cycle,
6571    #[serde(rename = "hierChild")]
6572    HierChild,
6573    #[serde(rename = "hierRoot")]
6574    HierRoot,
6575    #[serde(rename = "pyra")]
6576    Pyra,
6577    #[serde(rename = "lin")]
6578    Lin,
6579    #[serde(rename = "sp")]
6580    Sp,
6581    #[serde(rename = "tx")]
6582    Tx,
6583    #[serde(rename = "snake")]
6584    Snake,
6585}
6586
6587impl std::fmt::Display for STAlgorithmType {
6588    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6589        match self {
6590            Self::Composite => write!(f, "composite"),
6591            Self::Conn => write!(f, "conn"),
6592            Self::Cycle => write!(f, "cycle"),
6593            Self::HierChild => write!(f, "hierChild"),
6594            Self::HierRoot => write!(f, "hierRoot"),
6595            Self::Pyra => write!(f, "pyra"),
6596            Self::Lin => write!(f, "lin"),
6597            Self::Sp => write!(f, "sp"),
6598            Self::Tx => write!(f, "tx"),
6599            Self::Snake => write!(f, "snake"),
6600        }
6601    }
6602}
6603
6604impl std::str::FromStr for STAlgorithmType {
6605    type Err = String;
6606
6607    fn from_str(s: &str) -> Result<Self, Self::Err> {
6608        match s {
6609            "composite" => Ok(Self::Composite),
6610            "conn" => Ok(Self::Conn),
6611            "cycle" => Ok(Self::Cycle),
6612            "hierChild" => Ok(Self::HierChild),
6613            "hierRoot" => Ok(Self::HierRoot),
6614            "pyra" => Ok(Self::Pyra),
6615            "lin" => Ok(Self::Lin),
6616            "sp" => Ok(Self::Sp),
6617            "tx" => Ok(Self::Tx),
6618            "snake" => Ok(Self::Snake),
6619            _ => Err(format!("unknown STAlgorithmType value: {}", s)),
6620        }
6621    }
6622}
6623
6624#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6625pub enum STAxisType {
6626    #[serde(rename = "self")]
6627    SelfNode,
6628    #[serde(rename = "ch")]
6629    Ch,
6630    #[serde(rename = "des")]
6631    Des,
6632    #[serde(rename = "desOrSelf")]
6633    DesOrSelf,
6634    #[serde(rename = "par")]
6635    Par,
6636    #[serde(rename = "ancst")]
6637    Ancst,
6638    #[serde(rename = "ancstOrSelf")]
6639    AncstOrSelf,
6640    #[serde(rename = "followSib")]
6641    FollowSib,
6642    #[serde(rename = "precedSib")]
6643    PrecedSib,
6644    #[serde(rename = "follow")]
6645    Follow,
6646    #[serde(rename = "preced")]
6647    Preced,
6648    #[serde(rename = "root")]
6649    Root,
6650    #[serde(rename = "none")]
6651    None,
6652}
6653
6654impl std::fmt::Display for STAxisType {
6655    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6656        match self {
6657            Self::SelfNode => write!(f, "self"),
6658            Self::Ch => write!(f, "ch"),
6659            Self::Des => write!(f, "des"),
6660            Self::DesOrSelf => write!(f, "desOrSelf"),
6661            Self::Par => write!(f, "par"),
6662            Self::Ancst => write!(f, "ancst"),
6663            Self::AncstOrSelf => write!(f, "ancstOrSelf"),
6664            Self::FollowSib => write!(f, "followSib"),
6665            Self::PrecedSib => write!(f, "precedSib"),
6666            Self::Follow => write!(f, "follow"),
6667            Self::Preced => write!(f, "preced"),
6668            Self::Root => write!(f, "root"),
6669            Self::None => write!(f, "none"),
6670        }
6671    }
6672}
6673
6674impl std::str::FromStr for STAxisType {
6675    type Err = String;
6676
6677    fn from_str(s: &str) -> Result<Self, Self::Err> {
6678        match s {
6679            "self" => Ok(Self::SelfNode),
6680            "ch" => Ok(Self::Ch),
6681            "des" => Ok(Self::Des),
6682            "desOrSelf" => Ok(Self::DesOrSelf),
6683            "par" => Ok(Self::Par),
6684            "ancst" => Ok(Self::Ancst),
6685            "ancstOrSelf" => Ok(Self::AncstOrSelf),
6686            "followSib" => Ok(Self::FollowSib),
6687            "precedSib" => Ok(Self::PrecedSib),
6688            "follow" => Ok(Self::Follow),
6689            "preced" => Ok(Self::Preced),
6690            "root" => Ok(Self::Root),
6691            "none" => Ok(Self::None),
6692            _ => Err(format!("unknown STAxisType value: {}", s)),
6693        }
6694    }
6695}
6696
6697pub type STAxisTypes = String;
6698
6699#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6700pub enum STBoolOperator {
6701    #[serde(rename = "none")]
6702    None,
6703    #[serde(rename = "equ")]
6704    Equ,
6705    #[serde(rename = "gte")]
6706    Gte,
6707    #[serde(rename = "lte")]
6708    Lte,
6709}
6710
6711impl std::fmt::Display for STBoolOperator {
6712    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6713        match self {
6714            Self::None => write!(f, "none"),
6715            Self::Equ => write!(f, "equ"),
6716            Self::Gte => write!(f, "gte"),
6717            Self::Lte => write!(f, "lte"),
6718        }
6719    }
6720}
6721
6722impl std::str::FromStr for STBoolOperator {
6723    type Err = String;
6724
6725    fn from_str(s: &str) -> Result<Self, Self::Err> {
6726        match s {
6727            "none" => Ok(Self::None),
6728            "equ" => Ok(Self::Equ),
6729            "gte" => Ok(Self::Gte),
6730            "lte" => Ok(Self::Lte),
6731            _ => Err(format!("unknown STBoolOperator value: {}", s)),
6732        }
6733    }
6734}
6735
6736#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6737pub enum STChildOrderType {
6738    #[serde(rename = "b")]
6739    B,
6740    #[serde(rename = "t")]
6741    T,
6742}
6743
6744impl std::fmt::Display for STChildOrderType {
6745    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6746        match self {
6747            Self::B => write!(f, "b"),
6748            Self::T => write!(f, "t"),
6749        }
6750    }
6751}
6752
6753impl std::str::FromStr for STChildOrderType {
6754    type Err = String;
6755
6756    fn from_str(s: &str) -> Result<Self, Self::Err> {
6757        match s {
6758            "b" => Ok(Self::B),
6759            "t" => Ok(Self::T),
6760            _ => Err(format!("unknown STChildOrderType value: {}", s)),
6761        }
6762    }
6763}
6764
6765#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6766pub enum STConstraintType {
6767    #[serde(rename = "none")]
6768    None,
6769    #[serde(rename = "alignOff")]
6770    AlignOff,
6771    #[serde(rename = "begMarg")]
6772    BegMarg,
6773    #[serde(rename = "bendDist")]
6774    BendDist,
6775    #[serde(rename = "begPad")]
6776    BegPad,
6777    #[serde(rename = "b")]
6778    B,
6779    #[serde(rename = "bMarg")]
6780    BMarg,
6781    #[serde(rename = "bOff")]
6782    BOff,
6783    #[serde(rename = "ctrX")]
6784    CtrX,
6785    #[serde(rename = "ctrXOff")]
6786    CtrXOff,
6787    #[serde(rename = "ctrY")]
6788    CtrY,
6789    #[serde(rename = "ctrYOff")]
6790    CtrYOff,
6791    #[serde(rename = "connDist")]
6792    ConnDist,
6793    #[serde(rename = "diam")]
6794    Diam,
6795    #[serde(rename = "endMarg")]
6796    EndMarg,
6797    #[serde(rename = "endPad")]
6798    EndPad,
6799    #[serde(rename = "h")]
6800    H,
6801    #[serde(rename = "hArH")]
6802    HArH,
6803    #[serde(rename = "hOff")]
6804    HOff,
6805    #[serde(rename = "l")]
6806    L,
6807    #[serde(rename = "lMarg")]
6808    LMarg,
6809    #[serde(rename = "lOff")]
6810    LOff,
6811    #[serde(rename = "r")]
6812    R,
6813    #[serde(rename = "rMarg")]
6814    RMarg,
6815    #[serde(rename = "rOff")]
6816    ROff,
6817    #[serde(rename = "primFontSz")]
6818    PrimFontSz,
6819    #[serde(rename = "pyraAcctRatio")]
6820    PyraAcctRatio,
6821    #[serde(rename = "secFontSz")]
6822    SecFontSz,
6823    #[serde(rename = "sibSp")]
6824    SibSp,
6825    #[serde(rename = "secSibSp")]
6826    SecSibSp,
6827    #[serde(rename = "sp")]
6828    Sp,
6829    #[serde(rename = "stemThick")]
6830    StemThick,
6831    #[serde(rename = "t")]
6832    T,
6833    #[serde(rename = "tMarg")]
6834    TMarg,
6835    #[serde(rename = "tOff")]
6836    TOff,
6837    #[serde(rename = "userA")]
6838    UserA,
6839    #[serde(rename = "userB")]
6840    UserB,
6841    #[serde(rename = "userC")]
6842    UserC,
6843    #[serde(rename = "userD")]
6844    UserD,
6845    #[serde(rename = "userE")]
6846    UserE,
6847    #[serde(rename = "userF")]
6848    UserF,
6849    #[serde(rename = "userG")]
6850    UserG,
6851    #[serde(rename = "userH")]
6852    UserH,
6853    #[serde(rename = "userI")]
6854    UserI,
6855    #[serde(rename = "userJ")]
6856    UserJ,
6857    #[serde(rename = "userK")]
6858    UserK,
6859    #[serde(rename = "userL")]
6860    UserL,
6861    #[serde(rename = "userM")]
6862    UserM,
6863    #[serde(rename = "userN")]
6864    UserN,
6865    #[serde(rename = "userO")]
6866    UserO,
6867    #[serde(rename = "userP")]
6868    UserP,
6869    #[serde(rename = "userQ")]
6870    UserQ,
6871    #[serde(rename = "userR")]
6872    UserR,
6873    #[serde(rename = "userS")]
6874    UserS,
6875    #[serde(rename = "userT")]
6876    UserT,
6877    #[serde(rename = "userU")]
6878    UserU,
6879    #[serde(rename = "userV")]
6880    UserV,
6881    #[serde(rename = "userW")]
6882    UserW,
6883    #[serde(rename = "userX")]
6884    UserX,
6885    #[serde(rename = "userY")]
6886    UserY,
6887    #[serde(rename = "userZ")]
6888    UserZ,
6889    #[serde(rename = "w")]
6890    W,
6891    #[serde(rename = "wArH")]
6892    WArH,
6893    #[serde(rename = "wOff")]
6894    WOff,
6895}
6896
6897impl std::fmt::Display for STConstraintType {
6898    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6899        match self {
6900            Self::None => write!(f, "none"),
6901            Self::AlignOff => write!(f, "alignOff"),
6902            Self::BegMarg => write!(f, "begMarg"),
6903            Self::BendDist => write!(f, "bendDist"),
6904            Self::BegPad => write!(f, "begPad"),
6905            Self::B => write!(f, "b"),
6906            Self::BMarg => write!(f, "bMarg"),
6907            Self::BOff => write!(f, "bOff"),
6908            Self::CtrX => write!(f, "ctrX"),
6909            Self::CtrXOff => write!(f, "ctrXOff"),
6910            Self::CtrY => write!(f, "ctrY"),
6911            Self::CtrYOff => write!(f, "ctrYOff"),
6912            Self::ConnDist => write!(f, "connDist"),
6913            Self::Diam => write!(f, "diam"),
6914            Self::EndMarg => write!(f, "endMarg"),
6915            Self::EndPad => write!(f, "endPad"),
6916            Self::H => write!(f, "h"),
6917            Self::HArH => write!(f, "hArH"),
6918            Self::HOff => write!(f, "hOff"),
6919            Self::L => write!(f, "l"),
6920            Self::LMarg => write!(f, "lMarg"),
6921            Self::LOff => write!(f, "lOff"),
6922            Self::R => write!(f, "r"),
6923            Self::RMarg => write!(f, "rMarg"),
6924            Self::ROff => write!(f, "rOff"),
6925            Self::PrimFontSz => write!(f, "primFontSz"),
6926            Self::PyraAcctRatio => write!(f, "pyraAcctRatio"),
6927            Self::SecFontSz => write!(f, "secFontSz"),
6928            Self::SibSp => write!(f, "sibSp"),
6929            Self::SecSibSp => write!(f, "secSibSp"),
6930            Self::Sp => write!(f, "sp"),
6931            Self::StemThick => write!(f, "stemThick"),
6932            Self::T => write!(f, "t"),
6933            Self::TMarg => write!(f, "tMarg"),
6934            Self::TOff => write!(f, "tOff"),
6935            Self::UserA => write!(f, "userA"),
6936            Self::UserB => write!(f, "userB"),
6937            Self::UserC => write!(f, "userC"),
6938            Self::UserD => write!(f, "userD"),
6939            Self::UserE => write!(f, "userE"),
6940            Self::UserF => write!(f, "userF"),
6941            Self::UserG => write!(f, "userG"),
6942            Self::UserH => write!(f, "userH"),
6943            Self::UserI => write!(f, "userI"),
6944            Self::UserJ => write!(f, "userJ"),
6945            Self::UserK => write!(f, "userK"),
6946            Self::UserL => write!(f, "userL"),
6947            Self::UserM => write!(f, "userM"),
6948            Self::UserN => write!(f, "userN"),
6949            Self::UserO => write!(f, "userO"),
6950            Self::UserP => write!(f, "userP"),
6951            Self::UserQ => write!(f, "userQ"),
6952            Self::UserR => write!(f, "userR"),
6953            Self::UserS => write!(f, "userS"),
6954            Self::UserT => write!(f, "userT"),
6955            Self::UserU => write!(f, "userU"),
6956            Self::UserV => write!(f, "userV"),
6957            Self::UserW => write!(f, "userW"),
6958            Self::UserX => write!(f, "userX"),
6959            Self::UserY => write!(f, "userY"),
6960            Self::UserZ => write!(f, "userZ"),
6961            Self::W => write!(f, "w"),
6962            Self::WArH => write!(f, "wArH"),
6963            Self::WOff => write!(f, "wOff"),
6964        }
6965    }
6966}
6967
6968impl std::str::FromStr for STConstraintType {
6969    type Err = String;
6970
6971    fn from_str(s: &str) -> Result<Self, Self::Err> {
6972        match s {
6973            "none" => Ok(Self::None),
6974            "alignOff" => Ok(Self::AlignOff),
6975            "begMarg" => Ok(Self::BegMarg),
6976            "bendDist" => Ok(Self::BendDist),
6977            "begPad" => Ok(Self::BegPad),
6978            "b" => Ok(Self::B),
6979            "bMarg" => Ok(Self::BMarg),
6980            "bOff" => Ok(Self::BOff),
6981            "ctrX" => Ok(Self::CtrX),
6982            "ctrXOff" => Ok(Self::CtrXOff),
6983            "ctrY" => Ok(Self::CtrY),
6984            "ctrYOff" => Ok(Self::CtrYOff),
6985            "connDist" => Ok(Self::ConnDist),
6986            "diam" => Ok(Self::Diam),
6987            "endMarg" => Ok(Self::EndMarg),
6988            "endPad" => Ok(Self::EndPad),
6989            "h" => Ok(Self::H),
6990            "hArH" => Ok(Self::HArH),
6991            "hOff" => Ok(Self::HOff),
6992            "l" => Ok(Self::L),
6993            "lMarg" => Ok(Self::LMarg),
6994            "lOff" => Ok(Self::LOff),
6995            "r" => Ok(Self::R),
6996            "rMarg" => Ok(Self::RMarg),
6997            "rOff" => Ok(Self::ROff),
6998            "primFontSz" => Ok(Self::PrimFontSz),
6999            "pyraAcctRatio" => Ok(Self::PyraAcctRatio),
7000            "secFontSz" => Ok(Self::SecFontSz),
7001            "sibSp" => Ok(Self::SibSp),
7002            "secSibSp" => Ok(Self::SecSibSp),
7003            "sp" => Ok(Self::Sp),
7004            "stemThick" => Ok(Self::StemThick),
7005            "t" => Ok(Self::T),
7006            "tMarg" => Ok(Self::TMarg),
7007            "tOff" => Ok(Self::TOff),
7008            "userA" => Ok(Self::UserA),
7009            "userB" => Ok(Self::UserB),
7010            "userC" => Ok(Self::UserC),
7011            "userD" => Ok(Self::UserD),
7012            "userE" => Ok(Self::UserE),
7013            "userF" => Ok(Self::UserF),
7014            "userG" => Ok(Self::UserG),
7015            "userH" => Ok(Self::UserH),
7016            "userI" => Ok(Self::UserI),
7017            "userJ" => Ok(Self::UserJ),
7018            "userK" => Ok(Self::UserK),
7019            "userL" => Ok(Self::UserL),
7020            "userM" => Ok(Self::UserM),
7021            "userN" => Ok(Self::UserN),
7022            "userO" => Ok(Self::UserO),
7023            "userP" => Ok(Self::UserP),
7024            "userQ" => Ok(Self::UserQ),
7025            "userR" => Ok(Self::UserR),
7026            "userS" => Ok(Self::UserS),
7027            "userT" => Ok(Self::UserT),
7028            "userU" => Ok(Self::UserU),
7029            "userV" => Ok(Self::UserV),
7030            "userW" => Ok(Self::UserW),
7031            "userX" => Ok(Self::UserX),
7032            "userY" => Ok(Self::UserY),
7033            "userZ" => Ok(Self::UserZ),
7034            "w" => Ok(Self::W),
7035            "wArH" => Ok(Self::WArH),
7036            "wOff" => Ok(Self::WOff),
7037            _ => Err(format!("unknown STConstraintType value: {}", s)),
7038        }
7039    }
7040}
7041
7042#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7043pub enum STConstraintRelationship {
7044    #[serde(rename = "self")]
7045    SelfNode,
7046    #[serde(rename = "ch")]
7047    Ch,
7048    #[serde(rename = "des")]
7049    Des,
7050}
7051
7052impl std::fmt::Display for STConstraintRelationship {
7053    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7054        match self {
7055            Self::SelfNode => write!(f, "self"),
7056            Self::Ch => write!(f, "ch"),
7057            Self::Des => write!(f, "des"),
7058        }
7059    }
7060}
7061
7062impl std::str::FromStr for STConstraintRelationship {
7063    type Err = String;
7064
7065    fn from_str(s: &str) -> Result<Self, Self::Err> {
7066        match s {
7067            "self" => Ok(Self::SelfNode),
7068            "ch" => Ok(Self::Ch),
7069            "des" => Ok(Self::Des),
7070            _ => Err(format!("unknown STConstraintRelationship value: {}", s)),
7071        }
7072    }
7073}
7074
7075#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7076pub enum STElementType {
7077    #[serde(rename = "all")]
7078    All,
7079    #[serde(rename = "doc")]
7080    Doc,
7081    #[serde(rename = "node")]
7082    Node,
7083    #[serde(rename = "norm")]
7084    Norm,
7085    #[serde(rename = "nonNorm")]
7086    NonNorm,
7087    #[serde(rename = "asst")]
7088    Asst,
7089    #[serde(rename = "nonAsst")]
7090    NonAsst,
7091    #[serde(rename = "parTrans")]
7092    ParTrans,
7093    #[serde(rename = "pres")]
7094    Pres,
7095    #[serde(rename = "sibTrans")]
7096    SibTrans,
7097}
7098
7099impl std::fmt::Display for STElementType {
7100    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7101        match self {
7102            Self::All => write!(f, "all"),
7103            Self::Doc => write!(f, "doc"),
7104            Self::Node => write!(f, "node"),
7105            Self::Norm => write!(f, "norm"),
7106            Self::NonNorm => write!(f, "nonNorm"),
7107            Self::Asst => write!(f, "asst"),
7108            Self::NonAsst => write!(f, "nonAsst"),
7109            Self::ParTrans => write!(f, "parTrans"),
7110            Self::Pres => write!(f, "pres"),
7111            Self::SibTrans => write!(f, "sibTrans"),
7112        }
7113    }
7114}
7115
7116impl std::str::FromStr for STElementType {
7117    type Err = String;
7118
7119    fn from_str(s: &str) -> Result<Self, Self::Err> {
7120        match s {
7121            "all" => Ok(Self::All),
7122            "doc" => Ok(Self::Doc),
7123            "node" => Ok(Self::Node),
7124            "norm" => Ok(Self::Norm),
7125            "nonNorm" => Ok(Self::NonNorm),
7126            "asst" => Ok(Self::Asst),
7127            "nonAsst" => Ok(Self::NonAsst),
7128            "parTrans" => Ok(Self::ParTrans),
7129            "pres" => Ok(Self::Pres),
7130            "sibTrans" => Ok(Self::SibTrans),
7131            _ => Err(format!("unknown STElementType value: {}", s)),
7132        }
7133    }
7134}
7135
7136pub type STElementTypes = String;
7137
7138#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7139pub enum STParameterId {
7140    #[serde(rename = "horzAlign")]
7141    HorzAlign,
7142    #[serde(rename = "vertAlign")]
7143    VertAlign,
7144    #[serde(rename = "chDir")]
7145    ChDir,
7146    #[serde(rename = "chAlign")]
7147    ChAlign,
7148    #[serde(rename = "secChAlign")]
7149    SecChAlign,
7150    #[serde(rename = "linDir")]
7151    LinDir,
7152    #[serde(rename = "secLinDir")]
7153    SecLinDir,
7154    #[serde(rename = "stElem")]
7155    StElem,
7156    #[serde(rename = "bendPt")]
7157    BendPt,
7158    #[serde(rename = "connRout")]
7159    ConnRout,
7160    #[serde(rename = "begSty")]
7161    BegSty,
7162    #[serde(rename = "endSty")]
7163    EndSty,
7164    #[serde(rename = "dim")]
7165    Dim,
7166    #[serde(rename = "rotPath")]
7167    RotPath,
7168    #[serde(rename = "ctrShpMap")]
7169    CtrShpMap,
7170    #[serde(rename = "nodeHorzAlign")]
7171    NodeHorzAlign,
7172    #[serde(rename = "nodeVertAlign")]
7173    NodeVertAlign,
7174    #[serde(rename = "fallback")]
7175    Fallback,
7176    #[serde(rename = "txDir")]
7177    TxDir,
7178    #[serde(rename = "pyraAcctPos")]
7179    PyraAcctPos,
7180    #[serde(rename = "pyraAcctTxMar")]
7181    PyraAcctTxMar,
7182    #[serde(rename = "txBlDir")]
7183    TxBlDir,
7184    #[serde(rename = "txAnchorHorz")]
7185    TxAnchorHorz,
7186    #[serde(rename = "txAnchorVert")]
7187    TxAnchorVert,
7188    #[serde(rename = "txAnchorHorzCh")]
7189    TxAnchorHorzCh,
7190    #[serde(rename = "txAnchorVertCh")]
7191    TxAnchorVertCh,
7192    #[serde(rename = "parTxLTRAlign")]
7193    ParTxLTRAlign,
7194    #[serde(rename = "parTxRTLAlign")]
7195    ParTxRTLAlign,
7196    #[serde(rename = "shpTxLTRAlignCh")]
7197    ShpTxLTRAlignCh,
7198    #[serde(rename = "shpTxRTLAlignCh")]
7199    ShpTxRTLAlignCh,
7200    #[serde(rename = "autoTxRot")]
7201    AutoTxRot,
7202    #[serde(rename = "grDir")]
7203    GrDir,
7204    #[serde(rename = "flowDir")]
7205    FlowDir,
7206    #[serde(rename = "contDir")]
7207    ContDir,
7208    #[serde(rename = "bkpt")]
7209    Bkpt,
7210    #[serde(rename = "off")]
7211    Off,
7212    #[serde(rename = "hierAlign")]
7213    HierAlign,
7214    #[serde(rename = "bkPtFixedVal")]
7215    BkPtFixedVal,
7216    #[serde(rename = "stBulletLvl")]
7217    StBulletLvl,
7218    #[serde(rename = "stAng")]
7219    StAng,
7220    #[serde(rename = "spanAng")]
7221    SpanAng,
7222    #[serde(rename = "ar")]
7223    Ar,
7224    #[serde(rename = "lnSpPar")]
7225    LnSpPar,
7226    #[serde(rename = "lnSpAfParP")]
7227    LnSpAfParP,
7228    #[serde(rename = "lnSpCh")]
7229    LnSpCh,
7230    #[serde(rename = "lnSpAfChP")]
7231    LnSpAfChP,
7232    #[serde(rename = "rtShortDist")]
7233    RtShortDist,
7234    #[serde(rename = "alignTx")]
7235    AlignTx,
7236    #[serde(rename = "pyraLvlNode")]
7237    PyraLvlNode,
7238    #[serde(rename = "pyraAcctBkgdNode")]
7239    PyraAcctBkgdNode,
7240    #[serde(rename = "pyraAcctTxNode")]
7241    PyraAcctTxNode,
7242    #[serde(rename = "srcNode")]
7243    SrcNode,
7244    #[serde(rename = "dstNode")]
7245    DstNode,
7246    #[serde(rename = "begPts")]
7247    BegPts,
7248    #[serde(rename = "endPts")]
7249    EndPts,
7250}
7251
7252impl std::fmt::Display for STParameterId {
7253    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7254        match self {
7255            Self::HorzAlign => write!(f, "horzAlign"),
7256            Self::VertAlign => write!(f, "vertAlign"),
7257            Self::ChDir => write!(f, "chDir"),
7258            Self::ChAlign => write!(f, "chAlign"),
7259            Self::SecChAlign => write!(f, "secChAlign"),
7260            Self::LinDir => write!(f, "linDir"),
7261            Self::SecLinDir => write!(f, "secLinDir"),
7262            Self::StElem => write!(f, "stElem"),
7263            Self::BendPt => write!(f, "bendPt"),
7264            Self::ConnRout => write!(f, "connRout"),
7265            Self::BegSty => write!(f, "begSty"),
7266            Self::EndSty => write!(f, "endSty"),
7267            Self::Dim => write!(f, "dim"),
7268            Self::RotPath => write!(f, "rotPath"),
7269            Self::CtrShpMap => write!(f, "ctrShpMap"),
7270            Self::NodeHorzAlign => write!(f, "nodeHorzAlign"),
7271            Self::NodeVertAlign => write!(f, "nodeVertAlign"),
7272            Self::Fallback => write!(f, "fallback"),
7273            Self::TxDir => write!(f, "txDir"),
7274            Self::PyraAcctPos => write!(f, "pyraAcctPos"),
7275            Self::PyraAcctTxMar => write!(f, "pyraAcctTxMar"),
7276            Self::TxBlDir => write!(f, "txBlDir"),
7277            Self::TxAnchorHorz => write!(f, "txAnchorHorz"),
7278            Self::TxAnchorVert => write!(f, "txAnchorVert"),
7279            Self::TxAnchorHorzCh => write!(f, "txAnchorHorzCh"),
7280            Self::TxAnchorVertCh => write!(f, "txAnchorVertCh"),
7281            Self::ParTxLTRAlign => write!(f, "parTxLTRAlign"),
7282            Self::ParTxRTLAlign => write!(f, "parTxRTLAlign"),
7283            Self::ShpTxLTRAlignCh => write!(f, "shpTxLTRAlignCh"),
7284            Self::ShpTxRTLAlignCh => write!(f, "shpTxRTLAlignCh"),
7285            Self::AutoTxRot => write!(f, "autoTxRot"),
7286            Self::GrDir => write!(f, "grDir"),
7287            Self::FlowDir => write!(f, "flowDir"),
7288            Self::ContDir => write!(f, "contDir"),
7289            Self::Bkpt => write!(f, "bkpt"),
7290            Self::Off => write!(f, "off"),
7291            Self::HierAlign => write!(f, "hierAlign"),
7292            Self::BkPtFixedVal => write!(f, "bkPtFixedVal"),
7293            Self::StBulletLvl => write!(f, "stBulletLvl"),
7294            Self::StAng => write!(f, "stAng"),
7295            Self::SpanAng => write!(f, "spanAng"),
7296            Self::Ar => write!(f, "ar"),
7297            Self::LnSpPar => write!(f, "lnSpPar"),
7298            Self::LnSpAfParP => write!(f, "lnSpAfParP"),
7299            Self::LnSpCh => write!(f, "lnSpCh"),
7300            Self::LnSpAfChP => write!(f, "lnSpAfChP"),
7301            Self::RtShortDist => write!(f, "rtShortDist"),
7302            Self::AlignTx => write!(f, "alignTx"),
7303            Self::PyraLvlNode => write!(f, "pyraLvlNode"),
7304            Self::PyraAcctBkgdNode => write!(f, "pyraAcctBkgdNode"),
7305            Self::PyraAcctTxNode => write!(f, "pyraAcctTxNode"),
7306            Self::SrcNode => write!(f, "srcNode"),
7307            Self::DstNode => write!(f, "dstNode"),
7308            Self::BegPts => write!(f, "begPts"),
7309            Self::EndPts => write!(f, "endPts"),
7310        }
7311    }
7312}
7313
7314impl std::str::FromStr for STParameterId {
7315    type Err = String;
7316
7317    fn from_str(s: &str) -> Result<Self, Self::Err> {
7318        match s {
7319            "horzAlign" => Ok(Self::HorzAlign),
7320            "vertAlign" => Ok(Self::VertAlign),
7321            "chDir" => Ok(Self::ChDir),
7322            "chAlign" => Ok(Self::ChAlign),
7323            "secChAlign" => Ok(Self::SecChAlign),
7324            "linDir" => Ok(Self::LinDir),
7325            "secLinDir" => Ok(Self::SecLinDir),
7326            "stElem" => Ok(Self::StElem),
7327            "bendPt" => Ok(Self::BendPt),
7328            "connRout" => Ok(Self::ConnRout),
7329            "begSty" => Ok(Self::BegSty),
7330            "endSty" => Ok(Self::EndSty),
7331            "dim" => Ok(Self::Dim),
7332            "rotPath" => Ok(Self::RotPath),
7333            "ctrShpMap" => Ok(Self::CtrShpMap),
7334            "nodeHorzAlign" => Ok(Self::NodeHorzAlign),
7335            "nodeVertAlign" => Ok(Self::NodeVertAlign),
7336            "fallback" => Ok(Self::Fallback),
7337            "txDir" => Ok(Self::TxDir),
7338            "pyraAcctPos" => Ok(Self::PyraAcctPos),
7339            "pyraAcctTxMar" => Ok(Self::PyraAcctTxMar),
7340            "txBlDir" => Ok(Self::TxBlDir),
7341            "txAnchorHorz" => Ok(Self::TxAnchorHorz),
7342            "txAnchorVert" => Ok(Self::TxAnchorVert),
7343            "txAnchorHorzCh" => Ok(Self::TxAnchorHorzCh),
7344            "txAnchorVertCh" => Ok(Self::TxAnchorVertCh),
7345            "parTxLTRAlign" => Ok(Self::ParTxLTRAlign),
7346            "parTxRTLAlign" => Ok(Self::ParTxRTLAlign),
7347            "shpTxLTRAlignCh" => Ok(Self::ShpTxLTRAlignCh),
7348            "shpTxRTLAlignCh" => Ok(Self::ShpTxRTLAlignCh),
7349            "autoTxRot" => Ok(Self::AutoTxRot),
7350            "grDir" => Ok(Self::GrDir),
7351            "flowDir" => Ok(Self::FlowDir),
7352            "contDir" => Ok(Self::ContDir),
7353            "bkpt" => Ok(Self::Bkpt),
7354            "off" => Ok(Self::Off),
7355            "hierAlign" => Ok(Self::HierAlign),
7356            "bkPtFixedVal" => Ok(Self::BkPtFixedVal),
7357            "stBulletLvl" => Ok(Self::StBulletLvl),
7358            "stAng" => Ok(Self::StAng),
7359            "spanAng" => Ok(Self::SpanAng),
7360            "ar" => Ok(Self::Ar),
7361            "lnSpPar" => Ok(Self::LnSpPar),
7362            "lnSpAfParP" => Ok(Self::LnSpAfParP),
7363            "lnSpCh" => Ok(Self::LnSpCh),
7364            "lnSpAfChP" => Ok(Self::LnSpAfChP),
7365            "rtShortDist" => Ok(Self::RtShortDist),
7366            "alignTx" => Ok(Self::AlignTx),
7367            "pyraLvlNode" => Ok(Self::PyraLvlNode),
7368            "pyraAcctBkgdNode" => Ok(Self::PyraAcctBkgdNode),
7369            "pyraAcctTxNode" => Ok(Self::PyraAcctTxNode),
7370            "srcNode" => Ok(Self::SrcNode),
7371            "dstNode" => Ok(Self::DstNode),
7372            "begPts" => Ok(Self::BegPts),
7373            "endPts" => Ok(Self::EndPts),
7374            _ => Err(format!("unknown STParameterId value: {}", s)),
7375        }
7376    }
7377}
7378
7379pub type STInts = String;
7380
7381pub type STUnsignedInts = String;
7382
7383pub type STBooleans = String;
7384
7385#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7386pub enum STFunctionType {
7387    #[serde(rename = "cnt")]
7388    Cnt,
7389    #[serde(rename = "pos")]
7390    Pos,
7391    #[serde(rename = "revPos")]
7392    RevPos,
7393    #[serde(rename = "posEven")]
7394    PosEven,
7395    #[serde(rename = "posOdd")]
7396    PosOdd,
7397    #[serde(rename = "var")]
7398    Var,
7399    #[serde(rename = "depth")]
7400    Depth,
7401    #[serde(rename = "maxDepth")]
7402    MaxDepth,
7403}
7404
7405impl std::fmt::Display for STFunctionType {
7406    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7407        match self {
7408            Self::Cnt => write!(f, "cnt"),
7409            Self::Pos => write!(f, "pos"),
7410            Self::RevPos => write!(f, "revPos"),
7411            Self::PosEven => write!(f, "posEven"),
7412            Self::PosOdd => write!(f, "posOdd"),
7413            Self::Var => write!(f, "var"),
7414            Self::Depth => write!(f, "depth"),
7415            Self::MaxDepth => write!(f, "maxDepth"),
7416        }
7417    }
7418}
7419
7420impl std::str::FromStr for STFunctionType {
7421    type Err = String;
7422
7423    fn from_str(s: &str) -> Result<Self, Self::Err> {
7424        match s {
7425            "cnt" => Ok(Self::Cnt),
7426            "pos" => Ok(Self::Pos),
7427            "revPos" => Ok(Self::RevPos),
7428            "posEven" => Ok(Self::PosEven),
7429            "posOdd" => Ok(Self::PosOdd),
7430            "var" => Ok(Self::Var),
7431            "depth" => Ok(Self::Depth),
7432            "maxDepth" => Ok(Self::MaxDepth),
7433            _ => Err(format!("unknown STFunctionType value: {}", s)),
7434        }
7435    }
7436}
7437
7438#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7439pub enum STFunctionOperator {
7440    #[serde(rename = "equ")]
7441    Equ,
7442    #[serde(rename = "neq")]
7443    Neq,
7444    #[serde(rename = "gt")]
7445    Gt,
7446    #[serde(rename = "lt")]
7447    Lt,
7448    #[serde(rename = "gte")]
7449    Gte,
7450    #[serde(rename = "lte")]
7451    Lte,
7452}
7453
7454impl std::fmt::Display for STFunctionOperator {
7455    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7456        match self {
7457            Self::Equ => write!(f, "equ"),
7458            Self::Neq => write!(f, "neq"),
7459            Self::Gt => write!(f, "gt"),
7460            Self::Lt => write!(f, "lt"),
7461            Self::Gte => write!(f, "gte"),
7462            Self::Lte => write!(f, "lte"),
7463        }
7464    }
7465}
7466
7467impl std::str::FromStr for STFunctionOperator {
7468    type Err = String;
7469
7470    fn from_str(s: &str) -> Result<Self, Self::Err> {
7471        match s {
7472            "equ" => Ok(Self::Equ),
7473            "neq" => Ok(Self::Neq),
7474            "gt" => Ok(Self::Gt),
7475            "lt" => Ok(Self::Lt),
7476            "gte" => Ok(Self::Gte),
7477            "lte" => Ok(Self::Lte),
7478            _ => Err(format!("unknown STFunctionOperator value: {}", s)),
7479        }
7480    }
7481}
7482
7483#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7484pub enum STDiagramHorizontalAlignment {
7485    #[serde(rename = "l")]
7486    L,
7487    #[serde(rename = "ctr")]
7488    Ctr,
7489    #[serde(rename = "r")]
7490    R,
7491    #[serde(rename = "none")]
7492    None,
7493}
7494
7495impl std::fmt::Display for STDiagramHorizontalAlignment {
7496    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7497        match self {
7498            Self::L => write!(f, "l"),
7499            Self::Ctr => write!(f, "ctr"),
7500            Self::R => write!(f, "r"),
7501            Self::None => write!(f, "none"),
7502        }
7503    }
7504}
7505
7506impl std::str::FromStr for STDiagramHorizontalAlignment {
7507    type Err = String;
7508
7509    fn from_str(s: &str) -> Result<Self, Self::Err> {
7510        match s {
7511            "l" => Ok(Self::L),
7512            "ctr" => Ok(Self::Ctr),
7513            "r" => Ok(Self::R),
7514            "none" => Ok(Self::None),
7515            _ => Err(format!("unknown STDiagramHorizontalAlignment value: {}", s)),
7516        }
7517    }
7518}
7519
7520#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7521pub enum STVerticalAlignment {
7522    #[serde(rename = "t")]
7523    T,
7524    #[serde(rename = "mid")]
7525    Mid,
7526    #[serde(rename = "b")]
7527    B,
7528    #[serde(rename = "none")]
7529    None,
7530}
7531
7532impl std::fmt::Display for STVerticalAlignment {
7533    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7534        match self {
7535            Self::T => write!(f, "t"),
7536            Self::Mid => write!(f, "mid"),
7537            Self::B => write!(f, "b"),
7538            Self::None => write!(f, "none"),
7539        }
7540    }
7541}
7542
7543impl std::str::FromStr for STVerticalAlignment {
7544    type Err = String;
7545
7546    fn from_str(s: &str) -> Result<Self, Self::Err> {
7547        match s {
7548            "t" => Ok(Self::T),
7549            "mid" => Ok(Self::Mid),
7550            "b" => Ok(Self::B),
7551            "none" => Ok(Self::None),
7552            _ => Err(format!("unknown STVerticalAlignment value: {}", s)),
7553        }
7554    }
7555}
7556
7557#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7558pub enum STChildDirection {
7559    #[serde(rename = "horz")]
7560    Horz,
7561    #[serde(rename = "vert")]
7562    Vert,
7563}
7564
7565impl std::fmt::Display for STChildDirection {
7566    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7567        match self {
7568            Self::Horz => write!(f, "horz"),
7569            Self::Vert => write!(f, "vert"),
7570        }
7571    }
7572}
7573
7574impl std::str::FromStr for STChildDirection {
7575    type Err = String;
7576
7577    fn from_str(s: &str) -> Result<Self, Self::Err> {
7578        match s {
7579            "horz" => Ok(Self::Horz),
7580            "vert" => Ok(Self::Vert),
7581            _ => Err(format!("unknown STChildDirection value: {}", s)),
7582        }
7583    }
7584}
7585
7586#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7587pub enum STChildAlignment {
7588    #[serde(rename = "t")]
7589    T,
7590    #[serde(rename = "b")]
7591    B,
7592    #[serde(rename = "l")]
7593    L,
7594    #[serde(rename = "r")]
7595    R,
7596}
7597
7598impl std::fmt::Display for STChildAlignment {
7599    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7600        match self {
7601            Self::T => write!(f, "t"),
7602            Self::B => write!(f, "b"),
7603            Self::L => write!(f, "l"),
7604            Self::R => write!(f, "r"),
7605        }
7606    }
7607}
7608
7609impl std::str::FromStr for STChildAlignment {
7610    type Err = String;
7611
7612    fn from_str(s: &str) -> Result<Self, Self::Err> {
7613        match s {
7614            "t" => Ok(Self::T),
7615            "b" => Ok(Self::B),
7616            "l" => Ok(Self::L),
7617            "r" => Ok(Self::R),
7618            _ => Err(format!("unknown STChildAlignment value: {}", s)),
7619        }
7620    }
7621}
7622
7623#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7624pub enum STSecondaryChildAlignment {
7625    #[serde(rename = "none")]
7626    None,
7627    #[serde(rename = "t")]
7628    T,
7629    #[serde(rename = "b")]
7630    B,
7631    #[serde(rename = "l")]
7632    L,
7633    #[serde(rename = "r")]
7634    R,
7635}
7636
7637impl std::fmt::Display for STSecondaryChildAlignment {
7638    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7639        match self {
7640            Self::None => write!(f, "none"),
7641            Self::T => write!(f, "t"),
7642            Self::B => write!(f, "b"),
7643            Self::L => write!(f, "l"),
7644            Self::R => write!(f, "r"),
7645        }
7646    }
7647}
7648
7649impl std::str::FromStr for STSecondaryChildAlignment {
7650    type Err = String;
7651
7652    fn from_str(s: &str) -> Result<Self, Self::Err> {
7653        match s {
7654            "none" => Ok(Self::None),
7655            "t" => Ok(Self::T),
7656            "b" => Ok(Self::B),
7657            "l" => Ok(Self::L),
7658            "r" => Ok(Self::R),
7659            _ => Err(format!("unknown STSecondaryChildAlignment value: {}", s)),
7660        }
7661    }
7662}
7663
7664#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7665pub enum STLinearDirection {
7666    #[serde(rename = "fromL")]
7667    FromL,
7668    #[serde(rename = "fromR")]
7669    FromR,
7670    #[serde(rename = "fromT")]
7671    FromT,
7672    #[serde(rename = "fromB")]
7673    FromB,
7674}
7675
7676impl std::fmt::Display for STLinearDirection {
7677    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7678        match self {
7679            Self::FromL => write!(f, "fromL"),
7680            Self::FromR => write!(f, "fromR"),
7681            Self::FromT => write!(f, "fromT"),
7682            Self::FromB => write!(f, "fromB"),
7683        }
7684    }
7685}
7686
7687impl std::str::FromStr for STLinearDirection {
7688    type Err = String;
7689
7690    fn from_str(s: &str) -> Result<Self, Self::Err> {
7691        match s {
7692            "fromL" => Ok(Self::FromL),
7693            "fromR" => Ok(Self::FromR),
7694            "fromT" => Ok(Self::FromT),
7695            "fromB" => Ok(Self::FromB),
7696            _ => Err(format!("unknown STLinearDirection value: {}", s)),
7697        }
7698    }
7699}
7700
7701#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7702pub enum STSecondaryLinearDirection {
7703    #[serde(rename = "none")]
7704    None,
7705    #[serde(rename = "fromL")]
7706    FromL,
7707    #[serde(rename = "fromR")]
7708    FromR,
7709    #[serde(rename = "fromT")]
7710    FromT,
7711    #[serde(rename = "fromB")]
7712    FromB,
7713}
7714
7715impl std::fmt::Display for STSecondaryLinearDirection {
7716    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7717        match self {
7718            Self::None => write!(f, "none"),
7719            Self::FromL => write!(f, "fromL"),
7720            Self::FromR => write!(f, "fromR"),
7721            Self::FromT => write!(f, "fromT"),
7722            Self::FromB => write!(f, "fromB"),
7723        }
7724    }
7725}
7726
7727impl std::str::FromStr for STSecondaryLinearDirection {
7728    type Err = String;
7729
7730    fn from_str(s: &str) -> Result<Self, Self::Err> {
7731        match s {
7732            "none" => Ok(Self::None),
7733            "fromL" => Ok(Self::FromL),
7734            "fromR" => Ok(Self::FromR),
7735            "fromT" => Ok(Self::FromT),
7736            "fromB" => Ok(Self::FromB),
7737            _ => Err(format!("unknown STSecondaryLinearDirection value: {}", s)),
7738        }
7739    }
7740}
7741
7742#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7743pub enum STStartingElement {
7744    #[serde(rename = "node")]
7745    Node,
7746    #[serde(rename = "trans")]
7747    Trans,
7748}
7749
7750impl std::fmt::Display for STStartingElement {
7751    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7752        match self {
7753            Self::Node => write!(f, "node"),
7754            Self::Trans => write!(f, "trans"),
7755        }
7756    }
7757}
7758
7759impl std::str::FromStr for STStartingElement {
7760    type Err = String;
7761
7762    fn from_str(s: &str) -> Result<Self, Self::Err> {
7763        match s {
7764            "node" => Ok(Self::Node),
7765            "trans" => Ok(Self::Trans),
7766            _ => Err(format!("unknown STStartingElement value: {}", s)),
7767        }
7768    }
7769}
7770
7771#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7772pub enum STRotationPath {
7773    #[serde(rename = "none")]
7774    None,
7775    #[serde(rename = "alongPath")]
7776    AlongPath,
7777}
7778
7779impl std::fmt::Display for STRotationPath {
7780    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7781        match self {
7782            Self::None => write!(f, "none"),
7783            Self::AlongPath => write!(f, "alongPath"),
7784        }
7785    }
7786}
7787
7788impl std::str::FromStr for STRotationPath {
7789    type Err = String;
7790
7791    fn from_str(s: &str) -> Result<Self, Self::Err> {
7792        match s {
7793            "none" => Ok(Self::None),
7794            "alongPath" => Ok(Self::AlongPath),
7795            _ => Err(format!("unknown STRotationPath value: {}", s)),
7796        }
7797    }
7798}
7799
7800#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7801pub enum STCenterShapeMapping {
7802    #[serde(rename = "none")]
7803    None,
7804    #[serde(rename = "fNode")]
7805    FNode,
7806}
7807
7808impl std::fmt::Display for STCenterShapeMapping {
7809    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7810        match self {
7811            Self::None => write!(f, "none"),
7812            Self::FNode => write!(f, "fNode"),
7813        }
7814    }
7815}
7816
7817impl std::str::FromStr for STCenterShapeMapping {
7818    type Err = String;
7819
7820    fn from_str(s: &str) -> Result<Self, Self::Err> {
7821        match s {
7822            "none" => Ok(Self::None),
7823            "fNode" => Ok(Self::FNode),
7824            _ => Err(format!("unknown STCenterShapeMapping value: {}", s)),
7825        }
7826    }
7827}
7828
7829#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7830pub enum STBendPoint {
7831    #[serde(rename = "beg")]
7832    Beg,
7833    #[serde(rename = "def")]
7834    Def,
7835    #[serde(rename = "end")]
7836    End,
7837}
7838
7839impl std::fmt::Display for STBendPoint {
7840    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7841        match self {
7842            Self::Beg => write!(f, "beg"),
7843            Self::Def => write!(f, "def"),
7844            Self::End => write!(f, "end"),
7845        }
7846    }
7847}
7848
7849impl std::str::FromStr for STBendPoint {
7850    type Err = String;
7851
7852    fn from_str(s: &str) -> Result<Self, Self::Err> {
7853        match s {
7854            "beg" => Ok(Self::Beg),
7855            "def" => Ok(Self::Def),
7856            "end" => Ok(Self::End),
7857            _ => Err(format!("unknown STBendPoint value: {}", s)),
7858        }
7859    }
7860}
7861
7862#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7863pub enum STConnectorRouting {
7864    #[serde(rename = "stra")]
7865    Stra,
7866    #[serde(rename = "bend")]
7867    Bend,
7868    #[serde(rename = "curve")]
7869    Curve,
7870    #[serde(rename = "longCurve")]
7871    LongCurve,
7872}
7873
7874impl std::fmt::Display for STConnectorRouting {
7875    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7876        match self {
7877            Self::Stra => write!(f, "stra"),
7878            Self::Bend => write!(f, "bend"),
7879            Self::Curve => write!(f, "curve"),
7880            Self::LongCurve => write!(f, "longCurve"),
7881        }
7882    }
7883}
7884
7885impl std::str::FromStr for STConnectorRouting {
7886    type Err = String;
7887
7888    fn from_str(s: &str) -> Result<Self, Self::Err> {
7889        match s {
7890            "stra" => Ok(Self::Stra),
7891            "bend" => Ok(Self::Bend),
7892            "curve" => Ok(Self::Curve),
7893            "longCurve" => Ok(Self::LongCurve),
7894            _ => Err(format!("unknown STConnectorRouting value: {}", s)),
7895        }
7896    }
7897}
7898
7899#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7900pub enum STArrowheadStyle {
7901    #[serde(rename = "auto")]
7902    Auto,
7903    #[serde(rename = "arr")]
7904    Arr,
7905    #[serde(rename = "noArr")]
7906    NoArr,
7907}
7908
7909impl std::fmt::Display for STArrowheadStyle {
7910    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7911        match self {
7912            Self::Auto => write!(f, "auto"),
7913            Self::Arr => write!(f, "arr"),
7914            Self::NoArr => write!(f, "noArr"),
7915        }
7916    }
7917}
7918
7919impl std::str::FromStr for STArrowheadStyle {
7920    type Err = String;
7921
7922    fn from_str(s: &str) -> Result<Self, Self::Err> {
7923        match s {
7924            "auto" => Ok(Self::Auto),
7925            "arr" => Ok(Self::Arr),
7926            "noArr" => Ok(Self::NoArr),
7927            _ => Err(format!("unknown STArrowheadStyle value: {}", s)),
7928        }
7929    }
7930}
7931
7932#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7933pub enum STConnectorDimension {
7934    #[serde(rename = "1D")]
7935    _1D,
7936    #[serde(rename = "2D")]
7937    _2D,
7938    #[serde(rename = "cust")]
7939    Cust,
7940}
7941
7942impl std::fmt::Display for STConnectorDimension {
7943    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7944        match self {
7945            Self::_1D => write!(f, "1D"),
7946            Self::_2D => write!(f, "2D"),
7947            Self::Cust => write!(f, "cust"),
7948        }
7949    }
7950}
7951
7952impl std::str::FromStr for STConnectorDimension {
7953    type Err = String;
7954
7955    fn from_str(s: &str) -> Result<Self, Self::Err> {
7956        match s {
7957            "1D" => Ok(Self::_1D),
7958            "2D" => Ok(Self::_2D),
7959            "cust" => Ok(Self::Cust),
7960            _ => Err(format!("unknown STConnectorDimension value: {}", s)),
7961        }
7962    }
7963}
7964
7965#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7966pub enum STConnectorPoint {
7967    #[serde(rename = "auto")]
7968    Auto,
7969    #[serde(rename = "bCtr")]
7970    BCtr,
7971    #[serde(rename = "ctr")]
7972    Ctr,
7973    #[serde(rename = "midL")]
7974    MidL,
7975    #[serde(rename = "midR")]
7976    MidR,
7977    #[serde(rename = "tCtr")]
7978    TCtr,
7979    #[serde(rename = "bL")]
7980    BL,
7981    #[serde(rename = "bR")]
7982    BR,
7983    #[serde(rename = "tL")]
7984    TL,
7985    #[serde(rename = "tR")]
7986    TR,
7987    #[serde(rename = "radial")]
7988    Radial,
7989}
7990
7991impl std::fmt::Display for STConnectorPoint {
7992    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7993        match self {
7994            Self::Auto => write!(f, "auto"),
7995            Self::BCtr => write!(f, "bCtr"),
7996            Self::Ctr => write!(f, "ctr"),
7997            Self::MidL => write!(f, "midL"),
7998            Self::MidR => write!(f, "midR"),
7999            Self::TCtr => write!(f, "tCtr"),
8000            Self::BL => write!(f, "bL"),
8001            Self::BR => write!(f, "bR"),
8002            Self::TL => write!(f, "tL"),
8003            Self::TR => write!(f, "tR"),
8004            Self::Radial => write!(f, "radial"),
8005        }
8006    }
8007}
8008
8009impl std::str::FromStr for STConnectorPoint {
8010    type Err = String;
8011
8012    fn from_str(s: &str) -> Result<Self, Self::Err> {
8013        match s {
8014            "auto" => Ok(Self::Auto),
8015            "bCtr" => Ok(Self::BCtr),
8016            "ctr" => Ok(Self::Ctr),
8017            "midL" => Ok(Self::MidL),
8018            "midR" => Ok(Self::MidR),
8019            "tCtr" => Ok(Self::TCtr),
8020            "bL" => Ok(Self::BL),
8021            "bR" => Ok(Self::BR),
8022            "tL" => Ok(Self::TL),
8023            "tR" => Ok(Self::TR),
8024            "radial" => Ok(Self::Radial),
8025            _ => Err(format!("unknown STConnectorPoint value: {}", s)),
8026        }
8027    }
8028}
8029
8030#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8031pub enum STNodeHorizontalAlignment {
8032    #[serde(rename = "l")]
8033    L,
8034    #[serde(rename = "ctr")]
8035    Ctr,
8036    #[serde(rename = "r")]
8037    R,
8038}
8039
8040impl std::fmt::Display for STNodeHorizontalAlignment {
8041    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8042        match self {
8043            Self::L => write!(f, "l"),
8044            Self::Ctr => write!(f, "ctr"),
8045            Self::R => write!(f, "r"),
8046        }
8047    }
8048}
8049
8050impl std::str::FromStr for STNodeHorizontalAlignment {
8051    type Err = String;
8052
8053    fn from_str(s: &str) -> Result<Self, Self::Err> {
8054        match s {
8055            "l" => Ok(Self::L),
8056            "ctr" => Ok(Self::Ctr),
8057            "r" => Ok(Self::R),
8058            _ => Err(format!("unknown STNodeHorizontalAlignment value: {}", s)),
8059        }
8060    }
8061}
8062
8063#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8064pub enum STNodeVerticalAlignment {
8065    #[serde(rename = "t")]
8066    T,
8067    #[serde(rename = "mid")]
8068    Mid,
8069    #[serde(rename = "b")]
8070    B,
8071}
8072
8073impl std::fmt::Display for STNodeVerticalAlignment {
8074    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8075        match self {
8076            Self::T => write!(f, "t"),
8077            Self::Mid => write!(f, "mid"),
8078            Self::B => write!(f, "b"),
8079        }
8080    }
8081}
8082
8083impl std::str::FromStr for STNodeVerticalAlignment {
8084    type Err = String;
8085
8086    fn from_str(s: &str) -> Result<Self, Self::Err> {
8087        match s {
8088            "t" => Ok(Self::T),
8089            "mid" => Ok(Self::Mid),
8090            "b" => Ok(Self::B),
8091            _ => Err(format!("unknown STNodeVerticalAlignment value: {}", s)),
8092        }
8093    }
8094}
8095
8096#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8097pub enum STFallbackDimension {
8098    #[serde(rename = "1D")]
8099    _1D,
8100    #[serde(rename = "2D")]
8101    _2D,
8102}
8103
8104impl std::fmt::Display for STFallbackDimension {
8105    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8106        match self {
8107            Self::_1D => write!(f, "1D"),
8108            Self::_2D => write!(f, "2D"),
8109        }
8110    }
8111}
8112
8113impl std::str::FromStr for STFallbackDimension {
8114    type Err = String;
8115
8116    fn from_str(s: &str) -> Result<Self, Self::Err> {
8117        match s {
8118            "1D" => Ok(Self::_1D),
8119            "2D" => Ok(Self::_2D),
8120            _ => Err(format!("unknown STFallbackDimension value: {}", s)),
8121        }
8122    }
8123}
8124
8125#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8126pub enum STTextDirection {
8127    #[serde(rename = "fromT")]
8128    FromT,
8129    #[serde(rename = "fromB")]
8130    FromB,
8131}
8132
8133impl std::fmt::Display for STTextDirection {
8134    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8135        match self {
8136            Self::FromT => write!(f, "fromT"),
8137            Self::FromB => write!(f, "fromB"),
8138        }
8139    }
8140}
8141
8142impl std::str::FromStr for STTextDirection {
8143    type Err = String;
8144
8145    fn from_str(s: &str) -> Result<Self, Self::Err> {
8146        match s {
8147            "fromT" => Ok(Self::FromT),
8148            "fromB" => Ok(Self::FromB),
8149            _ => Err(format!("unknown STTextDirection value: {}", s)),
8150        }
8151    }
8152}
8153
8154#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8155pub enum STPyramidAccentPosition {
8156    #[serde(rename = "bef")]
8157    Bef,
8158    #[serde(rename = "aft")]
8159    Aft,
8160}
8161
8162impl std::fmt::Display for STPyramidAccentPosition {
8163    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8164        match self {
8165            Self::Bef => write!(f, "bef"),
8166            Self::Aft => write!(f, "aft"),
8167        }
8168    }
8169}
8170
8171impl std::str::FromStr for STPyramidAccentPosition {
8172    type Err = String;
8173
8174    fn from_str(s: &str) -> Result<Self, Self::Err> {
8175        match s {
8176            "bef" => Ok(Self::Bef),
8177            "aft" => Ok(Self::Aft),
8178            _ => Err(format!("unknown STPyramidAccentPosition value: {}", s)),
8179        }
8180    }
8181}
8182
8183#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8184pub enum STPyramidAccentTextMargin {
8185    #[serde(rename = "step")]
8186    Step,
8187    #[serde(rename = "stack")]
8188    Stack,
8189}
8190
8191impl std::fmt::Display for STPyramidAccentTextMargin {
8192    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8193        match self {
8194            Self::Step => write!(f, "step"),
8195            Self::Stack => write!(f, "stack"),
8196        }
8197    }
8198}
8199
8200impl std::str::FromStr for STPyramidAccentTextMargin {
8201    type Err = String;
8202
8203    fn from_str(s: &str) -> Result<Self, Self::Err> {
8204        match s {
8205            "step" => Ok(Self::Step),
8206            "stack" => Ok(Self::Stack),
8207            _ => Err(format!("unknown STPyramidAccentTextMargin value: {}", s)),
8208        }
8209    }
8210}
8211
8212#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8213pub enum STTextBlockDirection {
8214    #[serde(rename = "horz")]
8215    Horz,
8216    #[serde(rename = "vert")]
8217    Vert,
8218}
8219
8220impl std::fmt::Display for STTextBlockDirection {
8221    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8222        match self {
8223            Self::Horz => write!(f, "horz"),
8224            Self::Vert => write!(f, "vert"),
8225        }
8226    }
8227}
8228
8229impl std::str::FromStr for STTextBlockDirection {
8230    type Err = String;
8231
8232    fn from_str(s: &str) -> Result<Self, Self::Err> {
8233        match s {
8234            "horz" => Ok(Self::Horz),
8235            "vert" => Ok(Self::Vert),
8236            _ => Err(format!("unknown STTextBlockDirection value: {}", s)),
8237        }
8238    }
8239}
8240
8241#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8242pub enum STTextAnchorHorizontal {
8243    #[serde(rename = "none")]
8244    None,
8245    #[serde(rename = "ctr")]
8246    Ctr,
8247}
8248
8249impl std::fmt::Display for STTextAnchorHorizontal {
8250    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8251        match self {
8252            Self::None => write!(f, "none"),
8253            Self::Ctr => write!(f, "ctr"),
8254        }
8255    }
8256}
8257
8258impl std::str::FromStr for STTextAnchorHorizontal {
8259    type Err = String;
8260
8261    fn from_str(s: &str) -> Result<Self, Self::Err> {
8262        match s {
8263            "none" => Ok(Self::None),
8264            "ctr" => Ok(Self::Ctr),
8265            _ => Err(format!("unknown STTextAnchorHorizontal value: {}", s)),
8266        }
8267    }
8268}
8269
8270#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8271pub enum STTextAnchorVertical {
8272    #[serde(rename = "t")]
8273    T,
8274    #[serde(rename = "mid")]
8275    Mid,
8276    #[serde(rename = "b")]
8277    B,
8278}
8279
8280impl std::fmt::Display for STTextAnchorVertical {
8281    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8282        match self {
8283            Self::T => write!(f, "t"),
8284            Self::Mid => write!(f, "mid"),
8285            Self::B => write!(f, "b"),
8286        }
8287    }
8288}
8289
8290impl std::str::FromStr for STTextAnchorVertical {
8291    type Err = String;
8292
8293    fn from_str(s: &str) -> Result<Self, Self::Err> {
8294        match s {
8295            "t" => Ok(Self::T),
8296            "mid" => Ok(Self::Mid),
8297            "b" => Ok(Self::B),
8298            _ => Err(format!("unknown STTextAnchorVertical value: {}", s)),
8299        }
8300    }
8301}
8302
8303#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8304pub enum STDiagramTextAlignment {
8305    #[serde(rename = "l")]
8306    L,
8307    #[serde(rename = "ctr")]
8308    Ctr,
8309    #[serde(rename = "r")]
8310    R,
8311}
8312
8313impl std::fmt::Display for STDiagramTextAlignment {
8314    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8315        match self {
8316            Self::L => write!(f, "l"),
8317            Self::Ctr => write!(f, "ctr"),
8318            Self::R => write!(f, "r"),
8319        }
8320    }
8321}
8322
8323impl std::str::FromStr for STDiagramTextAlignment {
8324    type Err = String;
8325
8326    fn from_str(s: &str) -> Result<Self, Self::Err> {
8327        match s {
8328            "l" => Ok(Self::L),
8329            "ctr" => Ok(Self::Ctr),
8330            "r" => Ok(Self::R),
8331            _ => Err(format!("unknown STDiagramTextAlignment value: {}", s)),
8332        }
8333    }
8334}
8335
8336#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8337pub enum STAutoTextRotation {
8338    #[serde(rename = "none")]
8339    None,
8340    #[serde(rename = "upr")]
8341    Upr,
8342    #[serde(rename = "grav")]
8343    Grav,
8344}
8345
8346impl std::fmt::Display for STAutoTextRotation {
8347    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8348        match self {
8349            Self::None => write!(f, "none"),
8350            Self::Upr => write!(f, "upr"),
8351            Self::Grav => write!(f, "grav"),
8352        }
8353    }
8354}
8355
8356impl std::str::FromStr for STAutoTextRotation {
8357    type Err = String;
8358
8359    fn from_str(s: &str) -> Result<Self, Self::Err> {
8360        match s {
8361            "none" => Ok(Self::None),
8362            "upr" => Ok(Self::Upr),
8363            "grav" => Ok(Self::Grav),
8364            _ => Err(format!("unknown STAutoTextRotation value: {}", s)),
8365        }
8366    }
8367}
8368
8369#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8370pub enum STGrowDirection {
8371    #[serde(rename = "tL")]
8372    TL,
8373    #[serde(rename = "tR")]
8374    TR,
8375    #[serde(rename = "bL")]
8376    BL,
8377    #[serde(rename = "bR")]
8378    BR,
8379}
8380
8381impl std::fmt::Display for STGrowDirection {
8382    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8383        match self {
8384            Self::TL => write!(f, "tL"),
8385            Self::TR => write!(f, "tR"),
8386            Self::BL => write!(f, "bL"),
8387            Self::BR => write!(f, "bR"),
8388        }
8389    }
8390}
8391
8392impl std::str::FromStr for STGrowDirection {
8393    type Err = String;
8394
8395    fn from_str(s: &str) -> Result<Self, Self::Err> {
8396        match s {
8397            "tL" => Ok(Self::TL),
8398            "tR" => Ok(Self::TR),
8399            "bL" => Ok(Self::BL),
8400            "bR" => Ok(Self::BR),
8401            _ => Err(format!("unknown STGrowDirection value: {}", s)),
8402        }
8403    }
8404}
8405
8406#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8407pub enum STFlowDirection {
8408    #[serde(rename = "row")]
8409    Row,
8410    #[serde(rename = "col")]
8411    Col,
8412}
8413
8414impl std::fmt::Display for STFlowDirection {
8415    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8416        match self {
8417            Self::Row => write!(f, "row"),
8418            Self::Col => write!(f, "col"),
8419        }
8420    }
8421}
8422
8423impl std::str::FromStr for STFlowDirection {
8424    type Err = String;
8425
8426    fn from_str(s: &str) -> Result<Self, Self::Err> {
8427        match s {
8428            "row" => Ok(Self::Row),
8429            "col" => Ok(Self::Col),
8430            _ => Err(format!("unknown STFlowDirection value: {}", s)),
8431        }
8432    }
8433}
8434
8435#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8436pub enum STContinueDirection {
8437    #[serde(rename = "revDir")]
8438    RevDir,
8439    #[serde(rename = "sameDir")]
8440    SameDir,
8441}
8442
8443impl std::fmt::Display for STContinueDirection {
8444    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8445        match self {
8446            Self::RevDir => write!(f, "revDir"),
8447            Self::SameDir => write!(f, "sameDir"),
8448        }
8449    }
8450}
8451
8452impl std::str::FromStr for STContinueDirection {
8453    type Err = String;
8454
8455    fn from_str(s: &str) -> Result<Self, Self::Err> {
8456        match s {
8457            "revDir" => Ok(Self::RevDir),
8458            "sameDir" => Ok(Self::SameDir),
8459            _ => Err(format!("unknown STContinueDirection value: {}", s)),
8460        }
8461    }
8462}
8463
8464#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8465pub enum STBreakpoint {
8466    #[serde(rename = "endCnv")]
8467    EndCnv,
8468    #[serde(rename = "bal")]
8469    Bal,
8470    #[serde(rename = "fixed")]
8471    Fixed,
8472}
8473
8474impl std::fmt::Display for STBreakpoint {
8475    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8476        match self {
8477            Self::EndCnv => write!(f, "endCnv"),
8478            Self::Bal => write!(f, "bal"),
8479            Self::Fixed => write!(f, "fixed"),
8480        }
8481    }
8482}
8483
8484impl std::str::FromStr for STBreakpoint {
8485    type Err = String;
8486
8487    fn from_str(s: &str) -> Result<Self, Self::Err> {
8488        match s {
8489            "endCnv" => Ok(Self::EndCnv),
8490            "bal" => Ok(Self::Bal),
8491            "fixed" => Ok(Self::Fixed),
8492            _ => Err(format!("unknown STBreakpoint value: {}", s)),
8493        }
8494    }
8495}
8496
8497#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8498pub enum STOffset {
8499    #[serde(rename = "ctr")]
8500    Ctr,
8501    #[serde(rename = "off")]
8502    Off,
8503}
8504
8505impl std::fmt::Display for STOffset {
8506    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8507        match self {
8508            Self::Ctr => write!(f, "ctr"),
8509            Self::Off => write!(f, "off"),
8510        }
8511    }
8512}
8513
8514impl std::str::FromStr for STOffset {
8515    type Err = String;
8516
8517    fn from_str(s: &str) -> Result<Self, Self::Err> {
8518        match s {
8519            "ctr" => Ok(Self::Ctr),
8520            "off" => Ok(Self::Off),
8521            _ => Err(format!("unknown STOffset value: {}", s)),
8522        }
8523    }
8524}
8525
8526#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8527pub enum STHierarchyAlignment {
8528    #[serde(rename = "tL")]
8529    TL,
8530    #[serde(rename = "tR")]
8531    TR,
8532    #[serde(rename = "tCtrCh")]
8533    TCtrCh,
8534    #[serde(rename = "tCtrDes")]
8535    TCtrDes,
8536    #[serde(rename = "bL")]
8537    BL,
8538    #[serde(rename = "bR")]
8539    BR,
8540    #[serde(rename = "bCtrCh")]
8541    BCtrCh,
8542    #[serde(rename = "bCtrDes")]
8543    BCtrDes,
8544    #[serde(rename = "lT")]
8545    LT,
8546    #[serde(rename = "lB")]
8547    LB,
8548    #[serde(rename = "lCtrCh")]
8549    LCtrCh,
8550    #[serde(rename = "lCtrDes")]
8551    LCtrDes,
8552    #[serde(rename = "rT")]
8553    RT,
8554    #[serde(rename = "rB")]
8555    RB,
8556    #[serde(rename = "rCtrCh")]
8557    RCtrCh,
8558    #[serde(rename = "rCtrDes")]
8559    RCtrDes,
8560}
8561
8562impl std::fmt::Display for STHierarchyAlignment {
8563    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8564        match self {
8565            Self::TL => write!(f, "tL"),
8566            Self::TR => write!(f, "tR"),
8567            Self::TCtrCh => write!(f, "tCtrCh"),
8568            Self::TCtrDes => write!(f, "tCtrDes"),
8569            Self::BL => write!(f, "bL"),
8570            Self::BR => write!(f, "bR"),
8571            Self::BCtrCh => write!(f, "bCtrCh"),
8572            Self::BCtrDes => write!(f, "bCtrDes"),
8573            Self::LT => write!(f, "lT"),
8574            Self::LB => write!(f, "lB"),
8575            Self::LCtrCh => write!(f, "lCtrCh"),
8576            Self::LCtrDes => write!(f, "lCtrDes"),
8577            Self::RT => write!(f, "rT"),
8578            Self::RB => write!(f, "rB"),
8579            Self::RCtrCh => write!(f, "rCtrCh"),
8580            Self::RCtrDes => write!(f, "rCtrDes"),
8581        }
8582    }
8583}
8584
8585impl std::str::FromStr for STHierarchyAlignment {
8586    type Err = String;
8587
8588    fn from_str(s: &str) -> Result<Self, Self::Err> {
8589        match s {
8590            "tL" => Ok(Self::TL),
8591            "tR" => Ok(Self::TR),
8592            "tCtrCh" => Ok(Self::TCtrCh),
8593            "tCtrDes" => Ok(Self::TCtrDes),
8594            "bL" => Ok(Self::BL),
8595            "bR" => Ok(Self::BR),
8596            "bCtrCh" => Ok(Self::BCtrCh),
8597            "bCtrDes" => Ok(Self::BCtrDes),
8598            "lT" => Ok(Self::LT),
8599            "lB" => Ok(Self::LB),
8600            "lCtrCh" => Ok(Self::LCtrCh),
8601            "lCtrDes" => Ok(Self::LCtrDes),
8602            "rT" => Ok(Self::RT),
8603            "rB" => Ok(Self::RB),
8604            "rCtrCh" => Ok(Self::RCtrCh),
8605            "rCtrDes" => Ok(Self::RCtrDes),
8606            _ => Err(format!("unknown STHierarchyAlignment value: {}", s)),
8607        }
8608    }
8609}
8610
8611pub type STFunctionValue = String;
8612
8613#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8614pub enum STVariableType {
8615    #[serde(rename = "none")]
8616    None,
8617    #[serde(rename = "orgChart")]
8618    OrgChart,
8619    #[serde(rename = "chMax")]
8620    ChMax,
8621    #[serde(rename = "chPref")]
8622    ChPref,
8623    #[serde(rename = "bulEnabled")]
8624    BulEnabled,
8625    #[serde(rename = "dir")]
8626    Dir,
8627    #[serde(rename = "hierBranch")]
8628    HierBranch,
8629    #[serde(rename = "animOne")]
8630    AnimOne,
8631    #[serde(rename = "animLvl")]
8632    AnimLvl,
8633    #[serde(rename = "resizeHandles")]
8634    ResizeHandles,
8635}
8636
8637impl std::fmt::Display for STVariableType {
8638    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8639        match self {
8640            Self::None => write!(f, "none"),
8641            Self::OrgChart => write!(f, "orgChart"),
8642            Self::ChMax => write!(f, "chMax"),
8643            Self::ChPref => write!(f, "chPref"),
8644            Self::BulEnabled => write!(f, "bulEnabled"),
8645            Self::Dir => write!(f, "dir"),
8646            Self::HierBranch => write!(f, "hierBranch"),
8647            Self::AnimOne => write!(f, "animOne"),
8648            Self::AnimLvl => write!(f, "animLvl"),
8649            Self::ResizeHandles => write!(f, "resizeHandles"),
8650        }
8651    }
8652}
8653
8654impl std::str::FromStr for STVariableType {
8655    type Err = String;
8656
8657    fn from_str(s: &str) -> Result<Self, Self::Err> {
8658        match s {
8659            "none" => Ok(Self::None),
8660            "orgChart" => Ok(Self::OrgChart),
8661            "chMax" => Ok(Self::ChMax),
8662            "chPref" => Ok(Self::ChPref),
8663            "bulEnabled" => Ok(Self::BulEnabled),
8664            "dir" => Ok(Self::Dir),
8665            "hierBranch" => Ok(Self::HierBranch),
8666            "animOne" => Ok(Self::AnimOne),
8667            "animLvl" => Ok(Self::AnimLvl),
8668            "resizeHandles" => Ok(Self::ResizeHandles),
8669            _ => Err(format!("unknown STVariableType value: {}", s)),
8670        }
8671    }
8672}
8673
8674pub type STFunctionArgument = STVariableType;
8675
8676#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8677pub enum STOutputShapeType {
8678    #[serde(rename = "none")]
8679    None,
8680    #[serde(rename = "conn")]
8681    Conn,
8682}
8683
8684impl std::fmt::Display for STOutputShapeType {
8685    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8686        match self {
8687            Self::None => write!(f, "none"),
8688            Self::Conn => write!(f, "conn"),
8689        }
8690    }
8691}
8692
8693impl std::str::FromStr for STOutputShapeType {
8694    type Err = String;
8695
8696    fn from_str(s: &str) -> Result<Self, Self::Err> {
8697        match s {
8698            "none" => Ok(Self::None),
8699            "conn" => Ok(Self::Conn),
8700            _ => Err(format!("unknown STOutputShapeType value: {}", s)),
8701        }
8702    }
8703}
8704
8705#[derive(Debug, Clone, Serialize, Deserialize)]
8706pub enum EGMedia {
8707    #[serde(rename = "audioCd")]
8708    AudioCd(Box<CTAudioCD>),
8709    #[serde(rename = "wavAudioFile")]
8710    WavAudioFile(Box<CTEmbeddedWAVAudioFile>),
8711    #[serde(rename = "audioFile")]
8712    AudioFile(Box<CTAudioFile>),
8713    #[serde(rename = "videoFile")]
8714    VideoFile(Box<CTVideoFile>),
8715    #[serde(rename = "quickTimeFile")]
8716    QuickTimeFile(Box<CTQuickTimeFile>),
8717}
8718
8719#[derive(Debug, Clone, Serialize, Deserialize)]
8720pub enum EGColorTransform {
8721    #[serde(rename = "tint")]
8722    Tint(Box<PositiveFixedPercentageElement>),
8723    #[serde(rename = "shade")]
8724    Shade(Box<PositiveFixedPercentageElement>),
8725    #[serde(rename = "comp")]
8726    Comp(Box<CTComplementTransform>),
8727    #[serde(rename = "inv")]
8728    Inv(Box<CTInverseTransform>),
8729    #[serde(rename = "gray")]
8730    Gray(Box<CTGrayscaleTransform>),
8731    #[serde(rename = "alpha")]
8732    Alpha(Box<PositiveFixedPercentageElement>),
8733    #[serde(rename = "alphaOff")]
8734    AlphaOff(Box<FixedPercentageElement>),
8735    #[serde(rename = "alphaMod")]
8736    AlphaMod(Box<PositivePercentageElement>),
8737    #[serde(rename = "hue")]
8738    Hue(Box<CTPositiveFixedAngle>),
8739    #[serde(rename = "hueOff")]
8740    HueOff(Box<CTAngle>),
8741    #[serde(rename = "hueMod")]
8742    HueMod(Box<PositivePercentageElement>),
8743    #[serde(rename = "sat")]
8744    Sat(Box<CTPercentage>),
8745    #[serde(rename = "satOff")]
8746    SatOff(Box<CTPercentage>),
8747    #[serde(rename = "satMod")]
8748    SatMod(Box<CTPercentage>),
8749    #[serde(rename = "lum")]
8750    Lum(Box<CTPercentage>),
8751    #[serde(rename = "lumOff")]
8752    LumOff(Box<CTPercentage>),
8753    #[serde(rename = "lumMod")]
8754    LumMod(Box<CTPercentage>),
8755    #[serde(rename = "red")]
8756    Red(Box<CTPercentage>),
8757    #[serde(rename = "redOff")]
8758    RedOff(Box<CTPercentage>),
8759    #[serde(rename = "redMod")]
8760    RedMod(Box<CTPercentage>),
8761    #[serde(rename = "green")]
8762    Green(Box<CTPercentage>),
8763    #[serde(rename = "greenOff")]
8764    GreenOff(Box<CTPercentage>),
8765    #[serde(rename = "greenMod")]
8766    GreenMod(Box<CTPercentage>),
8767    #[serde(rename = "blue")]
8768    Blue(Box<CTPercentage>),
8769    #[serde(rename = "blueOff")]
8770    BlueOff(Box<CTPercentage>),
8771    #[serde(rename = "blueMod")]
8772    BlueMod(Box<CTPercentage>),
8773    #[serde(rename = "gamma")]
8774    Gamma(Box<CTGammaTransform>),
8775    #[serde(rename = "invGamma")]
8776    InvGamma(Box<CTInverseGammaTransform>),
8777}
8778
8779#[derive(Debug, Clone, Serialize, Deserialize)]
8780pub enum EGColorChoice {
8781    #[serde(rename = "scrgbClr")]
8782    ScrgbClr(Box<CTScRgbColor>),
8783    #[serde(rename = "srgbClr")]
8784    SrgbClr(Box<SrgbColor>),
8785    #[serde(rename = "hslClr")]
8786    HslClr(Box<HslColor>),
8787    #[serde(rename = "sysClr")]
8788    SysClr(Box<SystemColor>),
8789    #[serde(rename = "schemeClr")]
8790    SchemeClr(Box<SchemeColor>),
8791    #[serde(rename = "prstClr")]
8792    PrstClr(Box<PresetColor>),
8793}
8794
8795#[derive(Debug, Clone, Serialize, Deserialize)]
8796pub enum EGText3D {
8797    #[serde(rename = "sp3d")]
8798    Sp3d(Box<CTShape3D>),
8799    #[serde(rename = "flatTx")]
8800    FlatTx(Box<CTFlatText>),
8801}
8802
8803#[derive(Debug, Clone, Serialize, Deserialize)]
8804pub enum EGShadeProperties {
8805    #[serde(rename = "lin")]
8806    Lin(Box<CTLinearShadeProperties>),
8807    #[serde(rename = "path")]
8808    Path(Box<CTPathShadeProperties>),
8809}
8810
8811#[derive(Debug, Clone, Serialize, Deserialize)]
8812pub enum EGFillModeProperties {
8813    #[serde(rename = "tile")]
8814    Tile(Box<CTTileInfoProperties>),
8815    #[serde(rename = "stretch")]
8816    Stretch(Box<CTStretchInfoProperties>),
8817}
8818
8819#[derive(Debug, Clone, Serialize, Deserialize)]
8820pub enum EGFillProperties {
8821    #[serde(rename = "noFill")]
8822    NoFill(Box<NoFill>),
8823    #[serde(rename = "solidFill")]
8824    SolidFill(Box<SolidColorFill>),
8825    #[serde(rename = "gradFill")]
8826    GradFill(Box<GradientFill>),
8827    #[serde(rename = "blipFill")]
8828    BlipFill(Box<BlipFillProperties>),
8829    #[serde(rename = "pattFill")]
8830    PattFill(Box<PatternFill>),
8831    #[serde(rename = "grpFill")]
8832    GrpFill(Box<CTGroupFillProperties>),
8833}
8834
8835#[derive(Debug, Clone, Serialize, Deserialize)]
8836pub enum EGEffect {
8837    #[serde(rename = "cont")]
8838    Cont(Box<EffectContainer>),
8839    #[serde(rename = "effect")]
8840    Effect(Box<CTEffectReference>),
8841    #[serde(rename = "alphaBiLevel")]
8842    AlphaBiLevel(Box<CTAlphaBiLevelEffect>),
8843    #[serde(rename = "alphaCeiling")]
8844    AlphaCeiling(Box<CTAlphaCeilingEffect>),
8845    #[serde(rename = "alphaFloor")]
8846    AlphaFloor(Box<CTAlphaFloorEffect>),
8847    #[serde(rename = "alphaInv")]
8848    AlphaInv(Box<CTAlphaInverseEffect>),
8849    #[serde(rename = "alphaMod")]
8850    AlphaMod(AlphaModulateEffectElement),
8851    #[serde(rename = "alphaModFix")]
8852    AlphaModFix(Box<CTAlphaModulateFixedEffect>),
8853    #[serde(rename = "alphaOutset")]
8854    AlphaOutset(Box<CTAlphaOutsetEffect>),
8855    #[serde(rename = "alphaRepl")]
8856    AlphaRepl(Box<CTAlphaReplaceEffect>),
8857    #[serde(rename = "biLevel")]
8858    BiLevel(Box<CTBiLevelEffect>),
8859    #[serde(rename = "blend")]
8860    Blend(Box<CTBlendEffect>),
8861    #[serde(rename = "blur")]
8862    Blur(Box<CTBlurEffect>),
8863    #[serde(rename = "clrChange")]
8864    ClrChange(Box<CTColorChangeEffect>),
8865    #[serde(rename = "clrRepl")]
8866    ClrRepl(Box<CTColorReplaceEffect>),
8867    #[serde(rename = "duotone")]
8868    Duotone(Box<CTDuotoneEffect>),
8869    #[serde(rename = "fill")]
8870    Fill(Box<CTFillEffect>),
8871    #[serde(rename = "fillOverlay")]
8872    FillOverlay(Box<CTFillOverlayEffect>),
8873    #[serde(rename = "glow")]
8874    Glow(Box<CTGlowEffect>),
8875    #[serde(rename = "grayscl")]
8876    Grayscl(Box<CTGrayscaleEffect>),
8877    #[serde(rename = "hsl")]
8878    Hsl(Box<CTHSLEffect>),
8879    #[serde(rename = "innerShdw")]
8880    InnerShdw(Box<CTInnerShadowEffect>),
8881    #[serde(rename = "lum")]
8882    Lum(Box<CTLuminanceEffect>),
8883    #[serde(rename = "outerShdw")]
8884    OuterShdw(Box<CTOuterShadowEffect>),
8885    #[serde(rename = "prstShdw")]
8886    PrstShdw(Box<CTPresetShadowEffect>),
8887    #[serde(rename = "reflection")]
8888    Reflection(Box<CTReflectionEffect>),
8889    #[serde(rename = "relOff")]
8890    RelOff(Box<CTRelativeOffsetEffect>),
8891    #[serde(rename = "softEdge")]
8892    SoftEdge(Box<CTSoftEdgesEffect>),
8893    #[serde(rename = "tint")]
8894    Tint(Box<CTTintEffect>),
8895    #[serde(rename = "xfrm")]
8896    Xfrm(Box<CTTransformEffect>),
8897}
8898
8899#[derive(Debug, Clone, Serialize, Deserialize)]
8900pub enum EGEffectProperties {
8901    #[serde(rename = "effectLst")]
8902    EffectLst(Box<EffectList>),
8903    #[serde(rename = "effectDag")]
8904    EffectDag(Box<EffectContainer>),
8905}
8906
8907#[derive(Debug, Clone, Serialize, Deserialize)]
8908pub enum EGGeometry {
8909    #[serde(rename = "custGeom")]
8910    CustGeom(Box<CTCustomGeometry2D>),
8911    #[serde(rename = "prstGeom")]
8912    PrstGeom(Box<CTPresetGeometry2D>),
8913}
8914
8915#[derive(Debug, Clone, Serialize, Deserialize)]
8916pub enum EGTextGeometry {
8917    #[serde(rename = "custGeom")]
8918    CustGeom(Box<CTCustomGeometry2D>),
8919    #[serde(rename = "prstTxWarp")]
8920    PrstTxWarp(Box<CTPresetTextShape>),
8921}
8922
8923#[derive(Debug, Clone, Serialize, Deserialize)]
8924pub enum EGLineFillProperties {
8925    #[serde(rename = "noFill")]
8926    NoFill(Box<NoFill>),
8927    #[serde(rename = "solidFill")]
8928    SolidFill(Box<SolidColorFill>),
8929    #[serde(rename = "gradFill")]
8930    GradFill(Box<GradientFill>),
8931    #[serde(rename = "pattFill")]
8932    PattFill(Box<PatternFill>),
8933}
8934
8935#[derive(Debug, Clone, Serialize, Deserialize)]
8936pub enum EGLineJoinProperties {
8937    #[serde(rename = "round")]
8938    Round(Box<CTLineJoinRound>),
8939    #[serde(rename = "bevel")]
8940    Bevel(Box<CTLineJoinBevel>),
8941    #[serde(rename = "miter")]
8942    Miter(Box<CTLineJoinMiterProperties>),
8943}
8944
8945#[derive(Debug, Clone, Serialize, Deserialize)]
8946pub enum EGLineDashProperties {
8947    #[serde(rename = "prstDash")]
8948    PrstDash(Box<CTPresetLineDashProperties>),
8949    #[serde(rename = "custDash")]
8950    CustDash(Box<CTDashStopList>),
8951}
8952
8953#[derive(Debug, Clone, Serialize, Deserialize)]
8954pub enum EGThemeableFillStyle {
8955    #[serde(rename = "fill")]
8956    Fill(Box<CTFillProperties>),
8957    #[serde(rename = "fillRef")]
8958    FillRef(Box<CTStyleMatrixReference>),
8959}
8960
8961#[derive(Debug, Clone, Serialize, Deserialize)]
8962pub enum EGThemeableEffectStyle {
8963    #[serde(rename = "effect")]
8964    Effect(Box<CTEffectProperties>),
8965    #[serde(rename = "effectRef")]
8966    EffectRef(Box<CTStyleMatrixReference>),
8967}
8968
8969#[derive(Debug, Clone, Serialize, Deserialize)]
8970pub enum EGThemeableFontStyles {
8971    #[serde(rename = "font")]
8972    Font(Box<CTFontCollection>),
8973    #[serde(rename = "fontRef")]
8974    FontRef(Box<CTFontReference>),
8975}
8976
8977#[derive(Debug, Clone, Serialize, Deserialize)]
8978pub enum EGTextAutofit {
8979    #[serde(rename = "noAutofit")]
8980    NoAutofit(Box<CTTextNoAutofit>),
8981    #[serde(rename = "normAutofit")]
8982    NormAutofit(Box<CTTextNormalAutofit>),
8983    #[serde(rename = "spAutoFit")]
8984    SpAutoFit(Box<CTTextShapeAutofit>),
8985}
8986
8987#[derive(Debug, Clone, Serialize, Deserialize)]
8988pub enum EGTextBulletColor {
8989    #[serde(rename = "buClrTx")]
8990    BuClrTx(Box<CTTextBulletColorFollowText>),
8991    #[serde(rename = "buClr")]
8992    BuClr(Box<CTColor>),
8993}
8994
8995#[derive(Debug, Clone, Serialize, Deserialize)]
8996pub enum EGTextBulletSize {
8997    #[serde(rename = "buSzTx")]
8998    BuSzTx(Box<CTTextBulletSizeFollowText>),
8999    #[serde(rename = "buSzPct")]
9000    BuSzPct(Box<TextBulletSizePercentElement>),
9001    #[serde(rename = "buSzPts")]
9002    BuSzPts(Box<CTTextBulletSizePoint>),
9003}
9004
9005#[derive(Debug, Clone, Serialize, Deserialize)]
9006pub enum EGTextBulletTypeface {
9007    #[serde(rename = "buFontTx")]
9008    BuFontTx(Box<CTTextBulletTypefaceFollowText>),
9009    #[serde(rename = "buFont")]
9010    BuFont(Box<TextFont>),
9011}
9012
9013#[derive(Debug, Clone, Serialize, Deserialize)]
9014pub enum EGTextBullet {
9015    #[serde(rename = "buNone")]
9016    BuNone(Box<CTTextNoBullet>),
9017    #[serde(rename = "buAutoNum")]
9018    BuAutoNum(Box<CTTextAutonumberBullet>),
9019    #[serde(rename = "buChar")]
9020    BuChar(Box<CTTextCharBullet>),
9021    #[serde(rename = "buBlip")]
9022    BuBlip(TextBlipBulletElement),
9023}
9024
9025#[derive(Debug, Clone, Serialize, Deserialize)]
9026pub enum EGTextUnderlineLine {
9027    #[serde(rename = "uLnTx")]
9028    ULnTx(Box<CTTextUnderlineLineFollowText>),
9029    #[serde(rename = "uLn")]
9030    ULn(Box<LineProperties>),
9031}
9032
9033#[derive(Debug, Clone, Serialize, Deserialize)]
9034pub enum EGTextUnderlineFill {
9035    #[serde(rename = "uFillTx")]
9036    UFillTx(Box<CTTextUnderlineFillFollowText>),
9037    #[serde(rename = "uFill")]
9038    UFill(Box<CTTextUnderlineFillGroupWrapper>),
9039}
9040
9041#[derive(Debug, Clone, Serialize, Deserialize)]
9042pub enum EGTextRun {
9043    #[serde(rename = "r")]
9044    R(Box<TextRun>),
9045    #[serde(rename = "br")]
9046    Br(Box<CTTextLineBreak>),
9047    #[serde(rename = "fld")]
9048    Fld(Box<CTTextField>),
9049}
9050
9051#[derive(Debug, Clone, Serialize, Deserialize)]
9052pub struct CTAudioFile {
9053    #[cfg(feature = "dml-media")]
9054    #[serde(rename = "@r:link")]
9055    pub link: STRelationshipId,
9056    #[cfg(feature = "dml-media")]
9057    #[serde(rename = "@contentType")]
9058    #[serde(default, skip_serializing_if = "Option::is_none")]
9059    pub content_type: Option<String>,
9060    #[serde(rename = "extLst")]
9061    #[serde(default, skip_serializing_if = "Option::is_none")]
9062    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
9063    /// Unknown attributes captured for roundtrip fidelity.
9064    #[cfg(feature = "extra-attrs")]
9065    #[serde(skip)]
9066    #[cfg(feature = "extra-attrs")]
9067    #[serde(default)]
9068    #[cfg(feature = "extra-attrs")]
9069    pub extra_attrs: std::collections::HashMap<String, String>,
9070    /// Unknown child elements captured for roundtrip fidelity.
9071    #[cfg(feature = "extra-children")]
9072    #[serde(skip)]
9073    #[cfg(feature = "extra-children")]
9074    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9075}
9076
9077#[derive(Debug, Clone, Serialize, Deserialize)]
9078pub struct CTVideoFile {
9079    #[cfg(feature = "dml-media")]
9080    #[serde(rename = "@r:link")]
9081    pub link: STRelationshipId,
9082    #[cfg(feature = "dml-media")]
9083    #[serde(rename = "@contentType")]
9084    #[serde(default, skip_serializing_if = "Option::is_none")]
9085    pub content_type: Option<String>,
9086    #[serde(rename = "extLst")]
9087    #[serde(default, skip_serializing_if = "Option::is_none")]
9088    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
9089    /// Unknown attributes captured for roundtrip fidelity.
9090    #[cfg(feature = "extra-attrs")]
9091    #[serde(skip)]
9092    #[cfg(feature = "extra-attrs")]
9093    #[serde(default)]
9094    #[cfg(feature = "extra-attrs")]
9095    pub extra_attrs: std::collections::HashMap<String, String>,
9096    /// Unknown child elements captured for roundtrip fidelity.
9097    #[cfg(feature = "extra-children")]
9098    #[serde(skip)]
9099    #[cfg(feature = "extra-children")]
9100    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9101}
9102
9103#[derive(Debug, Clone, Serialize, Deserialize)]
9104pub struct CTQuickTimeFile {
9105    #[serde(rename = "@r:link")]
9106    pub link: STRelationshipId,
9107    #[serde(rename = "extLst")]
9108    #[serde(default, skip_serializing_if = "Option::is_none")]
9109    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
9110    /// Unknown attributes captured for roundtrip fidelity.
9111    #[cfg(feature = "extra-attrs")]
9112    #[serde(skip)]
9113    #[cfg(feature = "extra-attrs")]
9114    #[serde(default)]
9115    #[cfg(feature = "extra-attrs")]
9116    pub extra_attrs: std::collections::HashMap<String, String>,
9117    /// Unknown child elements captured for roundtrip fidelity.
9118    #[cfg(feature = "extra-children")]
9119    #[serde(skip)]
9120    #[cfg(feature = "extra-children")]
9121    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9122}
9123
9124#[derive(Debug, Clone, Serialize, Deserialize)]
9125pub struct CTAudioCDTime {
9126    #[serde(rename = "@track")]
9127    pub track: u8,
9128    #[serde(rename = "@time")]
9129    #[serde(default, skip_serializing_if = "Option::is_none")]
9130    pub time: Option<u32>,
9131    /// Unknown attributes captured for roundtrip fidelity.
9132    #[cfg(feature = "extra-attrs")]
9133    #[serde(skip)]
9134    #[cfg(feature = "extra-attrs")]
9135    #[serde(default)]
9136    #[cfg(feature = "extra-attrs")]
9137    pub extra_attrs: std::collections::HashMap<String, String>,
9138}
9139
9140#[derive(Debug, Clone, Serialize, Deserialize)]
9141pub struct CTAudioCD {
9142    #[serde(rename = "st")]
9143    pub st: Box<CTAudioCDTime>,
9144    #[serde(rename = "end")]
9145    pub end: Box<CTAudioCDTime>,
9146    #[serde(rename = "extLst")]
9147    #[serde(default, skip_serializing_if = "Option::is_none")]
9148    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
9149    /// Unknown child elements captured for roundtrip fidelity.
9150    #[cfg(feature = "extra-children")]
9151    #[serde(skip)]
9152    #[cfg(feature = "extra-children")]
9153    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9154}
9155
9156pub type AVideoFile = Box<CTVideoFile>;
9157
9158#[derive(Debug, Clone, Serialize, Deserialize)]
9159pub struct ColorScheme {
9160    #[cfg(feature = "dml-themes")]
9161    #[serde(rename = "@name")]
9162    pub name: String,
9163    #[cfg(feature = "dml-colors")]
9164    #[serde(rename = "dk1")]
9165    pub dk1: Box<CTColor>,
9166    #[cfg(feature = "dml-colors")]
9167    #[serde(rename = "lt1")]
9168    pub lt1: Box<CTColor>,
9169    #[cfg(feature = "dml-colors")]
9170    #[serde(rename = "dk2")]
9171    pub dk2: Box<CTColor>,
9172    #[cfg(feature = "dml-colors")]
9173    #[serde(rename = "lt2")]
9174    pub lt2: Box<CTColor>,
9175    #[cfg(feature = "dml-colors")]
9176    #[serde(rename = "accent1")]
9177    pub accent1: Box<CTColor>,
9178    #[cfg(feature = "dml-colors")]
9179    #[serde(rename = "accent2")]
9180    pub accent2: Box<CTColor>,
9181    #[cfg(feature = "dml-colors")]
9182    #[serde(rename = "accent3")]
9183    pub accent3: Box<CTColor>,
9184    #[cfg(feature = "dml-colors")]
9185    #[serde(rename = "accent4")]
9186    pub accent4: Box<CTColor>,
9187    #[cfg(feature = "dml-colors")]
9188    #[serde(rename = "accent5")]
9189    pub accent5: Box<CTColor>,
9190    #[cfg(feature = "dml-colors")]
9191    #[serde(rename = "accent6")]
9192    pub accent6: Box<CTColor>,
9193    #[cfg(feature = "dml-colors")]
9194    #[serde(rename = "hlink")]
9195    pub hlink: Box<CTColor>,
9196    #[cfg(feature = "dml-colors")]
9197    #[serde(rename = "folHlink")]
9198    pub fol_hlink: Box<CTColor>,
9199    #[cfg(feature = "dml-extensions")]
9200    #[serde(rename = "extLst")]
9201    #[serde(default, skip_serializing_if = "Option::is_none")]
9202    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
9203    /// Unknown attributes captured for roundtrip fidelity.
9204    #[cfg(feature = "extra-attrs")]
9205    #[serde(skip)]
9206    #[cfg(feature = "extra-attrs")]
9207    #[serde(default)]
9208    #[cfg(feature = "extra-attrs")]
9209    pub extra_attrs: std::collections::HashMap<String, String>,
9210    /// Unknown child elements captured for roundtrip fidelity.
9211    #[cfg(feature = "extra-children")]
9212    #[serde(skip)]
9213    #[cfg(feature = "extra-children")]
9214    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9215}
9216
9217#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9218pub struct CTCustomColor {
9219    #[serde(rename = "@name")]
9220    #[serde(default, skip_serializing_if = "Option::is_none")]
9221    pub name: Option<String>,
9222    #[serde(skip)]
9223    #[serde(default)]
9224    pub color_choice: Option<Box<EGColorChoice>>,
9225    /// Unknown attributes captured for roundtrip fidelity.
9226    #[cfg(feature = "extra-attrs")]
9227    #[serde(skip)]
9228    #[cfg(feature = "extra-attrs")]
9229    #[serde(default)]
9230    #[cfg(feature = "extra-attrs")]
9231    pub extra_attrs: std::collections::HashMap<String, String>,
9232    /// Unknown child elements captured for roundtrip fidelity.
9233    #[cfg(feature = "extra-children")]
9234    #[serde(skip)]
9235    #[cfg(feature = "extra-children")]
9236    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9237}
9238
9239#[derive(Debug, Clone, Serialize, Deserialize)]
9240pub struct CTSupplementalFont {
9241    #[serde(rename = "@script")]
9242    pub script: String,
9243    #[serde(rename = "@typeface")]
9244    pub typeface: STTextTypeface,
9245    /// Unknown attributes captured for roundtrip fidelity.
9246    #[cfg(feature = "extra-attrs")]
9247    #[serde(skip)]
9248    #[cfg(feature = "extra-attrs")]
9249    #[serde(default)]
9250    #[cfg(feature = "extra-attrs")]
9251    pub extra_attrs: std::collections::HashMap<String, String>,
9252}
9253
9254#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9255pub struct CTCustomColorList {
9256    #[serde(rename = "custClr")]
9257    #[serde(default, skip_serializing_if = "Vec::is_empty")]
9258    pub cust_clr: Vec<CTCustomColor>,
9259    /// Unknown child elements captured for roundtrip fidelity.
9260    #[cfg(feature = "extra-children")]
9261    #[serde(skip)]
9262    #[cfg(feature = "extra-children")]
9263    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9264}
9265
9266#[derive(Debug, Clone, Serialize, Deserialize)]
9267pub struct CTFontCollection {
9268    #[serde(rename = "latin")]
9269    pub latin: Box<TextFont>,
9270    #[serde(rename = "ea")]
9271    pub ea: Box<TextFont>,
9272    #[serde(rename = "cs")]
9273    pub cs: Box<TextFont>,
9274    #[serde(rename = "font")]
9275    #[serde(default, skip_serializing_if = "Vec::is_empty")]
9276    pub font: Vec<CTSupplementalFont>,
9277    #[serde(rename = "extLst")]
9278    #[serde(default, skip_serializing_if = "Option::is_none")]
9279    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
9280    /// Unknown child elements captured for roundtrip fidelity.
9281    #[cfg(feature = "extra-children")]
9282    #[serde(skip)]
9283    #[cfg(feature = "extra-children")]
9284    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9285}
9286
9287#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9288pub struct CTEffectStyleItem {
9289    #[serde(skip)]
9290    #[serde(default)]
9291    pub effect_properties: Option<Box<EGEffectProperties>>,
9292    #[serde(rename = "scene3d")]
9293    #[serde(default, skip_serializing_if = "Option::is_none")]
9294    pub scene3d: Option<Box<CTScene3D>>,
9295    #[serde(rename = "sp3d")]
9296    #[serde(default, skip_serializing_if = "Option::is_none")]
9297    pub sp3d: Option<Box<CTShape3D>>,
9298    /// Unknown child elements captured for roundtrip fidelity.
9299    #[cfg(feature = "extra-children")]
9300    #[serde(skip)]
9301    #[cfg(feature = "extra-children")]
9302    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9303}
9304
9305#[derive(Debug, Clone, Serialize, Deserialize)]
9306pub struct FontScheme {
9307    #[cfg(feature = "dml-themes")]
9308    #[serde(rename = "@name")]
9309    pub name: String,
9310    #[cfg(feature = "dml-themes")]
9311    #[serde(rename = "majorFont")]
9312    pub major_font: Box<CTFontCollection>,
9313    #[cfg(feature = "dml-themes")]
9314    #[serde(rename = "minorFont")]
9315    pub minor_font: Box<CTFontCollection>,
9316    #[cfg(feature = "dml-extensions")]
9317    #[serde(rename = "extLst")]
9318    #[serde(default, skip_serializing_if = "Option::is_none")]
9319    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
9320    /// Unknown attributes captured for roundtrip fidelity.
9321    #[cfg(feature = "extra-attrs")]
9322    #[serde(skip)]
9323    #[cfg(feature = "extra-attrs")]
9324    #[serde(default)]
9325    #[cfg(feature = "extra-attrs")]
9326    pub extra_attrs: std::collections::HashMap<String, String>,
9327    /// Unknown child elements captured for roundtrip fidelity.
9328    #[cfg(feature = "extra-children")]
9329    #[serde(skip)]
9330    #[cfg(feature = "extra-children")]
9331    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9332}
9333
9334#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9335pub struct CTFillStyleList {
9336    #[serde(skip)]
9337    #[serde(default)]
9338    pub fill_properties: Vec<EGFillProperties>,
9339    /// Unknown child elements captured for roundtrip fidelity.
9340    #[cfg(feature = "extra-children")]
9341    #[serde(skip)]
9342    #[cfg(feature = "extra-children")]
9343    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9344}
9345
9346#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9347pub struct CTLineStyleList {
9348    #[serde(rename = "ln")]
9349    #[serde(default, skip_serializing_if = "Vec::is_empty")]
9350    pub line: Vec<LineProperties>,
9351    /// Unknown child elements captured for roundtrip fidelity.
9352    #[cfg(feature = "extra-children")]
9353    #[serde(skip)]
9354    #[cfg(feature = "extra-children")]
9355    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9356}
9357
9358#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9359pub struct CTEffectStyleList {
9360    #[serde(rename = "effectStyle")]
9361    #[serde(default, skip_serializing_if = "Vec::is_empty")]
9362    pub effect_style: Vec<CTEffectStyleItem>,
9363    /// Unknown child elements captured for roundtrip fidelity.
9364    #[cfg(feature = "extra-children")]
9365    #[serde(skip)]
9366    #[cfg(feature = "extra-children")]
9367    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9368}
9369
9370#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9371pub struct CTBackgroundFillStyleList {
9372    #[serde(skip)]
9373    #[serde(default)]
9374    pub fill_properties: Vec<EGFillProperties>,
9375    /// Unknown child elements captured for roundtrip fidelity.
9376    #[cfg(feature = "extra-children")]
9377    #[serde(skip)]
9378    #[cfg(feature = "extra-children")]
9379    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9380}
9381
9382#[derive(Debug, Clone, Serialize, Deserialize)]
9383pub struct CTStyleMatrix {
9384    #[cfg(feature = "dml-themes")]
9385    #[serde(rename = "@name")]
9386    #[serde(default, skip_serializing_if = "Option::is_none")]
9387    pub name: Option<String>,
9388    #[cfg(feature = "dml-themes")]
9389    #[serde(rename = "fillStyleLst")]
9390    pub fill_style_lst: Box<CTFillStyleList>,
9391    #[cfg(feature = "dml-themes")]
9392    #[serde(rename = "lnStyleLst")]
9393    pub ln_style_lst: Box<CTLineStyleList>,
9394    #[cfg(feature = "dml-themes")]
9395    #[serde(rename = "effectStyleLst")]
9396    pub effect_style_lst: Box<CTEffectStyleList>,
9397    #[cfg(feature = "dml-themes")]
9398    #[serde(rename = "bgFillStyleLst")]
9399    pub bg_fill_style_lst: Box<CTBackgroundFillStyleList>,
9400    /// Unknown attributes captured for roundtrip fidelity.
9401    #[cfg(feature = "extra-attrs")]
9402    #[serde(skip)]
9403    #[cfg(feature = "extra-attrs")]
9404    #[serde(default)]
9405    #[cfg(feature = "extra-attrs")]
9406    pub extra_attrs: std::collections::HashMap<String, String>,
9407    /// Unknown child elements captured for roundtrip fidelity.
9408    #[cfg(feature = "extra-children")]
9409    #[serde(skip)]
9410    #[cfg(feature = "extra-children")]
9411    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9412}
9413
9414#[derive(Debug, Clone, Serialize, Deserialize)]
9415pub struct CTBaseStyles {
9416    #[cfg(feature = "dml-colors")]
9417    #[serde(rename = "clrScheme")]
9418    pub clr_scheme: Box<ColorScheme>,
9419    #[cfg(feature = "dml-themes")]
9420    #[serde(rename = "fontScheme")]
9421    pub font_scheme: Box<FontScheme>,
9422    #[cfg(feature = "dml-themes")]
9423    #[serde(rename = "fmtScheme")]
9424    pub fmt_scheme: Box<CTStyleMatrix>,
9425    #[cfg(feature = "dml-extensions")]
9426    #[serde(rename = "extLst")]
9427    #[serde(default, skip_serializing_if = "Option::is_none")]
9428    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
9429    /// Unknown child elements captured for roundtrip fidelity.
9430    #[cfg(feature = "extra-children")]
9431    #[serde(skip)]
9432    #[cfg(feature = "extra-children")]
9433    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9434}
9435
9436#[derive(Debug, Clone, Serialize, Deserialize)]
9437pub struct CTOfficeArtExtension {
9438    #[serde(rename = "@uri")]
9439    pub uri: String,
9440    /// Unknown attributes captured for roundtrip fidelity.
9441    #[cfg(feature = "extra-attrs")]
9442    #[serde(skip)]
9443    #[cfg(feature = "extra-attrs")]
9444    #[serde(default)]
9445    #[cfg(feature = "extra-attrs")]
9446    pub extra_attrs: std::collections::HashMap<String, String>,
9447}
9448
9449pub type OfficeArtExtensionAnyElement = String;
9450
9451#[derive(Debug, Clone, Serialize, Deserialize)]
9452pub struct CTAngle {
9453    #[serde(rename = "@val")]
9454    pub value: STAngle,
9455    /// Unknown attributes captured for roundtrip fidelity.
9456    #[cfg(feature = "extra-attrs")]
9457    #[serde(skip)]
9458    #[cfg(feature = "extra-attrs")]
9459    #[serde(default)]
9460    #[cfg(feature = "extra-attrs")]
9461    pub extra_attrs: std::collections::HashMap<String, String>,
9462}
9463
9464#[derive(Debug, Clone, Serialize, Deserialize)]
9465pub struct CTPositiveFixedAngle {
9466    #[serde(rename = "@val")]
9467    pub value: STPositiveFixedAngle,
9468    /// Unknown attributes captured for roundtrip fidelity.
9469    #[cfg(feature = "extra-attrs")]
9470    #[serde(skip)]
9471    #[cfg(feature = "extra-attrs")]
9472    #[serde(default)]
9473    #[cfg(feature = "extra-attrs")]
9474    pub extra_attrs: std::collections::HashMap<String, String>,
9475}
9476
9477#[derive(Debug, Clone, Serialize, Deserialize)]
9478pub struct CTPercentage {
9479    #[serde(rename = "@val")]
9480    pub value: STPercentage,
9481    /// Unknown attributes captured for roundtrip fidelity.
9482    #[cfg(feature = "extra-attrs")]
9483    #[serde(skip)]
9484    #[cfg(feature = "extra-attrs")]
9485    #[serde(default)]
9486    #[cfg(feature = "extra-attrs")]
9487    pub extra_attrs: std::collections::HashMap<String, String>,
9488}
9489
9490#[derive(Debug, Clone, Serialize, Deserialize)]
9491pub struct PositivePercentageElement {
9492    #[serde(rename = "@val")]
9493    pub value: STPositivePercentage,
9494    /// Unknown attributes captured for roundtrip fidelity.
9495    #[cfg(feature = "extra-attrs")]
9496    #[serde(skip)]
9497    #[cfg(feature = "extra-attrs")]
9498    #[serde(default)]
9499    #[cfg(feature = "extra-attrs")]
9500    pub extra_attrs: std::collections::HashMap<String, String>,
9501}
9502
9503#[derive(Debug, Clone, Serialize, Deserialize)]
9504pub struct FixedPercentageElement {
9505    #[serde(rename = "@val")]
9506    pub value: STFixedPercentage,
9507    /// Unknown attributes captured for roundtrip fidelity.
9508    #[cfg(feature = "extra-attrs")]
9509    #[serde(skip)]
9510    #[cfg(feature = "extra-attrs")]
9511    #[serde(default)]
9512    #[cfg(feature = "extra-attrs")]
9513    pub extra_attrs: std::collections::HashMap<String, String>,
9514}
9515
9516#[derive(Debug, Clone, Serialize, Deserialize)]
9517pub struct PositiveFixedPercentageElement {
9518    #[serde(rename = "@val")]
9519    pub value: STPositiveFixedPercentage,
9520    /// Unknown attributes captured for roundtrip fidelity.
9521    #[cfg(feature = "extra-attrs")]
9522    #[serde(skip)]
9523    #[cfg(feature = "extra-attrs")]
9524    #[serde(default)]
9525    #[cfg(feature = "extra-attrs")]
9526    pub extra_attrs: std::collections::HashMap<String, String>,
9527}
9528
9529#[derive(Debug, Clone, Serialize, Deserialize)]
9530pub struct CTRatio {
9531    #[serde(rename = "@n")]
9532    pub n: i64,
9533    #[serde(rename = "@d")]
9534    pub d: i64,
9535    /// Unknown attributes captured for roundtrip fidelity.
9536    #[cfg(feature = "extra-attrs")]
9537    #[serde(skip)]
9538    #[cfg(feature = "extra-attrs")]
9539    #[serde(default)]
9540    #[cfg(feature = "extra-attrs")]
9541    pub extra_attrs: std::collections::HashMap<String, String>,
9542}
9543
9544#[derive(Debug, Clone, Serialize, Deserialize)]
9545pub struct Point2D {
9546    #[serde(rename = "@x")]
9547    pub x: STCoordinate,
9548    #[serde(rename = "@y")]
9549    pub y: STCoordinate,
9550    /// Unknown attributes captured for roundtrip fidelity.
9551    #[cfg(feature = "extra-attrs")]
9552    #[serde(skip)]
9553    #[cfg(feature = "extra-attrs")]
9554    #[serde(default)]
9555    #[cfg(feature = "extra-attrs")]
9556    pub extra_attrs: std::collections::HashMap<String, String>,
9557}
9558
9559#[derive(Debug, Clone, Serialize, Deserialize)]
9560pub struct PositiveSize2D {
9561    #[serde(rename = "@cx")]
9562    pub cx: STPositiveCoordinate,
9563    #[serde(rename = "@cy")]
9564    pub cy: STPositiveCoordinate,
9565    /// Unknown attributes captured for roundtrip fidelity.
9566    #[cfg(feature = "extra-attrs")]
9567    #[serde(skip)]
9568    #[cfg(feature = "extra-attrs")]
9569    #[serde(default)]
9570    #[cfg(feature = "extra-attrs")]
9571    pub extra_attrs: std::collections::HashMap<String, String>,
9572}
9573
9574#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9575pub struct CTComplementTransform;
9576
9577#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9578pub struct CTInverseTransform;
9579
9580#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9581pub struct CTGrayscaleTransform;
9582
9583#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9584pub struct CTGammaTransform;
9585
9586#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9587pub struct CTInverseGammaTransform;
9588
9589#[derive(Debug, Clone, Serialize, Deserialize)]
9590pub struct CTScRgbColor {
9591    #[serde(rename = "@r")]
9592    pub relationship_id: STPercentage,
9593    #[serde(rename = "@g")]
9594    pub g: STPercentage,
9595    #[serde(rename = "@b")]
9596    pub b: STPercentage,
9597    #[serde(skip)]
9598    #[serde(default)]
9599    pub color_transform: Vec<EGColorTransform>,
9600    /// Unknown attributes captured for roundtrip fidelity.
9601    #[cfg(feature = "extra-attrs")]
9602    #[serde(skip)]
9603    #[cfg(feature = "extra-attrs")]
9604    #[serde(default)]
9605    #[cfg(feature = "extra-attrs")]
9606    pub extra_attrs: std::collections::HashMap<String, String>,
9607    /// Unknown child elements captured for roundtrip fidelity.
9608    #[cfg(feature = "extra-children")]
9609    #[serde(skip)]
9610    #[cfg(feature = "extra-children")]
9611    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9612}
9613
9614#[derive(Debug, Clone, Serialize, Deserialize)]
9615pub struct SrgbColor {
9616    #[cfg(feature = "dml-colors")]
9617    #[serde(rename = "@val")]
9618    pub value: HexColorRgb,
9619    #[serde(skip)]
9620    #[serde(default)]
9621    pub color_transform: Vec<EGColorTransform>,
9622    /// Unknown attributes captured for roundtrip fidelity.
9623    #[cfg(feature = "extra-attrs")]
9624    #[serde(skip)]
9625    #[cfg(feature = "extra-attrs")]
9626    #[serde(default)]
9627    #[cfg(feature = "extra-attrs")]
9628    pub extra_attrs: std::collections::HashMap<String, String>,
9629    /// Unknown child elements captured for roundtrip fidelity.
9630    #[cfg(feature = "extra-children")]
9631    #[serde(skip)]
9632    #[cfg(feature = "extra-children")]
9633    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9634}
9635
9636#[derive(Debug, Clone, Serialize, Deserialize)]
9637pub struct HslColor {
9638    #[cfg(feature = "dml-colors")]
9639    #[serde(rename = "@hue")]
9640    pub hue: STPositiveFixedAngle,
9641    #[cfg(feature = "dml-colors")]
9642    #[serde(rename = "@sat")]
9643    pub sat: STPercentage,
9644    #[cfg(feature = "dml-colors")]
9645    #[serde(rename = "@lum")]
9646    pub lum: STPercentage,
9647    #[serde(skip)]
9648    #[serde(default)]
9649    pub color_transform: Vec<EGColorTransform>,
9650    /// Unknown attributes captured for roundtrip fidelity.
9651    #[cfg(feature = "extra-attrs")]
9652    #[serde(skip)]
9653    #[cfg(feature = "extra-attrs")]
9654    #[serde(default)]
9655    #[cfg(feature = "extra-attrs")]
9656    pub extra_attrs: std::collections::HashMap<String, String>,
9657    /// Unknown child elements captured for roundtrip fidelity.
9658    #[cfg(feature = "extra-children")]
9659    #[serde(skip)]
9660    #[cfg(feature = "extra-children")]
9661    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9662}
9663
9664#[derive(Debug, Clone, Serialize, Deserialize)]
9665pub struct SystemColor {
9666    #[serde(rename = "@val")]
9667    pub value: STSystemColorVal,
9668    #[serde(rename = "@lastClr")]
9669    #[serde(default, skip_serializing_if = "Option::is_none")]
9670    pub last_clr: Option<HexColorRgb>,
9671    #[serde(skip)]
9672    #[serde(default)]
9673    pub color_transform: Vec<EGColorTransform>,
9674    /// Unknown attributes captured for roundtrip fidelity.
9675    #[cfg(feature = "extra-attrs")]
9676    #[serde(skip)]
9677    #[cfg(feature = "extra-attrs")]
9678    #[serde(default)]
9679    #[cfg(feature = "extra-attrs")]
9680    pub extra_attrs: std::collections::HashMap<String, String>,
9681    /// Unknown child elements captured for roundtrip fidelity.
9682    #[cfg(feature = "extra-children")]
9683    #[serde(skip)]
9684    #[cfg(feature = "extra-children")]
9685    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9686}
9687
9688#[derive(Debug, Clone, Serialize, Deserialize)]
9689pub struct SchemeColor {
9690    #[cfg(feature = "dml-colors")]
9691    #[serde(rename = "@val")]
9692    pub value: STSchemeColorVal,
9693    #[serde(skip)]
9694    #[serde(default)]
9695    pub color_transform: Vec<EGColorTransform>,
9696    /// Unknown attributes captured for roundtrip fidelity.
9697    #[cfg(feature = "extra-attrs")]
9698    #[serde(skip)]
9699    #[cfg(feature = "extra-attrs")]
9700    #[serde(default)]
9701    #[cfg(feature = "extra-attrs")]
9702    pub extra_attrs: std::collections::HashMap<String, String>,
9703    /// Unknown child elements captured for roundtrip fidelity.
9704    #[cfg(feature = "extra-children")]
9705    #[serde(skip)]
9706    #[cfg(feature = "extra-children")]
9707    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9708}
9709
9710#[derive(Debug, Clone, Serialize, Deserialize)]
9711pub struct PresetColor {
9712    #[serde(rename = "@val")]
9713    pub value: STPresetColorVal,
9714    #[serde(skip)]
9715    #[serde(default)]
9716    pub color_transform: Vec<EGColorTransform>,
9717    /// Unknown attributes captured for roundtrip fidelity.
9718    #[cfg(feature = "extra-attrs")]
9719    #[serde(skip)]
9720    #[cfg(feature = "extra-attrs")]
9721    #[serde(default)]
9722    #[cfg(feature = "extra-attrs")]
9723    pub extra_attrs: std::collections::HashMap<String, String>,
9724    /// Unknown child elements captured for roundtrip fidelity.
9725    #[cfg(feature = "extra-children")]
9726    #[serde(skip)]
9727    #[cfg(feature = "extra-children")]
9728    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9729}
9730
9731#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9732pub struct EGOfficeArtExtensionList {
9733    #[serde(rename = "ext")]
9734    #[serde(default, skip_serializing_if = "Vec::is_empty")]
9735    pub extents: Vec<CTOfficeArtExtension>,
9736    /// Unknown child elements captured for roundtrip fidelity.
9737    #[cfg(feature = "extra-children")]
9738    #[serde(skip)]
9739    #[cfg(feature = "extra-children")]
9740    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9741}
9742
9743#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9744pub struct CTOfficeArtExtensionList {
9745    #[serde(rename = "ext")]
9746    #[serde(default, skip_serializing_if = "Vec::is_empty")]
9747    pub extents: Vec<CTOfficeArtExtension>,
9748    /// Unknown child elements captured for roundtrip fidelity.
9749    #[cfg(feature = "extra-children")]
9750    #[serde(skip)]
9751    #[cfg(feature = "extra-children")]
9752    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9753}
9754
9755#[derive(Debug, Clone, Serialize, Deserialize)]
9756pub struct CTScale2D {
9757    #[serde(rename = "sx")]
9758    pub sx: Box<CTRatio>,
9759    #[serde(rename = "sy")]
9760    pub sy: Box<CTRatio>,
9761    /// Unknown child elements captured for roundtrip fidelity.
9762    #[cfg(feature = "extra-children")]
9763    #[serde(skip)]
9764    #[cfg(feature = "extra-children")]
9765    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9766}
9767
9768#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9769pub struct Transform2D {
9770    #[serde(rename = "@rot")]
9771    #[serde(default, skip_serializing_if = "Option::is_none")]
9772    pub rot: Option<STAngle>,
9773    #[serde(rename = "@flipH")]
9774    #[serde(
9775        default,
9776        skip_serializing_if = "Option::is_none",
9777        with = "ooxml_xml::ooxml_bool"
9778    )]
9779    pub flip_h: Option<bool>,
9780    #[serde(rename = "@flipV")]
9781    #[serde(
9782        default,
9783        skip_serializing_if = "Option::is_none",
9784        with = "ooxml_xml::ooxml_bool"
9785    )]
9786    pub flip_v: Option<bool>,
9787    #[serde(rename = "off")]
9788    #[serde(default, skip_serializing_if = "Option::is_none")]
9789    pub offset: Option<Box<Point2D>>,
9790    #[serde(rename = "ext")]
9791    #[serde(default, skip_serializing_if = "Option::is_none")]
9792    pub extents: Option<Box<PositiveSize2D>>,
9793    /// Unknown attributes captured for roundtrip fidelity.
9794    #[cfg(feature = "extra-attrs")]
9795    #[serde(skip)]
9796    #[cfg(feature = "extra-attrs")]
9797    #[serde(default)]
9798    #[cfg(feature = "extra-attrs")]
9799    pub extra_attrs: std::collections::HashMap<String, String>,
9800    /// Unknown child elements captured for roundtrip fidelity.
9801    #[cfg(feature = "extra-children")]
9802    #[serde(skip)]
9803    #[cfg(feature = "extra-children")]
9804    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9805}
9806
9807#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9808pub struct CTGroupTransform2D {
9809    #[serde(rename = "@rot")]
9810    #[serde(default, skip_serializing_if = "Option::is_none")]
9811    pub rot: Option<STAngle>,
9812    #[serde(rename = "@flipH")]
9813    #[serde(
9814        default,
9815        skip_serializing_if = "Option::is_none",
9816        with = "ooxml_xml::ooxml_bool"
9817    )]
9818    pub flip_h: Option<bool>,
9819    #[serde(rename = "@flipV")]
9820    #[serde(
9821        default,
9822        skip_serializing_if = "Option::is_none",
9823        with = "ooxml_xml::ooxml_bool"
9824    )]
9825    pub flip_v: Option<bool>,
9826    #[serde(rename = "off")]
9827    #[serde(default, skip_serializing_if = "Option::is_none")]
9828    pub offset: Option<Box<Point2D>>,
9829    #[serde(rename = "ext")]
9830    #[serde(default, skip_serializing_if = "Option::is_none")]
9831    pub extents: Option<Box<PositiveSize2D>>,
9832    #[serde(rename = "chOff")]
9833    #[serde(default, skip_serializing_if = "Option::is_none")]
9834    pub child_offset: Option<Box<Point2D>>,
9835    #[serde(rename = "chExt")]
9836    #[serde(default, skip_serializing_if = "Option::is_none")]
9837    pub child_extents: Option<Box<PositiveSize2D>>,
9838    /// Unknown attributes captured for roundtrip fidelity.
9839    #[cfg(feature = "extra-attrs")]
9840    #[serde(skip)]
9841    #[cfg(feature = "extra-attrs")]
9842    #[serde(default)]
9843    #[cfg(feature = "extra-attrs")]
9844    pub extra_attrs: std::collections::HashMap<String, String>,
9845    /// Unknown child elements captured for roundtrip fidelity.
9846    #[cfg(feature = "extra-children")]
9847    #[serde(skip)]
9848    #[cfg(feature = "extra-children")]
9849    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9850}
9851
9852#[derive(Debug, Clone, Serialize, Deserialize)]
9853pub struct CTPoint3D {
9854    #[serde(rename = "@x")]
9855    pub x: STCoordinate,
9856    #[serde(rename = "@y")]
9857    pub y: STCoordinate,
9858    #[serde(rename = "@z")]
9859    pub z: STCoordinate,
9860    /// Unknown attributes captured for roundtrip fidelity.
9861    #[cfg(feature = "extra-attrs")]
9862    #[serde(skip)]
9863    #[cfg(feature = "extra-attrs")]
9864    #[serde(default)]
9865    #[cfg(feature = "extra-attrs")]
9866    pub extra_attrs: std::collections::HashMap<String, String>,
9867}
9868
9869#[derive(Debug, Clone, Serialize, Deserialize)]
9870pub struct CTVector3D {
9871    #[serde(rename = "@dx")]
9872    pub dx: STCoordinate,
9873    #[serde(rename = "@dy")]
9874    pub dy: STCoordinate,
9875    #[serde(rename = "@dz")]
9876    pub dz: STCoordinate,
9877    /// Unknown attributes captured for roundtrip fidelity.
9878    #[cfg(feature = "extra-attrs")]
9879    #[serde(skip)]
9880    #[cfg(feature = "extra-attrs")]
9881    #[serde(default)]
9882    #[cfg(feature = "extra-attrs")]
9883    pub extra_attrs: std::collections::HashMap<String, String>,
9884}
9885
9886#[derive(Debug, Clone, Serialize, Deserialize)]
9887pub struct CTSphereCoords {
9888    #[serde(rename = "@lat")]
9889    pub lat: STPositiveFixedAngle,
9890    #[serde(rename = "@lon")]
9891    pub lon: STPositiveFixedAngle,
9892    #[serde(rename = "@rev")]
9893    pub rev: STPositiveFixedAngle,
9894    /// Unknown attributes captured for roundtrip fidelity.
9895    #[cfg(feature = "extra-attrs")]
9896    #[serde(skip)]
9897    #[cfg(feature = "extra-attrs")]
9898    #[serde(default)]
9899    #[cfg(feature = "extra-attrs")]
9900    pub extra_attrs: std::collections::HashMap<String, String>,
9901}
9902
9903#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9904pub struct CTRelativeRect {
9905    #[serde(rename = "@l")]
9906    #[serde(default, skip_serializing_if = "Option::is_none")]
9907    pub l: Option<STPercentage>,
9908    #[serde(rename = "@t")]
9909    #[serde(default, skip_serializing_if = "Option::is_none")]
9910    pub t: Option<STPercentage>,
9911    #[serde(rename = "@r")]
9912    #[serde(default, skip_serializing_if = "Option::is_none")]
9913    pub relationship_id: Option<STPercentage>,
9914    #[serde(rename = "@b")]
9915    #[serde(default, skip_serializing_if = "Option::is_none")]
9916    pub b: Option<STPercentage>,
9917    /// Unknown attributes captured for roundtrip fidelity.
9918    #[cfg(feature = "extra-attrs")]
9919    #[serde(skip)]
9920    #[cfg(feature = "extra-attrs")]
9921    #[serde(default)]
9922    #[cfg(feature = "extra-attrs")]
9923    pub extra_attrs: std::collections::HashMap<String, String>,
9924}
9925
9926#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9927pub struct CTColor {
9928    #[serde(skip)]
9929    #[serde(default)]
9930    pub color_choice: Option<Box<EGColorChoice>>,
9931    /// Unknown child elements captured for roundtrip fidelity.
9932    #[cfg(feature = "extra-children")]
9933    #[serde(skip)]
9934    #[cfg(feature = "extra-children")]
9935    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9936}
9937
9938#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9939pub struct CTColorMRU {
9940    #[serde(skip)]
9941    #[serde(default)]
9942    pub color_choice: Vec<EGColorChoice>,
9943    /// Unknown child elements captured for roundtrip fidelity.
9944    #[cfg(feature = "extra-children")]
9945    #[serde(skip)]
9946    #[cfg(feature = "extra-children")]
9947    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9948}
9949
9950#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9951pub struct AAGBlob {
9952    #[serde(rename = "@r:embed")]
9953    #[serde(default, skip_serializing_if = "Option::is_none")]
9954    pub embed: Option<STRelationshipId>,
9955    #[serde(rename = "@r:link")]
9956    #[serde(default, skip_serializing_if = "Option::is_none")]
9957    pub link: Option<STRelationshipId>,
9958    /// Unknown attributes captured for roundtrip fidelity.
9959    #[cfg(feature = "extra-attrs")]
9960    #[serde(skip)]
9961    #[cfg(feature = "extra-attrs")]
9962    #[serde(default)]
9963    #[cfg(feature = "extra-attrs")]
9964    pub extra_attrs: std::collections::HashMap<String, String>,
9965}
9966
9967#[derive(Debug, Clone, Serialize, Deserialize)]
9968pub struct CTEmbeddedWAVAudioFile {
9969    #[serde(rename = "@r:embed")]
9970    pub embed: STRelationshipId,
9971    #[serde(rename = "@name")]
9972    #[serde(default, skip_serializing_if = "Option::is_none")]
9973    pub name: Option<String>,
9974    /// Unknown attributes captured for roundtrip fidelity.
9975    #[cfg(feature = "extra-attrs")]
9976    #[serde(skip)]
9977    #[cfg(feature = "extra-attrs")]
9978    #[serde(default)]
9979    #[cfg(feature = "extra-attrs")]
9980    pub extra_attrs: std::collections::HashMap<String, String>,
9981}
9982
9983#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9984pub struct CTHyperlink {
9985    #[cfg(feature = "dml-text")]
9986    #[serde(rename = "@r:id")]
9987    #[serde(default, skip_serializing_if = "Option::is_none")]
9988    pub id: Option<STRelationshipId>,
9989    #[cfg(feature = "dml-text")]
9990    #[serde(rename = "@invalidUrl")]
9991    #[serde(default, skip_serializing_if = "Option::is_none")]
9992    pub invalid_url: Option<String>,
9993    #[cfg(feature = "dml-text")]
9994    #[serde(rename = "@action")]
9995    #[serde(default, skip_serializing_if = "Option::is_none")]
9996    pub action: Option<String>,
9997    #[cfg(feature = "dml-text")]
9998    #[serde(rename = "@tgtFrame")]
9999    #[serde(default, skip_serializing_if = "Option::is_none")]
10000    pub tgt_frame: Option<String>,
10001    #[cfg(feature = "dml-text")]
10002    #[serde(rename = "@tooltip")]
10003    #[serde(default, skip_serializing_if = "Option::is_none")]
10004    pub tooltip: Option<String>,
10005    #[cfg(feature = "dml-text")]
10006    #[serde(rename = "@history")]
10007    #[serde(
10008        default,
10009        skip_serializing_if = "Option::is_none",
10010        with = "ooxml_xml::ooxml_bool"
10011    )]
10012    pub history: Option<bool>,
10013    #[cfg(feature = "dml-text")]
10014    #[serde(rename = "@highlightClick")]
10015    #[serde(
10016        default,
10017        skip_serializing_if = "Option::is_none",
10018        with = "ooxml_xml::ooxml_bool"
10019    )]
10020    pub highlight_click: Option<bool>,
10021    #[cfg(feature = "dml-text")]
10022    #[serde(rename = "@endSnd")]
10023    #[serde(
10024        default,
10025        skip_serializing_if = "Option::is_none",
10026        with = "ooxml_xml::ooxml_bool"
10027    )]
10028    pub end_snd: Option<bool>,
10029    #[cfg(feature = "dml-text")]
10030    #[serde(rename = "snd")]
10031    #[serde(default, skip_serializing_if = "Option::is_none")]
10032    pub snd: Option<Box<CTEmbeddedWAVAudioFile>>,
10033    #[cfg(feature = "dml-extensions")]
10034    #[serde(rename = "extLst")]
10035    #[serde(default, skip_serializing_if = "Option::is_none")]
10036    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
10037    /// Unknown attributes captured for roundtrip fidelity.
10038    #[cfg(feature = "extra-attrs")]
10039    #[serde(skip)]
10040    #[cfg(feature = "extra-attrs")]
10041    #[serde(default)]
10042    #[cfg(feature = "extra-attrs")]
10043    pub extra_attrs: std::collections::HashMap<String, String>,
10044    /// Unknown child elements captured for roundtrip fidelity.
10045    #[cfg(feature = "extra-children")]
10046    #[serde(skip)]
10047    #[cfg(feature = "extra-children")]
10048    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10049}
10050
10051#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10052pub struct AAGLocking {
10053    #[serde(rename = "@noGrp")]
10054    #[serde(
10055        default,
10056        skip_serializing_if = "Option::is_none",
10057        with = "ooxml_xml::ooxml_bool"
10058    )]
10059    pub no_grp: Option<bool>,
10060    #[serde(rename = "@noSelect")]
10061    #[serde(
10062        default,
10063        skip_serializing_if = "Option::is_none",
10064        with = "ooxml_xml::ooxml_bool"
10065    )]
10066    pub no_select: Option<bool>,
10067    #[serde(rename = "@noRot")]
10068    #[serde(
10069        default,
10070        skip_serializing_if = "Option::is_none",
10071        with = "ooxml_xml::ooxml_bool"
10072    )]
10073    pub no_rot: Option<bool>,
10074    #[serde(rename = "@noChangeAspect")]
10075    #[serde(
10076        default,
10077        skip_serializing_if = "Option::is_none",
10078        with = "ooxml_xml::ooxml_bool"
10079    )]
10080    pub no_change_aspect: Option<bool>,
10081    #[serde(rename = "@noMove")]
10082    #[serde(
10083        default,
10084        skip_serializing_if = "Option::is_none",
10085        with = "ooxml_xml::ooxml_bool"
10086    )]
10087    pub no_move: Option<bool>,
10088    #[serde(rename = "@noResize")]
10089    #[serde(
10090        default,
10091        skip_serializing_if = "Option::is_none",
10092        with = "ooxml_xml::ooxml_bool"
10093    )]
10094    pub no_resize: Option<bool>,
10095    #[serde(rename = "@noEditPoints")]
10096    #[serde(
10097        default,
10098        skip_serializing_if = "Option::is_none",
10099        with = "ooxml_xml::ooxml_bool"
10100    )]
10101    pub no_edit_points: Option<bool>,
10102    #[serde(rename = "@noAdjustHandles")]
10103    #[serde(
10104        default,
10105        skip_serializing_if = "Option::is_none",
10106        with = "ooxml_xml::ooxml_bool"
10107    )]
10108    pub no_adjust_handles: Option<bool>,
10109    #[serde(rename = "@noChangeArrowheads")]
10110    #[serde(
10111        default,
10112        skip_serializing_if = "Option::is_none",
10113        with = "ooxml_xml::ooxml_bool"
10114    )]
10115    pub no_change_arrowheads: Option<bool>,
10116    #[serde(rename = "@noChangeShapeType")]
10117    #[serde(
10118        default,
10119        skip_serializing_if = "Option::is_none",
10120        with = "ooxml_xml::ooxml_bool"
10121    )]
10122    pub no_change_shape_type: Option<bool>,
10123    /// Unknown attributes captured for roundtrip fidelity.
10124    #[cfg(feature = "extra-attrs")]
10125    #[serde(skip)]
10126    #[cfg(feature = "extra-attrs")]
10127    #[serde(default)]
10128    #[cfg(feature = "extra-attrs")]
10129    pub extra_attrs: std::collections::HashMap<String, String>,
10130}
10131
10132#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10133pub struct CTConnectorLocking {
10134    #[serde(rename = "@noGrp")]
10135    #[serde(
10136        default,
10137        skip_serializing_if = "Option::is_none",
10138        with = "ooxml_xml::ooxml_bool"
10139    )]
10140    pub no_grp: Option<bool>,
10141    #[serde(rename = "@noSelect")]
10142    #[serde(
10143        default,
10144        skip_serializing_if = "Option::is_none",
10145        with = "ooxml_xml::ooxml_bool"
10146    )]
10147    pub no_select: Option<bool>,
10148    #[serde(rename = "@noRot")]
10149    #[serde(
10150        default,
10151        skip_serializing_if = "Option::is_none",
10152        with = "ooxml_xml::ooxml_bool"
10153    )]
10154    pub no_rot: Option<bool>,
10155    #[serde(rename = "@noChangeAspect")]
10156    #[serde(
10157        default,
10158        skip_serializing_if = "Option::is_none",
10159        with = "ooxml_xml::ooxml_bool"
10160    )]
10161    pub no_change_aspect: Option<bool>,
10162    #[serde(rename = "@noMove")]
10163    #[serde(
10164        default,
10165        skip_serializing_if = "Option::is_none",
10166        with = "ooxml_xml::ooxml_bool"
10167    )]
10168    pub no_move: Option<bool>,
10169    #[serde(rename = "@noResize")]
10170    #[serde(
10171        default,
10172        skip_serializing_if = "Option::is_none",
10173        with = "ooxml_xml::ooxml_bool"
10174    )]
10175    pub no_resize: Option<bool>,
10176    #[serde(rename = "@noEditPoints")]
10177    #[serde(
10178        default,
10179        skip_serializing_if = "Option::is_none",
10180        with = "ooxml_xml::ooxml_bool"
10181    )]
10182    pub no_edit_points: Option<bool>,
10183    #[serde(rename = "@noAdjustHandles")]
10184    #[serde(
10185        default,
10186        skip_serializing_if = "Option::is_none",
10187        with = "ooxml_xml::ooxml_bool"
10188    )]
10189    pub no_adjust_handles: Option<bool>,
10190    #[serde(rename = "@noChangeArrowheads")]
10191    #[serde(
10192        default,
10193        skip_serializing_if = "Option::is_none",
10194        with = "ooxml_xml::ooxml_bool"
10195    )]
10196    pub no_change_arrowheads: Option<bool>,
10197    #[serde(rename = "@noChangeShapeType")]
10198    #[serde(
10199        default,
10200        skip_serializing_if = "Option::is_none",
10201        with = "ooxml_xml::ooxml_bool"
10202    )]
10203    pub no_change_shape_type: Option<bool>,
10204    #[serde(rename = "extLst")]
10205    #[serde(default, skip_serializing_if = "Option::is_none")]
10206    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
10207    /// Unknown attributes captured for roundtrip fidelity.
10208    #[cfg(feature = "extra-attrs")]
10209    #[serde(skip)]
10210    #[cfg(feature = "extra-attrs")]
10211    #[serde(default)]
10212    #[cfg(feature = "extra-attrs")]
10213    pub extra_attrs: std::collections::HashMap<String, String>,
10214    /// Unknown child elements captured for roundtrip fidelity.
10215    #[cfg(feature = "extra-children")]
10216    #[serde(skip)]
10217    #[cfg(feature = "extra-children")]
10218    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10219}
10220
10221#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10222pub struct CTShapeLocking {
10223    #[serde(rename = "@noGrp")]
10224    #[serde(
10225        default,
10226        skip_serializing_if = "Option::is_none",
10227        with = "ooxml_xml::ooxml_bool"
10228    )]
10229    pub no_grp: Option<bool>,
10230    #[serde(rename = "@noSelect")]
10231    #[serde(
10232        default,
10233        skip_serializing_if = "Option::is_none",
10234        with = "ooxml_xml::ooxml_bool"
10235    )]
10236    pub no_select: Option<bool>,
10237    #[serde(rename = "@noRot")]
10238    #[serde(
10239        default,
10240        skip_serializing_if = "Option::is_none",
10241        with = "ooxml_xml::ooxml_bool"
10242    )]
10243    pub no_rot: Option<bool>,
10244    #[serde(rename = "@noChangeAspect")]
10245    #[serde(
10246        default,
10247        skip_serializing_if = "Option::is_none",
10248        with = "ooxml_xml::ooxml_bool"
10249    )]
10250    pub no_change_aspect: Option<bool>,
10251    #[serde(rename = "@noMove")]
10252    #[serde(
10253        default,
10254        skip_serializing_if = "Option::is_none",
10255        with = "ooxml_xml::ooxml_bool"
10256    )]
10257    pub no_move: Option<bool>,
10258    #[serde(rename = "@noResize")]
10259    #[serde(
10260        default,
10261        skip_serializing_if = "Option::is_none",
10262        with = "ooxml_xml::ooxml_bool"
10263    )]
10264    pub no_resize: Option<bool>,
10265    #[serde(rename = "@noEditPoints")]
10266    #[serde(
10267        default,
10268        skip_serializing_if = "Option::is_none",
10269        with = "ooxml_xml::ooxml_bool"
10270    )]
10271    pub no_edit_points: Option<bool>,
10272    #[serde(rename = "@noAdjustHandles")]
10273    #[serde(
10274        default,
10275        skip_serializing_if = "Option::is_none",
10276        with = "ooxml_xml::ooxml_bool"
10277    )]
10278    pub no_adjust_handles: Option<bool>,
10279    #[serde(rename = "@noChangeArrowheads")]
10280    #[serde(
10281        default,
10282        skip_serializing_if = "Option::is_none",
10283        with = "ooxml_xml::ooxml_bool"
10284    )]
10285    pub no_change_arrowheads: Option<bool>,
10286    #[serde(rename = "@noChangeShapeType")]
10287    #[serde(
10288        default,
10289        skip_serializing_if = "Option::is_none",
10290        with = "ooxml_xml::ooxml_bool"
10291    )]
10292    pub no_change_shape_type: Option<bool>,
10293    #[serde(rename = "@noTextEdit")]
10294    #[serde(
10295        default,
10296        skip_serializing_if = "Option::is_none",
10297        with = "ooxml_xml::ooxml_bool"
10298    )]
10299    pub no_text_edit: Option<bool>,
10300    #[serde(rename = "extLst")]
10301    #[serde(default, skip_serializing_if = "Option::is_none")]
10302    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
10303    /// Unknown attributes captured for roundtrip fidelity.
10304    #[cfg(feature = "extra-attrs")]
10305    #[serde(skip)]
10306    #[cfg(feature = "extra-attrs")]
10307    #[serde(default)]
10308    #[cfg(feature = "extra-attrs")]
10309    pub extra_attrs: std::collections::HashMap<String, String>,
10310    /// Unknown child elements captured for roundtrip fidelity.
10311    #[cfg(feature = "extra-children")]
10312    #[serde(skip)]
10313    #[cfg(feature = "extra-children")]
10314    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10315}
10316
10317#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10318pub struct CTPictureLocking {
10319    #[serde(rename = "@noGrp")]
10320    #[serde(
10321        default,
10322        skip_serializing_if = "Option::is_none",
10323        with = "ooxml_xml::ooxml_bool"
10324    )]
10325    pub no_grp: Option<bool>,
10326    #[serde(rename = "@noSelect")]
10327    #[serde(
10328        default,
10329        skip_serializing_if = "Option::is_none",
10330        with = "ooxml_xml::ooxml_bool"
10331    )]
10332    pub no_select: Option<bool>,
10333    #[serde(rename = "@noRot")]
10334    #[serde(
10335        default,
10336        skip_serializing_if = "Option::is_none",
10337        with = "ooxml_xml::ooxml_bool"
10338    )]
10339    pub no_rot: Option<bool>,
10340    #[serde(rename = "@noChangeAspect")]
10341    #[serde(
10342        default,
10343        skip_serializing_if = "Option::is_none",
10344        with = "ooxml_xml::ooxml_bool"
10345    )]
10346    pub no_change_aspect: Option<bool>,
10347    #[serde(rename = "@noMove")]
10348    #[serde(
10349        default,
10350        skip_serializing_if = "Option::is_none",
10351        with = "ooxml_xml::ooxml_bool"
10352    )]
10353    pub no_move: Option<bool>,
10354    #[serde(rename = "@noResize")]
10355    #[serde(
10356        default,
10357        skip_serializing_if = "Option::is_none",
10358        with = "ooxml_xml::ooxml_bool"
10359    )]
10360    pub no_resize: Option<bool>,
10361    #[serde(rename = "@noEditPoints")]
10362    #[serde(
10363        default,
10364        skip_serializing_if = "Option::is_none",
10365        with = "ooxml_xml::ooxml_bool"
10366    )]
10367    pub no_edit_points: Option<bool>,
10368    #[serde(rename = "@noAdjustHandles")]
10369    #[serde(
10370        default,
10371        skip_serializing_if = "Option::is_none",
10372        with = "ooxml_xml::ooxml_bool"
10373    )]
10374    pub no_adjust_handles: Option<bool>,
10375    #[serde(rename = "@noChangeArrowheads")]
10376    #[serde(
10377        default,
10378        skip_serializing_if = "Option::is_none",
10379        with = "ooxml_xml::ooxml_bool"
10380    )]
10381    pub no_change_arrowheads: Option<bool>,
10382    #[serde(rename = "@noChangeShapeType")]
10383    #[serde(
10384        default,
10385        skip_serializing_if = "Option::is_none",
10386        with = "ooxml_xml::ooxml_bool"
10387    )]
10388    pub no_change_shape_type: Option<bool>,
10389    #[serde(rename = "@noCrop")]
10390    #[serde(
10391        default,
10392        skip_serializing_if = "Option::is_none",
10393        with = "ooxml_xml::ooxml_bool"
10394    )]
10395    pub no_crop: Option<bool>,
10396    #[serde(rename = "extLst")]
10397    #[serde(default, skip_serializing_if = "Option::is_none")]
10398    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
10399    /// Unknown attributes captured for roundtrip fidelity.
10400    #[cfg(feature = "extra-attrs")]
10401    #[serde(skip)]
10402    #[cfg(feature = "extra-attrs")]
10403    #[serde(default)]
10404    #[cfg(feature = "extra-attrs")]
10405    pub extra_attrs: std::collections::HashMap<String, String>,
10406    /// Unknown child elements captured for roundtrip fidelity.
10407    #[cfg(feature = "extra-children")]
10408    #[serde(skip)]
10409    #[cfg(feature = "extra-children")]
10410    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10411}
10412
10413#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10414pub struct CTGroupLocking {
10415    #[serde(rename = "@noGrp")]
10416    #[serde(
10417        default,
10418        skip_serializing_if = "Option::is_none",
10419        with = "ooxml_xml::ooxml_bool"
10420    )]
10421    pub no_grp: Option<bool>,
10422    #[serde(rename = "@noUngrp")]
10423    #[serde(
10424        default,
10425        skip_serializing_if = "Option::is_none",
10426        with = "ooxml_xml::ooxml_bool"
10427    )]
10428    pub no_ungrp: Option<bool>,
10429    #[serde(rename = "@noSelect")]
10430    #[serde(
10431        default,
10432        skip_serializing_if = "Option::is_none",
10433        with = "ooxml_xml::ooxml_bool"
10434    )]
10435    pub no_select: Option<bool>,
10436    #[serde(rename = "@noRot")]
10437    #[serde(
10438        default,
10439        skip_serializing_if = "Option::is_none",
10440        with = "ooxml_xml::ooxml_bool"
10441    )]
10442    pub no_rot: Option<bool>,
10443    #[serde(rename = "@noChangeAspect")]
10444    #[serde(
10445        default,
10446        skip_serializing_if = "Option::is_none",
10447        with = "ooxml_xml::ooxml_bool"
10448    )]
10449    pub no_change_aspect: Option<bool>,
10450    #[serde(rename = "@noMove")]
10451    #[serde(
10452        default,
10453        skip_serializing_if = "Option::is_none",
10454        with = "ooxml_xml::ooxml_bool"
10455    )]
10456    pub no_move: Option<bool>,
10457    #[serde(rename = "@noResize")]
10458    #[serde(
10459        default,
10460        skip_serializing_if = "Option::is_none",
10461        with = "ooxml_xml::ooxml_bool"
10462    )]
10463    pub no_resize: Option<bool>,
10464    #[serde(rename = "extLst")]
10465    #[serde(default, skip_serializing_if = "Option::is_none")]
10466    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
10467    /// Unknown attributes captured for roundtrip fidelity.
10468    #[cfg(feature = "extra-attrs")]
10469    #[serde(skip)]
10470    #[cfg(feature = "extra-attrs")]
10471    #[serde(default)]
10472    #[cfg(feature = "extra-attrs")]
10473    pub extra_attrs: std::collections::HashMap<String, String>,
10474    /// Unknown child elements captured for roundtrip fidelity.
10475    #[cfg(feature = "extra-children")]
10476    #[serde(skip)]
10477    #[cfg(feature = "extra-children")]
10478    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10479}
10480
10481#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10482pub struct CTGraphicalObjectFrameLocking {
10483    #[serde(rename = "@noGrp")]
10484    #[serde(
10485        default,
10486        skip_serializing_if = "Option::is_none",
10487        with = "ooxml_xml::ooxml_bool"
10488    )]
10489    pub no_grp: Option<bool>,
10490    #[serde(rename = "@noDrilldown")]
10491    #[serde(
10492        default,
10493        skip_serializing_if = "Option::is_none",
10494        with = "ooxml_xml::ooxml_bool"
10495    )]
10496    pub no_drilldown: Option<bool>,
10497    #[serde(rename = "@noSelect")]
10498    #[serde(
10499        default,
10500        skip_serializing_if = "Option::is_none",
10501        with = "ooxml_xml::ooxml_bool"
10502    )]
10503    pub no_select: Option<bool>,
10504    #[serde(rename = "@noChangeAspect")]
10505    #[serde(
10506        default,
10507        skip_serializing_if = "Option::is_none",
10508        with = "ooxml_xml::ooxml_bool"
10509    )]
10510    pub no_change_aspect: Option<bool>,
10511    #[serde(rename = "@noMove")]
10512    #[serde(
10513        default,
10514        skip_serializing_if = "Option::is_none",
10515        with = "ooxml_xml::ooxml_bool"
10516    )]
10517    pub no_move: Option<bool>,
10518    #[serde(rename = "@noResize")]
10519    #[serde(
10520        default,
10521        skip_serializing_if = "Option::is_none",
10522        with = "ooxml_xml::ooxml_bool"
10523    )]
10524    pub no_resize: Option<bool>,
10525    #[serde(rename = "extLst")]
10526    #[serde(default, skip_serializing_if = "Option::is_none")]
10527    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
10528    /// Unknown attributes captured for roundtrip fidelity.
10529    #[cfg(feature = "extra-attrs")]
10530    #[serde(skip)]
10531    #[cfg(feature = "extra-attrs")]
10532    #[serde(default)]
10533    #[cfg(feature = "extra-attrs")]
10534    pub extra_attrs: std::collections::HashMap<String, String>,
10535    /// Unknown child elements captured for roundtrip fidelity.
10536    #[cfg(feature = "extra-children")]
10537    #[serde(skip)]
10538    #[cfg(feature = "extra-children")]
10539    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10540}
10541
10542#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10543pub struct CTContentPartLocking {
10544    #[serde(rename = "@noGrp")]
10545    #[serde(
10546        default,
10547        skip_serializing_if = "Option::is_none",
10548        with = "ooxml_xml::ooxml_bool"
10549    )]
10550    pub no_grp: Option<bool>,
10551    #[serde(rename = "@noSelect")]
10552    #[serde(
10553        default,
10554        skip_serializing_if = "Option::is_none",
10555        with = "ooxml_xml::ooxml_bool"
10556    )]
10557    pub no_select: Option<bool>,
10558    #[serde(rename = "@noRot")]
10559    #[serde(
10560        default,
10561        skip_serializing_if = "Option::is_none",
10562        with = "ooxml_xml::ooxml_bool"
10563    )]
10564    pub no_rot: Option<bool>,
10565    #[serde(rename = "@noChangeAspect")]
10566    #[serde(
10567        default,
10568        skip_serializing_if = "Option::is_none",
10569        with = "ooxml_xml::ooxml_bool"
10570    )]
10571    pub no_change_aspect: Option<bool>,
10572    #[serde(rename = "@noMove")]
10573    #[serde(
10574        default,
10575        skip_serializing_if = "Option::is_none",
10576        with = "ooxml_xml::ooxml_bool"
10577    )]
10578    pub no_move: Option<bool>,
10579    #[serde(rename = "@noResize")]
10580    #[serde(
10581        default,
10582        skip_serializing_if = "Option::is_none",
10583        with = "ooxml_xml::ooxml_bool"
10584    )]
10585    pub no_resize: Option<bool>,
10586    #[serde(rename = "@noEditPoints")]
10587    #[serde(
10588        default,
10589        skip_serializing_if = "Option::is_none",
10590        with = "ooxml_xml::ooxml_bool"
10591    )]
10592    pub no_edit_points: Option<bool>,
10593    #[serde(rename = "@noAdjustHandles")]
10594    #[serde(
10595        default,
10596        skip_serializing_if = "Option::is_none",
10597        with = "ooxml_xml::ooxml_bool"
10598    )]
10599    pub no_adjust_handles: Option<bool>,
10600    #[serde(rename = "@noChangeArrowheads")]
10601    #[serde(
10602        default,
10603        skip_serializing_if = "Option::is_none",
10604        with = "ooxml_xml::ooxml_bool"
10605    )]
10606    pub no_change_arrowheads: Option<bool>,
10607    #[serde(rename = "@noChangeShapeType")]
10608    #[serde(
10609        default,
10610        skip_serializing_if = "Option::is_none",
10611        with = "ooxml_xml::ooxml_bool"
10612    )]
10613    pub no_change_shape_type: Option<bool>,
10614    #[serde(rename = "extLst")]
10615    #[serde(default, skip_serializing_if = "Option::is_none")]
10616    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
10617    /// Unknown attributes captured for roundtrip fidelity.
10618    #[cfg(feature = "extra-attrs")]
10619    #[serde(skip)]
10620    #[cfg(feature = "extra-attrs")]
10621    #[serde(default)]
10622    #[cfg(feature = "extra-attrs")]
10623    pub extra_attrs: std::collections::HashMap<String, String>,
10624    /// Unknown child elements captured for roundtrip fidelity.
10625    #[cfg(feature = "extra-children")]
10626    #[serde(skip)]
10627    #[cfg(feature = "extra-children")]
10628    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10629}
10630
10631#[derive(Debug, Clone, Serialize, Deserialize)]
10632pub struct CTNonVisualDrawingProps {
10633    #[serde(rename = "@id")]
10634    pub id: STDrawingElementId,
10635    #[serde(rename = "@name")]
10636    pub name: String,
10637    #[serde(rename = "@descr")]
10638    #[serde(default, skip_serializing_if = "Option::is_none")]
10639    pub descr: Option<String>,
10640    #[serde(rename = "@hidden")]
10641    #[serde(
10642        default,
10643        skip_serializing_if = "Option::is_none",
10644        with = "ooxml_xml::ooxml_bool"
10645    )]
10646    pub hidden: Option<bool>,
10647    #[serde(rename = "@title")]
10648    #[serde(default, skip_serializing_if = "Option::is_none")]
10649    pub title: Option<String>,
10650    #[cfg(feature = "dml-text")]
10651    #[serde(rename = "hlinkClick")]
10652    #[serde(default, skip_serializing_if = "Option::is_none")]
10653    pub hlink_click: Option<Box<CTHyperlink>>,
10654    #[cfg(feature = "dml-text")]
10655    #[serde(rename = "hlinkHover")]
10656    #[serde(default, skip_serializing_if = "Option::is_none")]
10657    pub hlink_hover: Option<Box<CTHyperlink>>,
10658    #[cfg(feature = "dml-extensions")]
10659    #[serde(rename = "extLst")]
10660    #[serde(default, skip_serializing_if = "Option::is_none")]
10661    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
10662    /// Unknown attributes captured for roundtrip fidelity.
10663    #[cfg(feature = "extra-attrs")]
10664    #[serde(skip)]
10665    #[cfg(feature = "extra-attrs")]
10666    #[serde(default)]
10667    #[cfg(feature = "extra-attrs")]
10668    pub extra_attrs: std::collections::HashMap<String, String>,
10669    /// Unknown child elements captured for roundtrip fidelity.
10670    #[cfg(feature = "extra-children")]
10671    #[serde(skip)]
10672    #[cfg(feature = "extra-children")]
10673    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10674}
10675
10676#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10677pub struct CTNonVisualDrawingShapeProps {
10678    #[serde(rename = "@txBox")]
10679    #[serde(
10680        default,
10681        skip_serializing_if = "Option::is_none",
10682        with = "ooxml_xml::ooxml_bool"
10683    )]
10684    pub tx_box: Option<bool>,
10685    #[serde(rename = "spLocks")]
10686    #[serde(default, skip_serializing_if = "Option::is_none")]
10687    pub sp_locks: Option<Box<CTShapeLocking>>,
10688    #[serde(rename = "extLst")]
10689    #[serde(default, skip_serializing_if = "Option::is_none")]
10690    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
10691    /// Unknown attributes captured for roundtrip fidelity.
10692    #[cfg(feature = "extra-attrs")]
10693    #[serde(skip)]
10694    #[cfg(feature = "extra-attrs")]
10695    #[serde(default)]
10696    #[cfg(feature = "extra-attrs")]
10697    pub extra_attrs: std::collections::HashMap<String, String>,
10698    /// Unknown child elements captured for roundtrip fidelity.
10699    #[cfg(feature = "extra-children")]
10700    #[serde(skip)]
10701    #[cfg(feature = "extra-children")]
10702    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10703}
10704
10705#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10706pub struct CTNonVisualConnectorProperties {
10707    #[cfg(feature = "dml-shapes")]
10708    #[serde(rename = "cxnSpLocks")]
10709    #[serde(default, skip_serializing_if = "Option::is_none")]
10710    pub cxn_sp_locks: Option<Box<CTConnectorLocking>>,
10711    #[cfg(feature = "dml-shapes")]
10712    #[serde(rename = "stCxn")]
10713    #[serde(default, skip_serializing_if = "Option::is_none")]
10714    pub st_cxn: Option<Box<CTConnection>>,
10715    #[cfg(feature = "dml-shapes")]
10716    #[serde(rename = "endCxn")]
10717    #[serde(default, skip_serializing_if = "Option::is_none")]
10718    pub end_cxn: Option<Box<CTConnection>>,
10719    #[cfg(feature = "dml-extensions")]
10720    #[serde(rename = "extLst")]
10721    #[serde(default, skip_serializing_if = "Option::is_none")]
10722    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
10723    /// Unknown child elements captured for roundtrip fidelity.
10724    #[cfg(feature = "extra-children")]
10725    #[serde(skip)]
10726    #[cfg(feature = "extra-children")]
10727    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10728}
10729
10730#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10731pub struct CTNonVisualPictureProperties {
10732    #[cfg(feature = "dml-shapes")]
10733    #[serde(rename = "@preferRelativeResize")]
10734    #[serde(
10735        default,
10736        skip_serializing_if = "Option::is_none",
10737        with = "ooxml_xml::ooxml_bool"
10738    )]
10739    pub prefer_relative_resize: Option<bool>,
10740    #[cfg(feature = "dml-shapes")]
10741    #[serde(rename = "picLocks")]
10742    #[serde(default, skip_serializing_if = "Option::is_none")]
10743    pub pic_locks: Option<Box<CTPictureLocking>>,
10744    #[cfg(feature = "dml-extensions")]
10745    #[serde(rename = "extLst")]
10746    #[serde(default, skip_serializing_if = "Option::is_none")]
10747    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
10748    /// Unknown attributes captured for roundtrip fidelity.
10749    #[cfg(feature = "extra-attrs")]
10750    #[serde(skip)]
10751    #[cfg(feature = "extra-attrs")]
10752    #[serde(default)]
10753    #[cfg(feature = "extra-attrs")]
10754    pub extra_attrs: std::collections::HashMap<String, String>,
10755    /// Unknown child elements captured for roundtrip fidelity.
10756    #[cfg(feature = "extra-children")]
10757    #[serde(skip)]
10758    #[cfg(feature = "extra-children")]
10759    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10760}
10761
10762#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10763pub struct CTNonVisualGroupDrawingShapeProps {
10764    #[cfg(feature = "dml-shapes")]
10765    #[serde(rename = "grpSpLocks")]
10766    #[serde(default, skip_serializing_if = "Option::is_none")]
10767    pub grp_sp_locks: Option<Box<CTGroupLocking>>,
10768    #[cfg(feature = "dml-extensions")]
10769    #[serde(rename = "extLst")]
10770    #[serde(default, skip_serializing_if = "Option::is_none")]
10771    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
10772    /// Unknown child elements captured for roundtrip fidelity.
10773    #[cfg(feature = "extra-children")]
10774    #[serde(skip)]
10775    #[cfg(feature = "extra-children")]
10776    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10777}
10778
10779#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10780pub struct CTNonVisualGraphicFrameProperties {
10781    #[cfg(feature = "dml-shapes")]
10782    #[serde(rename = "graphicFrameLocks")]
10783    #[serde(default, skip_serializing_if = "Option::is_none")]
10784    pub graphic_frame_locks: Option<Box<CTGraphicalObjectFrameLocking>>,
10785    #[cfg(feature = "dml-extensions")]
10786    #[serde(rename = "extLst")]
10787    #[serde(default, skip_serializing_if = "Option::is_none")]
10788    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
10789    /// Unknown child elements captured for roundtrip fidelity.
10790    #[cfg(feature = "extra-children")]
10791    #[serde(skip)]
10792    #[cfg(feature = "extra-children")]
10793    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10794}
10795
10796#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10797pub struct CTNonVisualContentPartProperties {
10798    #[serde(rename = "@isComment")]
10799    #[serde(
10800        default,
10801        skip_serializing_if = "Option::is_none",
10802        with = "ooxml_xml::ooxml_bool"
10803    )]
10804    pub is_comment: Option<bool>,
10805    #[serde(rename = "cpLocks")]
10806    #[serde(default, skip_serializing_if = "Option::is_none")]
10807    pub cp_locks: Option<Box<CTContentPartLocking>>,
10808    #[serde(rename = "extLst")]
10809    #[serde(default, skip_serializing_if = "Option::is_none")]
10810    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
10811    /// Unknown attributes captured for roundtrip fidelity.
10812    #[cfg(feature = "extra-attrs")]
10813    #[serde(skip)]
10814    #[cfg(feature = "extra-attrs")]
10815    #[serde(default)]
10816    #[cfg(feature = "extra-attrs")]
10817    pub extra_attrs: std::collections::HashMap<String, String>,
10818    /// Unknown child elements captured for roundtrip fidelity.
10819    #[cfg(feature = "extra-children")]
10820    #[serde(skip)]
10821    #[cfg(feature = "extra-children")]
10822    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10823}
10824
10825#[derive(Debug, Clone, Serialize, Deserialize)]
10826pub struct CTGraphicalObjectData {
10827    #[serde(rename = "@uri")]
10828    pub uri: String,
10829    /// Unknown attributes captured for roundtrip fidelity.
10830    #[cfg(feature = "extra-attrs")]
10831    #[serde(skip)]
10832    #[cfg(feature = "extra-attrs")]
10833    #[serde(default)]
10834    #[cfg(feature = "extra-attrs")]
10835    pub extra_attrs: std::collections::HashMap<String, String>,
10836}
10837
10838pub type GraphicalObjectDataAnyElement = String;
10839
10840pub type GraphicalObjectElement = Box<CTGraphicalObjectData>;
10841
10842pub type AGraphic = GraphicalObjectElement;
10843
10844#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10845pub struct CTAnimationDgmElement {
10846    #[serde(rename = "@id")]
10847    #[serde(default, skip_serializing_if = "Option::is_none")]
10848    pub id: Option<Guid>,
10849    #[serde(rename = "@bldStep")]
10850    #[serde(default, skip_serializing_if = "Option::is_none")]
10851    pub bld_step: Option<STDgmBuildStep>,
10852    /// Unknown attributes captured for roundtrip fidelity.
10853    #[cfg(feature = "extra-attrs")]
10854    #[serde(skip)]
10855    #[cfg(feature = "extra-attrs")]
10856    #[serde(default)]
10857    #[cfg(feature = "extra-attrs")]
10858    pub extra_attrs: std::collections::HashMap<String, String>,
10859}
10860
10861#[derive(Debug, Clone, Serialize, Deserialize)]
10862pub struct CTAnimationChartElement {
10863    #[serde(rename = "@seriesIdx")]
10864    #[serde(default, skip_serializing_if = "Option::is_none")]
10865    pub series_idx: Option<i32>,
10866    #[serde(rename = "@categoryIdx")]
10867    #[serde(default, skip_serializing_if = "Option::is_none")]
10868    pub category_idx: Option<i32>,
10869    #[serde(rename = "@bldStep")]
10870    pub bld_step: STChartBuildStep,
10871    /// Unknown attributes captured for roundtrip fidelity.
10872    #[cfg(feature = "extra-attrs")]
10873    #[serde(skip)]
10874    #[cfg(feature = "extra-attrs")]
10875    #[serde(default)]
10876    #[cfg(feature = "extra-attrs")]
10877    pub extra_attrs: std::collections::HashMap<String, String>,
10878}
10879
10880#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10881pub struct CTAnimationElementChoice {
10882    #[serde(rename = "dgm")]
10883    #[serde(default, skip_serializing_if = "Option::is_none")]
10884    pub dgm: Option<Box<CTAnimationDgmElement>>,
10885    #[serde(rename = "chart")]
10886    #[serde(default, skip_serializing_if = "Option::is_none")]
10887    pub chart: Option<Box<CTAnimationChartElement>>,
10888    /// Unknown child elements captured for roundtrip fidelity.
10889    #[cfg(feature = "extra-children")]
10890    #[serde(skip)]
10891    #[cfg(feature = "extra-children")]
10892    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10893}
10894
10895#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10896pub struct CTAnimationDgmBuildProperties {
10897    #[serde(rename = "@bld")]
10898    #[serde(default, skip_serializing_if = "Option::is_none")]
10899    pub bld: Option<STAnimationDgmBuildType>,
10900    #[serde(rename = "@rev")]
10901    #[serde(
10902        default,
10903        skip_serializing_if = "Option::is_none",
10904        with = "ooxml_xml::ooxml_bool"
10905    )]
10906    pub rev: Option<bool>,
10907    /// Unknown attributes captured for roundtrip fidelity.
10908    #[cfg(feature = "extra-attrs")]
10909    #[serde(skip)]
10910    #[cfg(feature = "extra-attrs")]
10911    #[serde(default)]
10912    #[cfg(feature = "extra-attrs")]
10913    pub extra_attrs: std::collections::HashMap<String, String>,
10914}
10915
10916#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10917pub struct CTAnimationChartBuildProperties {
10918    #[serde(rename = "@bld")]
10919    #[serde(default, skip_serializing_if = "Option::is_none")]
10920    pub bld: Option<STAnimationChartBuildType>,
10921    #[serde(rename = "@animBg")]
10922    #[serde(
10923        default,
10924        skip_serializing_if = "Option::is_none",
10925        with = "ooxml_xml::ooxml_bool"
10926    )]
10927    pub anim_bg: Option<bool>,
10928    /// Unknown attributes captured for roundtrip fidelity.
10929    #[cfg(feature = "extra-attrs")]
10930    #[serde(skip)]
10931    #[cfg(feature = "extra-attrs")]
10932    #[serde(default)]
10933    #[cfg(feature = "extra-attrs")]
10934    pub extra_attrs: std::collections::HashMap<String, String>,
10935}
10936
10937#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10938pub struct CTAnimationGraphicalObjectBuildProperties {
10939    #[serde(rename = "bldDgm")]
10940    #[serde(default, skip_serializing_if = "Option::is_none")]
10941    pub bld_dgm: Option<Box<CTAnimationDgmBuildProperties>>,
10942    #[serde(rename = "bldChart")]
10943    #[serde(default, skip_serializing_if = "Option::is_none")]
10944    pub bld_chart: Option<Box<CTAnimationChartBuildProperties>>,
10945    /// Unknown child elements captured for roundtrip fidelity.
10946    #[cfg(feature = "extra-children")]
10947    #[serde(skip)]
10948    #[cfg(feature = "extra-children")]
10949    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10950}
10951
10952#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10953pub struct CTBackgroundFormatting {
10954    #[serde(skip)]
10955    #[serde(default)]
10956    pub fill_properties: Option<Box<EGFillProperties>>,
10957    #[serde(skip)]
10958    #[serde(default)]
10959    pub effect_properties: Option<Box<EGEffectProperties>>,
10960    /// Unknown child elements captured for roundtrip fidelity.
10961    #[cfg(feature = "extra-children")]
10962    #[serde(skip)]
10963    #[cfg(feature = "extra-children")]
10964    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10965}
10966
10967#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10968pub struct CTWholeE2oFormatting {
10969    #[serde(rename = "ln")]
10970    #[serde(default, skip_serializing_if = "Option::is_none")]
10971    pub line: Option<Box<LineProperties>>,
10972    #[serde(skip)]
10973    #[serde(default)]
10974    pub effect_properties: Option<Box<EGEffectProperties>>,
10975    /// Unknown child elements captured for roundtrip fidelity.
10976    #[cfg(feature = "extra-children")]
10977    #[serde(skip)]
10978    #[cfg(feature = "extra-children")]
10979    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10980}
10981
10982#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10983pub struct CTGvmlUseShapeRectangle;
10984
10985#[derive(Debug, Clone, Serialize, Deserialize)]
10986pub struct CTGvmlTextShape {
10987    #[serde(rename = "txBody")]
10988    pub tx_body: Box<TextBody>,
10989    #[serde(rename = "useSpRect")]
10990    #[serde(default, skip_serializing_if = "Option::is_none")]
10991    pub use_sp_rect: Option<Box<CTGvmlUseShapeRectangle>>,
10992    #[serde(rename = "xfrm")]
10993    #[serde(default, skip_serializing_if = "Option::is_none")]
10994    pub transform: Option<Box<Transform2D>>,
10995    #[serde(rename = "extLst")]
10996    #[serde(default, skip_serializing_if = "Option::is_none")]
10997    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
10998    /// Unknown child elements captured for roundtrip fidelity.
10999    #[cfg(feature = "extra-children")]
11000    #[serde(skip)]
11001    #[cfg(feature = "extra-children")]
11002    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11003}
11004
11005#[derive(Debug, Clone, Serialize, Deserialize)]
11006pub struct CTGvmlShapeNonVisual {
11007    #[serde(rename = "cNvPr")]
11008    pub common_non_visual_properties: Box<CTNonVisualDrawingProps>,
11009    #[serde(rename = "cNvSpPr")]
11010    pub common_non_visual_shape_properties: Box<CTNonVisualDrawingShapeProps>,
11011    /// Unknown child elements captured for roundtrip fidelity.
11012    #[cfg(feature = "extra-children")]
11013    #[serde(skip)]
11014    #[cfg(feature = "extra-children")]
11015    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11016}
11017
11018#[derive(Debug, Clone, Serialize, Deserialize)]
11019pub struct CTGvmlShape {
11020    #[serde(rename = "nvSpPr")]
11021    pub nv_sp_pr: Box<CTGvmlShapeNonVisual>,
11022    #[serde(rename = "spPr")]
11023    pub sp_pr: Box<CTShapeProperties>,
11024    #[serde(rename = "txSp")]
11025    #[serde(default, skip_serializing_if = "Option::is_none")]
11026    pub tx_sp: Option<Box<CTGvmlTextShape>>,
11027    #[serde(rename = "style")]
11028    #[serde(default, skip_serializing_if = "Option::is_none")]
11029    pub style: Option<Box<ShapeStyle>>,
11030    #[serde(rename = "extLst")]
11031    #[serde(default, skip_serializing_if = "Option::is_none")]
11032    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
11033    /// Unknown child elements captured for roundtrip fidelity.
11034    #[cfg(feature = "extra-children")]
11035    #[serde(skip)]
11036    #[cfg(feature = "extra-children")]
11037    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11038}
11039
11040#[derive(Debug, Clone, Serialize, Deserialize)]
11041pub struct CTGvmlConnectorNonVisual {
11042    #[serde(rename = "cNvPr")]
11043    pub common_non_visual_properties: Box<CTNonVisualDrawingProps>,
11044    #[serde(rename = "cNvCxnSpPr")]
11045    pub c_nv_cxn_sp_pr: Box<CTNonVisualConnectorProperties>,
11046    /// Unknown child elements captured for roundtrip fidelity.
11047    #[cfg(feature = "extra-children")]
11048    #[serde(skip)]
11049    #[cfg(feature = "extra-children")]
11050    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11051}
11052
11053#[derive(Debug, Clone, Serialize, Deserialize)]
11054pub struct CTGvmlConnector {
11055    #[serde(rename = "nvCxnSpPr")]
11056    pub nv_cxn_sp_pr: Box<CTGvmlConnectorNonVisual>,
11057    #[serde(rename = "spPr")]
11058    pub sp_pr: Box<CTShapeProperties>,
11059    #[serde(rename = "style")]
11060    #[serde(default, skip_serializing_if = "Option::is_none")]
11061    pub style: Option<Box<ShapeStyle>>,
11062    #[serde(rename = "extLst")]
11063    #[serde(default, skip_serializing_if = "Option::is_none")]
11064    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
11065    /// Unknown child elements captured for roundtrip fidelity.
11066    #[cfg(feature = "extra-children")]
11067    #[serde(skip)]
11068    #[cfg(feature = "extra-children")]
11069    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11070}
11071
11072#[derive(Debug, Clone, Serialize, Deserialize)]
11073pub struct CTGvmlPictureNonVisual {
11074    #[serde(rename = "cNvPr")]
11075    pub common_non_visual_properties: Box<CTNonVisualDrawingProps>,
11076    #[serde(rename = "cNvPicPr")]
11077    pub common_non_visual_picture_properties: Box<CTNonVisualPictureProperties>,
11078    /// Unknown child elements captured for roundtrip fidelity.
11079    #[cfg(feature = "extra-children")]
11080    #[serde(skip)]
11081    #[cfg(feature = "extra-children")]
11082    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11083}
11084
11085#[derive(Debug, Clone, Serialize, Deserialize)]
11086pub struct CTGvmlPicture {
11087    #[serde(rename = "nvPicPr")]
11088    pub nv_pic_pr: Box<CTGvmlPictureNonVisual>,
11089    #[serde(rename = "blipFill")]
11090    pub blip_fill: Box<BlipFillProperties>,
11091    #[serde(rename = "spPr")]
11092    pub sp_pr: Box<CTShapeProperties>,
11093    #[serde(rename = "style")]
11094    #[serde(default, skip_serializing_if = "Option::is_none")]
11095    pub style: Option<Box<ShapeStyle>>,
11096    #[serde(rename = "extLst")]
11097    #[serde(default, skip_serializing_if = "Option::is_none")]
11098    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
11099    /// Unknown child elements captured for roundtrip fidelity.
11100    #[cfg(feature = "extra-children")]
11101    #[serde(skip)]
11102    #[cfg(feature = "extra-children")]
11103    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11104}
11105
11106#[derive(Debug, Clone, Serialize, Deserialize)]
11107pub struct CTGvmlGraphicFrameNonVisual {
11108    #[serde(rename = "cNvPr")]
11109    pub common_non_visual_properties: Box<CTNonVisualDrawingProps>,
11110    #[serde(rename = "cNvGraphicFramePr")]
11111    pub c_nv_graphic_frame_pr: Box<CTNonVisualGraphicFrameProperties>,
11112    /// Unknown child elements captured for roundtrip fidelity.
11113    #[cfg(feature = "extra-children")]
11114    #[serde(skip)]
11115    #[cfg(feature = "extra-children")]
11116    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11117}
11118
11119#[derive(Debug, Clone, Serialize, Deserialize)]
11120pub struct CTGvmlGraphicalObjectFrame {
11121    #[serde(rename = "nvGraphicFramePr")]
11122    pub nv_graphic_frame_pr: Box<CTGvmlGraphicFrameNonVisual>,
11123    #[serde(rename = "graphic")]
11124    pub graphic: GraphicalObjectElement,
11125    #[serde(rename = "xfrm")]
11126    pub transform: Box<Transform2D>,
11127    #[serde(rename = "extLst")]
11128    #[serde(default, skip_serializing_if = "Option::is_none")]
11129    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
11130    /// Unknown child elements captured for roundtrip fidelity.
11131    #[cfg(feature = "extra-children")]
11132    #[serde(skip)]
11133    #[cfg(feature = "extra-children")]
11134    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11135}
11136
11137#[derive(Debug, Clone, Serialize, Deserialize)]
11138pub struct CTGvmlGroupShapeNonVisual {
11139    #[serde(rename = "cNvPr")]
11140    pub common_non_visual_properties: Box<CTNonVisualDrawingProps>,
11141    #[serde(rename = "cNvGrpSpPr")]
11142    pub c_nv_grp_sp_pr: Box<CTNonVisualGroupDrawingShapeProps>,
11143    /// Unknown child elements captured for roundtrip fidelity.
11144    #[cfg(feature = "extra-children")]
11145    #[serde(skip)]
11146    #[cfg(feature = "extra-children")]
11147    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11148}
11149
11150#[derive(Debug, Clone, Serialize, Deserialize)]
11151pub struct CTGvmlGroupShape {
11152    #[serde(rename = "nvGrpSpPr")]
11153    pub nv_grp_sp_pr: Box<CTGvmlGroupShapeNonVisual>,
11154    #[serde(rename = "grpSpPr")]
11155    pub grp_sp_pr: Box<CTGroupShapeProperties>,
11156    #[serde(rename = "txSp")]
11157    #[serde(default, skip_serializing_if = "Vec::is_empty")]
11158    pub tx_sp: Vec<CTGvmlTextShape>,
11159    #[serde(rename = "sp")]
11160    #[serde(default, skip_serializing_if = "Vec::is_empty")]
11161    pub sp: Vec<CTGvmlShape>,
11162    #[serde(rename = "cxnSp")]
11163    #[serde(default, skip_serializing_if = "Vec::is_empty")]
11164    pub cxn_sp: Vec<CTGvmlConnector>,
11165    #[serde(rename = "pic")]
11166    #[serde(default, skip_serializing_if = "Vec::is_empty")]
11167    pub pic: Vec<CTGvmlPicture>,
11168    #[serde(rename = "graphicFrame")]
11169    #[serde(default, skip_serializing_if = "Vec::is_empty")]
11170    pub graphic_frame: Vec<CTGvmlGraphicalObjectFrame>,
11171    #[serde(rename = "grpSp")]
11172    #[serde(default, skip_serializing_if = "Vec::is_empty")]
11173    pub grp_sp: Vec<CTGvmlGroupShape>,
11174    #[serde(rename = "extLst")]
11175    #[serde(default, skip_serializing_if = "Option::is_none")]
11176    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
11177    /// Unknown child elements captured for roundtrip fidelity.
11178    #[cfg(feature = "extra-children")]
11179    #[serde(skip)]
11180    #[cfg(feature = "extra-children")]
11181    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11182}
11183
11184#[derive(Debug, Clone, Serialize, Deserialize)]
11185pub struct CTCamera {
11186    #[cfg(feature = "dml-3d")]
11187    #[serde(rename = "@prst")]
11188    pub preset: STPresetCameraType,
11189    #[cfg(feature = "dml-3d")]
11190    #[serde(rename = "@fov")]
11191    #[serde(default, skip_serializing_if = "Option::is_none")]
11192    pub fov: Option<STFOVAngle>,
11193    #[cfg(feature = "dml-3d")]
11194    #[serde(rename = "@zoom")]
11195    #[serde(default, skip_serializing_if = "Option::is_none")]
11196    pub zoom: Option<STPositivePercentage>,
11197    #[cfg(feature = "dml-3d")]
11198    #[serde(rename = "rot")]
11199    #[serde(default, skip_serializing_if = "Option::is_none")]
11200    pub rot: Option<Box<CTSphereCoords>>,
11201    /// Unknown attributes captured for roundtrip fidelity.
11202    #[cfg(feature = "extra-attrs")]
11203    #[serde(skip)]
11204    #[cfg(feature = "extra-attrs")]
11205    #[serde(default)]
11206    #[cfg(feature = "extra-attrs")]
11207    pub extra_attrs: std::collections::HashMap<String, String>,
11208    /// Unknown child elements captured for roundtrip fidelity.
11209    #[cfg(feature = "extra-children")]
11210    #[serde(skip)]
11211    #[cfg(feature = "extra-children")]
11212    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11213}
11214
11215#[derive(Debug, Clone, Serialize, Deserialize)]
11216pub struct CTLightRig {
11217    #[cfg(feature = "dml-3d")]
11218    #[serde(rename = "@rig")]
11219    pub rig: STLightRigType,
11220    #[cfg(feature = "dml-3d")]
11221    #[serde(rename = "@dir")]
11222    pub dir: STLightRigDirection,
11223    #[cfg(feature = "dml-3d")]
11224    #[serde(rename = "rot")]
11225    #[serde(default, skip_serializing_if = "Option::is_none")]
11226    pub rot: Option<Box<CTSphereCoords>>,
11227    /// Unknown attributes captured for roundtrip fidelity.
11228    #[cfg(feature = "extra-attrs")]
11229    #[serde(skip)]
11230    #[cfg(feature = "extra-attrs")]
11231    #[serde(default)]
11232    #[cfg(feature = "extra-attrs")]
11233    pub extra_attrs: std::collections::HashMap<String, String>,
11234    /// Unknown child elements captured for roundtrip fidelity.
11235    #[cfg(feature = "extra-children")]
11236    #[serde(skip)]
11237    #[cfg(feature = "extra-children")]
11238    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11239}
11240
11241#[derive(Debug, Clone, Serialize, Deserialize)]
11242pub struct CTScene3D {
11243    #[cfg(feature = "dml-3d")]
11244    #[serde(rename = "camera")]
11245    pub camera: Box<CTCamera>,
11246    #[cfg(feature = "dml-3d")]
11247    #[serde(rename = "lightRig")]
11248    pub light_rig: Box<CTLightRig>,
11249    #[cfg(feature = "dml-3d")]
11250    #[serde(rename = "backdrop")]
11251    #[serde(default, skip_serializing_if = "Option::is_none")]
11252    pub backdrop: Option<Box<CTBackdrop>>,
11253    #[cfg(feature = "dml-extensions")]
11254    #[serde(rename = "extLst")]
11255    #[serde(default, skip_serializing_if = "Option::is_none")]
11256    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
11257    /// Unknown child elements captured for roundtrip fidelity.
11258    #[cfg(feature = "extra-children")]
11259    #[serde(skip)]
11260    #[cfg(feature = "extra-children")]
11261    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11262}
11263
11264#[derive(Debug, Clone, Serialize, Deserialize)]
11265pub struct CTBackdrop {
11266    #[serde(rename = "anchor")]
11267    pub anchor: Box<CTPoint3D>,
11268    #[serde(rename = "norm")]
11269    pub norm: Box<CTVector3D>,
11270    #[serde(rename = "up")]
11271    pub up: Box<CTVector3D>,
11272    #[serde(rename = "extLst")]
11273    #[serde(default, skip_serializing_if = "Option::is_none")]
11274    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
11275    /// Unknown child elements captured for roundtrip fidelity.
11276    #[cfg(feature = "extra-children")]
11277    #[serde(skip)]
11278    #[cfg(feature = "extra-children")]
11279    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11280}
11281
11282#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11283pub struct CTBevel {
11284    #[cfg(feature = "dml-3d")]
11285    #[serde(rename = "@w")]
11286    #[serde(default, skip_serializing_if = "Option::is_none")]
11287    pub width: Option<STPositiveCoordinate>,
11288    #[cfg(feature = "dml-3d")]
11289    #[serde(rename = "@h")]
11290    #[serde(default, skip_serializing_if = "Option::is_none")]
11291    pub height: Option<STPositiveCoordinate>,
11292    #[cfg(feature = "dml-3d")]
11293    #[serde(rename = "@prst")]
11294    #[serde(default, skip_serializing_if = "Option::is_none")]
11295    pub preset: Option<STBevelPresetType>,
11296    /// Unknown attributes captured for roundtrip fidelity.
11297    #[cfg(feature = "extra-attrs")]
11298    #[serde(skip)]
11299    #[cfg(feature = "extra-attrs")]
11300    #[serde(default)]
11301    #[cfg(feature = "extra-attrs")]
11302    pub extra_attrs: std::collections::HashMap<String, String>,
11303}
11304
11305#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11306pub struct CTShape3D {
11307    #[cfg(feature = "dml-3d")]
11308    #[serde(rename = "@z")]
11309    #[serde(default, skip_serializing_if = "Option::is_none")]
11310    pub z: Option<STCoordinate>,
11311    #[cfg(feature = "dml-3d")]
11312    #[serde(rename = "@extrusionH")]
11313    #[serde(default, skip_serializing_if = "Option::is_none")]
11314    pub extrusion_h: Option<STPositiveCoordinate>,
11315    #[cfg(feature = "dml-3d")]
11316    #[serde(rename = "@contourW")]
11317    #[serde(default, skip_serializing_if = "Option::is_none")]
11318    pub contour_w: Option<STPositiveCoordinate>,
11319    #[cfg(feature = "dml-3d")]
11320    #[serde(rename = "@prstMaterial")]
11321    #[serde(default, skip_serializing_if = "Option::is_none")]
11322    pub prst_material: Option<STPresetMaterialType>,
11323    #[cfg(feature = "dml-3d")]
11324    #[serde(rename = "bevelT")]
11325    #[serde(default, skip_serializing_if = "Option::is_none")]
11326    pub bevel_t: Option<Box<CTBevel>>,
11327    #[cfg(feature = "dml-3d")]
11328    #[serde(rename = "bevelB")]
11329    #[serde(default, skip_serializing_if = "Option::is_none")]
11330    pub bevel_b: Option<Box<CTBevel>>,
11331    #[cfg(feature = "dml-3d")]
11332    #[serde(rename = "extrusionClr")]
11333    #[serde(default, skip_serializing_if = "Option::is_none")]
11334    pub extrusion_clr: Option<Box<CTColor>>,
11335    #[cfg(feature = "dml-3d")]
11336    #[serde(rename = "contourClr")]
11337    #[serde(default, skip_serializing_if = "Option::is_none")]
11338    pub contour_clr: Option<Box<CTColor>>,
11339    #[cfg(feature = "dml-extensions")]
11340    #[serde(rename = "extLst")]
11341    #[serde(default, skip_serializing_if = "Option::is_none")]
11342    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
11343    /// Unknown attributes captured for roundtrip fidelity.
11344    #[cfg(feature = "extra-attrs")]
11345    #[serde(skip)]
11346    #[cfg(feature = "extra-attrs")]
11347    #[serde(default)]
11348    #[cfg(feature = "extra-attrs")]
11349    pub extra_attrs: std::collections::HashMap<String, String>,
11350    /// Unknown child elements captured for roundtrip fidelity.
11351    #[cfg(feature = "extra-children")]
11352    #[serde(skip)]
11353    #[cfg(feature = "extra-children")]
11354    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11355}
11356
11357#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11358pub struct CTFlatText {
11359    #[serde(rename = "@z")]
11360    #[serde(default, skip_serializing_if = "Option::is_none")]
11361    pub z: Option<STCoordinate>,
11362    /// Unknown attributes captured for roundtrip fidelity.
11363    #[cfg(feature = "extra-attrs")]
11364    #[serde(skip)]
11365    #[cfg(feature = "extra-attrs")]
11366    #[serde(default)]
11367    #[cfg(feature = "extra-attrs")]
11368    pub extra_attrs: std::collections::HashMap<String, String>,
11369}
11370
11371#[derive(Debug, Clone, Serialize, Deserialize)]
11372pub struct CTAlphaBiLevelEffect {
11373    #[serde(rename = "@thresh")]
11374    pub thresh: STPositiveFixedPercentage,
11375    /// Unknown attributes captured for roundtrip fidelity.
11376    #[cfg(feature = "extra-attrs")]
11377    #[serde(skip)]
11378    #[cfg(feature = "extra-attrs")]
11379    #[serde(default)]
11380    #[cfg(feature = "extra-attrs")]
11381    pub extra_attrs: std::collections::HashMap<String, String>,
11382}
11383
11384#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11385pub struct CTAlphaCeilingEffect;
11386
11387#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11388pub struct CTAlphaFloorEffect;
11389
11390#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11391pub struct CTAlphaInverseEffect {
11392    #[serde(skip)]
11393    #[serde(default)]
11394    pub color_choice: Option<Box<EGColorChoice>>,
11395    /// Unknown child elements captured for roundtrip fidelity.
11396    #[cfg(feature = "extra-children")]
11397    #[serde(skip)]
11398    #[cfg(feature = "extra-children")]
11399    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11400}
11401
11402#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11403pub struct CTAlphaModulateFixedEffect {
11404    #[serde(rename = "@amt")]
11405    #[serde(default, skip_serializing_if = "Option::is_none")]
11406    pub amt: Option<STPositivePercentage>,
11407    /// Unknown attributes captured for roundtrip fidelity.
11408    #[cfg(feature = "extra-attrs")]
11409    #[serde(skip)]
11410    #[cfg(feature = "extra-attrs")]
11411    #[serde(default)]
11412    #[cfg(feature = "extra-attrs")]
11413    pub extra_attrs: std::collections::HashMap<String, String>,
11414}
11415
11416#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11417pub struct CTAlphaOutsetEffect {
11418    #[serde(rename = "@rad")]
11419    #[serde(default, skip_serializing_if = "Option::is_none")]
11420    pub rad: Option<STCoordinate>,
11421    /// Unknown attributes captured for roundtrip fidelity.
11422    #[cfg(feature = "extra-attrs")]
11423    #[serde(skip)]
11424    #[cfg(feature = "extra-attrs")]
11425    #[serde(default)]
11426    #[cfg(feature = "extra-attrs")]
11427    pub extra_attrs: std::collections::HashMap<String, String>,
11428}
11429
11430#[derive(Debug, Clone, Serialize, Deserialize)]
11431pub struct CTAlphaReplaceEffect {
11432    #[serde(rename = "@a")]
11433    pub anchor: STPositiveFixedPercentage,
11434    /// Unknown attributes captured for roundtrip fidelity.
11435    #[cfg(feature = "extra-attrs")]
11436    #[serde(skip)]
11437    #[cfg(feature = "extra-attrs")]
11438    #[serde(default)]
11439    #[cfg(feature = "extra-attrs")]
11440    pub extra_attrs: std::collections::HashMap<String, String>,
11441}
11442
11443#[derive(Debug, Clone, Serialize, Deserialize)]
11444pub struct CTBiLevelEffect {
11445    #[serde(rename = "@thresh")]
11446    pub thresh: STPositiveFixedPercentage,
11447    /// Unknown attributes captured for roundtrip fidelity.
11448    #[cfg(feature = "extra-attrs")]
11449    #[serde(skip)]
11450    #[cfg(feature = "extra-attrs")]
11451    #[serde(default)]
11452    #[cfg(feature = "extra-attrs")]
11453    pub extra_attrs: std::collections::HashMap<String, String>,
11454}
11455
11456#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11457pub struct CTBlurEffect {
11458    #[cfg(feature = "dml-effects")]
11459    #[serde(rename = "@rad")]
11460    #[serde(default, skip_serializing_if = "Option::is_none")]
11461    pub rad: Option<STPositiveCoordinate>,
11462    #[cfg(feature = "dml-effects")]
11463    #[serde(rename = "@grow")]
11464    #[serde(
11465        default,
11466        skip_serializing_if = "Option::is_none",
11467        with = "ooxml_xml::ooxml_bool"
11468    )]
11469    pub grow: Option<bool>,
11470    /// Unknown attributes captured for roundtrip fidelity.
11471    #[cfg(feature = "extra-attrs")]
11472    #[serde(skip)]
11473    #[cfg(feature = "extra-attrs")]
11474    #[serde(default)]
11475    #[cfg(feature = "extra-attrs")]
11476    pub extra_attrs: std::collections::HashMap<String, String>,
11477}
11478
11479#[derive(Debug, Clone, Serialize, Deserialize)]
11480pub struct CTColorChangeEffect {
11481    #[serde(rename = "@useA")]
11482    #[serde(
11483        default,
11484        skip_serializing_if = "Option::is_none",
11485        with = "ooxml_xml::ooxml_bool"
11486    )]
11487    pub use_a: Option<bool>,
11488    #[serde(rename = "clrFrom")]
11489    pub clr_from: Box<CTColor>,
11490    #[serde(rename = "clrTo")]
11491    pub clr_to: Box<CTColor>,
11492    /// Unknown attributes captured for roundtrip fidelity.
11493    #[cfg(feature = "extra-attrs")]
11494    #[serde(skip)]
11495    #[cfg(feature = "extra-attrs")]
11496    #[serde(default)]
11497    #[cfg(feature = "extra-attrs")]
11498    pub extra_attrs: std::collections::HashMap<String, String>,
11499    /// Unknown child elements captured for roundtrip fidelity.
11500    #[cfg(feature = "extra-children")]
11501    #[serde(skip)]
11502    #[cfg(feature = "extra-children")]
11503    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11504}
11505
11506#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11507pub struct CTColorReplaceEffect {
11508    #[serde(skip)]
11509    #[serde(default)]
11510    pub color_choice: Option<Box<EGColorChoice>>,
11511    /// Unknown child elements captured for roundtrip fidelity.
11512    #[cfg(feature = "extra-children")]
11513    #[serde(skip)]
11514    #[cfg(feature = "extra-children")]
11515    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11516}
11517
11518#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11519pub struct CTDuotoneEffect {
11520    #[serde(skip)]
11521    #[serde(default)]
11522    pub color_choice: Vec<EGColorChoice>,
11523    /// Unknown child elements captured for roundtrip fidelity.
11524    #[cfg(feature = "extra-children")]
11525    #[serde(skip)]
11526    #[cfg(feature = "extra-children")]
11527    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11528}
11529
11530#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11531pub struct CTGlowEffect {
11532    #[cfg(feature = "dml-effects")]
11533    #[serde(rename = "@rad")]
11534    #[serde(default, skip_serializing_if = "Option::is_none")]
11535    pub rad: Option<STPositiveCoordinate>,
11536    #[serde(skip)]
11537    #[serde(default)]
11538    pub color_choice: Option<Box<EGColorChoice>>,
11539    /// Unknown attributes captured for roundtrip fidelity.
11540    #[cfg(feature = "extra-attrs")]
11541    #[serde(skip)]
11542    #[cfg(feature = "extra-attrs")]
11543    #[serde(default)]
11544    #[cfg(feature = "extra-attrs")]
11545    pub extra_attrs: std::collections::HashMap<String, String>,
11546    /// Unknown child elements captured for roundtrip fidelity.
11547    #[cfg(feature = "extra-children")]
11548    #[serde(skip)]
11549    #[cfg(feature = "extra-children")]
11550    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11551}
11552
11553#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11554pub struct CTGrayscaleEffect;
11555
11556#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11557pub struct CTHSLEffect {
11558    #[serde(rename = "@hue")]
11559    #[serde(default, skip_serializing_if = "Option::is_none")]
11560    pub hue: Option<STPositiveFixedAngle>,
11561    #[serde(rename = "@sat")]
11562    #[serde(default, skip_serializing_if = "Option::is_none")]
11563    pub sat: Option<STFixedPercentage>,
11564    #[serde(rename = "@lum")]
11565    #[serde(default, skip_serializing_if = "Option::is_none")]
11566    pub lum: Option<STFixedPercentage>,
11567    /// Unknown attributes captured for roundtrip fidelity.
11568    #[cfg(feature = "extra-attrs")]
11569    #[serde(skip)]
11570    #[cfg(feature = "extra-attrs")]
11571    #[serde(default)]
11572    #[cfg(feature = "extra-attrs")]
11573    pub extra_attrs: std::collections::HashMap<String, String>,
11574}
11575
11576#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11577pub struct CTInnerShadowEffect {
11578    #[cfg(feature = "dml-effects")]
11579    #[serde(rename = "@blurRad")]
11580    #[serde(default, skip_serializing_if = "Option::is_none")]
11581    pub blur_rad: Option<STPositiveCoordinate>,
11582    #[cfg(feature = "dml-effects")]
11583    #[serde(rename = "@dist")]
11584    #[serde(default, skip_serializing_if = "Option::is_none")]
11585    pub dist: Option<STPositiveCoordinate>,
11586    #[cfg(feature = "dml-effects")]
11587    #[serde(rename = "@dir")]
11588    #[serde(default, skip_serializing_if = "Option::is_none")]
11589    pub dir: Option<STPositiveFixedAngle>,
11590    #[serde(skip)]
11591    #[serde(default)]
11592    pub color_choice: Option<Box<EGColorChoice>>,
11593    /// Unknown attributes captured for roundtrip fidelity.
11594    #[cfg(feature = "extra-attrs")]
11595    #[serde(skip)]
11596    #[cfg(feature = "extra-attrs")]
11597    #[serde(default)]
11598    #[cfg(feature = "extra-attrs")]
11599    pub extra_attrs: std::collections::HashMap<String, String>,
11600    /// Unknown child elements captured for roundtrip fidelity.
11601    #[cfg(feature = "extra-children")]
11602    #[serde(skip)]
11603    #[cfg(feature = "extra-children")]
11604    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11605}
11606
11607#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11608pub struct CTLuminanceEffect {
11609    #[serde(rename = "@bright")]
11610    #[serde(default, skip_serializing_if = "Option::is_none")]
11611    pub bright: Option<STFixedPercentage>,
11612    #[serde(rename = "@contrast")]
11613    #[serde(default, skip_serializing_if = "Option::is_none")]
11614    pub contrast: Option<STFixedPercentage>,
11615    /// Unknown attributes captured for roundtrip fidelity.
11616    #[cfg(feature = "extra-attrs")]
11617    #[serde(skip)]
11618    #[cfg(feature = "extra-attrs")]
11619    #[serde(default)]
11620    #[cfg(feature = "extra-attrs")]
11621    pub extra_attrs: std::collections::HashMap<String, String>,
11622}
11623
11624#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11625pub struct CTOuterShadowEffect {
11626    #[cfg(feature = "dml-effects")]
11627    #[serde(rename = "@blurRad")]
11628    #[serde(default, skip_serializing_if = "Option::is_none")]
11629    pub blur_rad: Option<STPositiveCoordinate>,
11630    #[cfg(feature = "dml-effects")]
11631    #[serde(rename = "@dist")]
11632    #[serde(default, skip_serializing_if = "Option::is_none")]
11633    pub dist: Option<STPositiveCoordinate>,
11634    #[cfg(feature = "dml-effects")]
11635    #[serde(rename = "@dir")]
11636    #[serde(default, skip_serializing_if = "Option::is_none")]
11637    pub dir: Option<STPositiveFixedAngle>,
11638    #[cfg(feature = "dml-effects")]
11639    #[serde(rename = "@sx")]
11640    #[serde(default, skip_serializing_if = "Option::is_none")]
11641    pub sx: Option<STPercentage>,
11642    #[cfg(feature = "dml-effects")]
11643    #[serde(rename = "@sy")]
11644    #[serde(default, skip_serializing_if = "Option::is_none")]
11645    pub sy: Option<STPercentage>,
11646    #[cfg(feature = "dml-effects")]
11647    #[serde(rename = "@kx")]
11648    #[serde(default, skip_serializing_if = "Option::is_none")]
11649    pub kx: Option<STFixedAngle>,
11650    #[cfg(feature = "dml-effects")]
11651    #[serde(rename = "@ky")]
11652    #[serde(default, skip_serializing_if = "Option::is_none")]
11653    pub ky: Option<STFixedAngle>,
11654    #[cfg(feature = "dml-effects")]
11655    #[serde(rename = "@algn")]
11656    #[serde(default, skip_serializing_if = "Option::is_none")]
11657    pub algn: Option<STRectAlignment>,
11658    #[cfg(feature = "dml-effects")]
11659    #[serde(rename = "@rotWithShape")]
11660    #[serde(
11661        default,
11662        skip_serializing_if = "Option::is_none",
11663        with = "ooxml_xml::ooxml_bool"
11664    )]
11665    pub rot_with_shape: Option<bool>,
11666    #[serde(skip)]
11667    #[serde(default)]
11668    pub color_choice: Option<Box<EGColorChoice>>,
11669    /// Unknown attributes captured for roundtrip fidelity.
11670    #[cfg(feature = "extra-attrs")]
11671    #[serde(skip)]
11672    #[cfg(feature = "extra-attrs")]
11673    #[serde(default)]
11674    #[cfg(feature = "extra-attrs")]
11675    pub extra_attrs: std::collections::HashMap<String, String>,
11676    /// Unknown child elements captured for roundtrip fidelity.
11677    #[cfg(feature = "extra-children")]
11678    #[serde(skip)]
11679    #[cfg(feature = "extra-children")]
11680    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11681}
11682
11683#[derive(Debug, Clone, Serialize, Deserialize)]
11684pub struct CTPresetShadowEffect {
11685    #[serde(rename = "@prst")]
11686    pub preset: STPresetShadowVal,
11687    #[serde(rename = "@dist")]
11688    #[serde(default, skip_serializing_if = "Option::is_none")]
11689    pub dist: Option<STPositiveCoordinate>,
11690    #[serde(rename = "@dir")]
11691    #[serde(default, skip_serializing_if = "Option::is_none")]
11692    pub dir: Option<STPositiveFixedAngle>,
11693    #[serde(skip)]
11694    #[serde(default)]
11695    pub color_choice: Option<Box<EGColorChoice>>,
11696    /// Unknown attributes captured for roundtrip fidelity.
11697    #[cfg(feature = "extra-attrs")]
11698    #[serde(skip)]
11699    #[cfg(feature = "extra-attrs")]
11700    #[serde(default)]
11701    #[cfg(feature = "extra-attrs")]
11702    pub extra_attrs: std::collections::HashMap<String, String>,
11703    /// Unknown child elements captured for roundtrip fidelity.
11704    #[cfg(feature = "extra-children")]
11705    #[serde(skip)]
11706    #[cfg(feature = "extra-children")]
11707    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11708}
11709
11710#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11711pub struct CTReflectionEffect {
11712    #[cfg(feature = "dml-effects")]
11713    #[serde(rename = "@blurRad")]
11714    #[serde(default, skip_serializing_if = "Option::is_none")]
11715    pub blur_rad: Option<STPositiveCoordinate>,
11716    #[cfg(feature = "dml-effects")]
11717    #[serde(rename = "@stA")]
11718    #[serde(default, skip_serializing_if = "Option::is_none")]
11719    pub st_a: Option<STPositiveFixedPercentage>,
11720    #[cfg(feature = "dml-effects")]
11721    #[serde(rename = "@stPos")]
11722    #[serde(default, skip_serializing_if = "Option::is_none")]
11723    pub st_pos: Option<STPositiveFixedPercentage>,
11724    #[cfg(feature = "dml-effects")]
11725    #[serde(rename = "@endA")]
11726    #[serde(default, skip_serializing_if = "Option::is_none")]
11727    pub end_a: Option<STPositiveFixedPercentage>,
11728    #[cfg(feature = "dml-effects")]
11729    #[serde(rename = "@endPos")]
11730    #[serde(default, skip_serializing_if = "Option::is_none")]
11731    pub end_pos: Option<STPositiveFixedPercentage>,
11732    #[cfg(feature = "dml-effects")]
11733    #[serde(rename = "@dist")]
11734    #[serde(default, skip_serializing_if = "Option::is_none")]
11735    pub dist: Option<STPositiveCoordinate>,
11736    #[cfg(feature = "dml-effects")]
11737    #[serde(rename = "@dir")]
11738    #[serde(default, skip_serializing_if = "Option::is_none")]
11739    pub dir: Option<STPositiveFixedAngle>,
11740    #[cfg(feature = "dml-effects")]
11741    #[serde(rename = "@fadeDir")]
11742    #[serde(default, skip_serializing_if = "Option::is_none")]
11743    pub fade_dir: Option<STPositiveFixedAngle>,
11744    #[cfg(feature = "dml-effects")]
11745    #[serde(rename = "@sx")]
11746    #[serde(default, skip_serializing_if = "Option::is_none")]
11747    pub sx: Option<STPercentage>,
11748    #[cfg(feature = "dml-effects")]
11749    #[serde(rename = "@sy")]
11750    #[serde(default, skip_serializing_if = "Option::is_none")]
11751    pub sy: Option<STPercentage>,
11752    #[cfg(feature = "dml-effects")]
11753    #[serde(rename = "@kx")]
11754    #[serde(default, skip_serializing_if = "Option::is_none")]
11755    pub kx: Option<STFixedAngle>,
11756    #[cfg(feature = "dml-effects")]
11757    #[serde(rename = "@ky")]
11758    #[serde(default, skip_serializing_if = "Option::is_none")]
11759    pub ky: Option<STFixedAngle>,
11760    #[cfg(feature = "dml-effects")]
11761    #[serde(rename = "@algn")]
11762    #[serde(default, skip_serializing_if = "Option::is_none")]
11763    pub algn: Option<STRectAlignment>,
11764    #[cfg(feature = "dml-effects")]
11765    #[serde(rename = "@rotWithShape")]
11766    #[serde(
11767        default,
11768        skip_serializing_if = "Option::is_none",
11769        with = "ooxml_xml::ooxml_bool"
11770    )]
11771    pub rot_with_shape: Option<bool>,
11772    /// Unknown attributes captured for roundtrip fidelity.
11773    #[cfg(feature = "extra-attrs")]
11774    #[serde(skip)]
11775    #[cfg(feature = "extra-attrs")]
11776    #[serde(default)]
11777    #[cfg(feature = "extra-attrs")]
11778    pub extra_attrs: std::collections::HashMap<String, String>,
11779}
11780
11781#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11782pub struct CTRelativeOffsetEffect {
11783    #[serde(rename = "@tx")]
11784    #[serde(default, skip_serializing_if = "Option::is_none")]
11785    pub tx: Option<STPercentage>,
11786    #[serde(rename = "@ty")]
11787    #[serde(default, skip_serializing_if = "Option::is_none")]
11788    pub ty: Option<STPercentage>,
11789    /// Unknown attributes captured for roundtrip fidelity.
11790    #[cfg(feature = "extra-attrs")]
11791    #[serde(skip)]
11792    #[cfg(feature = "extra-attrs")]
11793    #[serde(default)]
11794    #[cfg(feature = "extra-attrs")]
11795    pub extra_attrs: std::collections::HashMap<String, String>,
11796}
11797
11798#[derive(Debug, Clone, Serialize, Deserialize)]
11799pub struct CTSoftEdgesEffect {
11800    #[cfg(feature = "dml-effects")]
11801    #[serde(rename = "@rad")]
11802    pub rad: STPositiveCoordinate,
11803    /// Unknown attributes captured for roundtrip fidelity.
11804    #[cfg(feature = "extra-attrs")]
11805    #[serde(skip)]
11806    #[cfg(feature = "extra-attrs")]
11807    #[serde(default)]
11808    #[cfg(feature = "extra-attrs")]
11809    pub extra_attrs: std::collections::HashMap<String, String>,
11810}
11811
11812#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11813pub struct CTTintEffect {
11814    #[serde(rename = "@hue")]
11815    #[serde(default, skip_serializing_if = "Option::is_none")]
11816    pub hue: Option<STPositiveFixedAngle>,
11817    #[serde(rename = "@amt")]
11818    #[serde(default, skip_serializing_if = "Option::is_none")]
11819    pub amt: Option<STFixedPercentage>,
11820    /// Unknown attributes captured for roundtrip fidelity.
11821    #[cfg(feature = "extra-attrs")]
11822    #[serde(skip)]
11823    #[cfg(feature = "extra-attrs")]
11824    #[serde(default)]
11825    #[cfg(feature = "extra-attrs")]
11826    pub extra_attrs: std::collections::HashMap<String, String>,
11827}
11828
11829#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11830pub struct CTTransformEffect {
11831    #[serde(rename = "@sx")]
11832    #[serde(default, skip_serializing_if = "Option::is_none")]
11833    pub sx: Option<STPercentage>,
11834    #[serde(rename = "@sy")]
11835    #[serde(default, skip_serializing_if = "Option::is_none")]
11836    pub sy: Option<STPercentage>,
11837    #[serde(rename = "@kx")]
11838    #[serde(default, skip_serializing_if = "Option::is_none")]
11839    pub kx: Option<STFixedAngle>,
11840    #[serde(rename = "@ky")]
11841    #[serde(default, skip_serializing_if = "Option::is_none")]
11842    pub ky: Option<STFixedAngle>,
11843    #[serde(rename = "@tx")]
11844    #[serde(default, skip_serializing_if = "Option::is_none")]
11845    pub tx: Option<STCoordinate>,
11846    #[serde(rename = "@ty")]
11847    #[serde(default, skip_serializing_if = "Option::is_none")]
11848    pub ty: Option<STCoordinate>,
11849    /// Unknown attributes captured for roundtrip fidelity.
11850    #[cfg(feature = "extra-attrs")]
11851    #[serde(skip)]
11852    #[cfg(feature = "extra-attrs")]
11853    #[serde(default)]
11854    #[cfg(feature = "extra-attrs")]
11855    pub extra_attrs: std::collections::HashMap<String, String>,
11856}
11857
11858#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11859pub struct NoFill;
11860
11861#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11862pub struct SolidColorFill {
11863    #[serde(skip)]
11864    #[serde(default)]
11865    pub color_choice: Option<Box<EGColorChoice>>,
11866    /// Unknown child elements captured for roundtrip fidelity.
11867    #[cfg(feature = "extra-children")]
11868    #[serde(skip)]
11869    #[cfg(feature = "extra-children")]
11870    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11871}
11872
11873#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11874pub struct CTLinearShadeProperties {
11875    #[serde(rename = "@ang")]
11876    #[serde(default, skip_serializing_if = "Option::is_none")]
11877    pub ang: Option<STPositiveFixedAngle>,
11878    #[serde(rename = "@scaled")]
11879    #[serde(
11880        default,
11881        skip_serializing_if = "Option::is_none",
11882        with = "ooxml_xml::ooxml_bool"
11883    )]
11884    pub scaled: Option<bool>,
11885    /// Unknown attributes captured for roundtrip fidelity.
11886    #[cfg(feature = "extra-attrs")]
11887    #[serde(skip)]
11888    #[cfg(feature = "extra-attrs")]
11889    #[serde(default)]
11890    #[cfg(feature = "extra-attrs")]
11891    pub extra_attrs: std::collections::HashMap<String, String>,
11892}
11893
11894#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11895pub struct CTPathShadeProperties {
11896    #[serde(rename = "@path")]
11897    #[serde(default, skip_serializing_if = "Option::is_none")]
11898    pub path: Option<STPathShadeType>,
11899    #[serde(rename = "fillToRect")]
11900    #[serde(default, skip_serializing_if = "Option::is_none")]
11901    pub fill_to_rect: Option<Box<CTRelativeRect>>,
11902    /// Unknown attributes captured for roundtrip fidelity.
11903    #[cfg(feature = "extra-attrs")]
11904    #[serde(skip)]
11905    #[cfg(feature = "extra-attrs")]
11906    #[serde(default)]
11907    #[cfg(feature = "extra-attrs")]
11908    pub extra_attrs: std::collections::HashMap<String, String>,
11909    /// Unknown child elements captured for roundtrip fidelity.
11910    #[cfg(feature = "extra-children")]
11911    #[serde(skip)]
11912    #[cfg(feature = "extra-children")]
11913    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11914}
11915
11916#[derive(Debug, Clone, Serialize, Deserialize)]
11917pub struct CTGradientStop {
11918    #[serde(rename = "@pos")]
11919    pub pos: STPositiveFixedPercentage,
11920    #[serde(skip)]
11921    #[serde(default)]
11922    pub color_choice: Option<Box<EGColorChoice>>,
11923    /// Unknown attributes captured for roundtrip fidelity.
11924    #[cfg(feature = "extra-attrs")]
11925    #[serde(skip)]
11926    #[cfg(feature = "extra-attrs")]
11927    #[serde(default)]
11928    #[cfg(feature = "extra-attrs")]
11929    pub extra_attrs: std::collections::HashMap<String, String>,
11930    /// Unknown child elements captured for roundtrip fidelity.
11931    #[cfg(feature = "extra-children")]
11932    #[serde(skip)]
11933    #[cfg(feature = "extra-children")]
11934    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11935}
11936
11937#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11938pub struct CTGradientStopList {
11939    #[serde(rename = "gs")]
11940    #[serde(default, skip_serializing_if = "Vec::is_empty")]
11941    pub gs: Vec<CTGradientStop>,
11942    /// Unknown child elements captured for roundtrip fidelity.
11943    #[cfg(feature = "extra-children")]
11944    #[serde(skip)]
11945    #[cfg(feature = "extra-children")]
11946    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11947}
11948
11949#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11950pub struct GradientFill {
11951    #[cfg(feature = "dml-fills")]
11952    #[serde(rename = "@flip")]
11953    #[serde(default, skip_serializing_if = "Option::is_none")]
11954    pub flip: Option<STTileFlipMode>,
11955    #[cfg(feature = "dml-fills")]
11956    #[serde(rename = "@rotWithShape")]
11957    #[serde(
11958        default,
11959        skip_serializing_if = "Option::is_none",
11960        with = "ooxml_xml::ooxml_bool"
11961    )]
11962    pub rot_with_shape: Option<bool>,
11963    #[cfg(feature = "dml-fills")]
11964    #[serde(rename = "gsLst")]
11965    #[serde(default, skip_serializing_if = "Option::is_none")]
11966    pub gs_lst: Option<Box<CTGradientStopList>>,
11967    #[serde(skip)]
11968    #[serde(default)]
11969    pub shade_properties: Option<Box<EGShadeProperties>>,
11970    #[cfg(feature = "dml-fills")]
11971    #[serde(rename = "tileRect")]
11972    #[serde(default, skip_serializing_if = "Option::is_none")]
11973    pub tile_rect: Option<Box<CTRelativeRect>>,
11974    /// Unknown attributes captured for roundtrip fidelity.
11975    #[cfg(feature = "extra-attrs")]
11976    #[serde(skip)]
11977    #[cfg(feature = "extra-attrs")]
11978    #[serde(default)]
11979    #[cfg(feature = "extra-attrs")]
11980    pub extra_attrs: std::collections::HashMap<String, String>,
11981    /// Unknown child elements captured for roundtrip fidelity.
11982    #[cfg(feature = "extra-children")]
11983    #[serde(skip)]
11984    #[cfg(feature = "extra-children")]
11985    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11986}
11987
11988#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11989pub struct CTTileInfoProperties {
11990    #[serde(rename = "@tx")]
11991    #[serde(default, skip_serializing_if = "Option::is_none")]
11992    pub tx: Option<STCoordinate>,
11993    #[serde(rename = "@ty")]
11994    #[serde(default, skip_serializing_if = "Option::is_none")]
11995    pub ty: Option<STCoordinate>,
11996    #[serde(rename = "@sx")]
11997    #[serde(default, skip_serializing_if = "Option::is_none")]
11998    pub sx: Option<STPercentage>,
11999    #[serde(rename = "@sy")]
12000    #[serde(default, skip_serializing_if = "Option::is_none")]
12001    pub sy: Option<STPercentage>,
12002    #[serde(rename = "@flip")]
12003    #[serde(default, skip_serializing_if = "Option::is_none")]
12004    pub flip: Option<STTileFlipMode>,
12005    #[serde(rename = "@algn")]
12006    #[serde(default, skip_serializing_if = "Option::is_none")]
12007    pub algn: Option<STRectAlignment>,
12008    /// Unknown attributes captured for roundtrip fidelity.
12009    #[cfg(feature = "extra-attrs")]
12010    #[serde(skip)]
12011    #[cfg(feature = "extra-attrs")]
12012    #[serde(default)]
12013    #[cfg(feature = "extra-attrs")]
12014    pub extra_attrs: std::collections::HashMap<String, String>,
12015}
12016
12017#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12018pub struct CTStretchInfoProperties {
12019    #[serde(rename = "fillRect")]
12020    #[serde(default, skip_serializing_if = "Option::is_none")]
12021    pub fill_rect: Option<Box<CTRelativeRect>>,
12022    /// Unknown child elements captured for roundtrip fidelity.
12023    #[cfg(feature = "extra-children")]
12024    #[serde(skip)]
12025    #[cfg(feature = "extra-children")]
12026    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12027}
12028
12029#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12030pub struct Blip {
12031    #[cfg(feature = "dml-fills")]
12032    #[serde(rename = "@r:embed")]
12033    #[serde(default, skip_serializing_if = "Option::is_none")]
12034    pub embed: Option<STRelationshipId>,
12035    #[cfg(feature = "dml-fills")]
12036    #[serde(rename = "@r:link")]
12037    #[serde(default, skip_serializing_if = "Option::is_none")]
12038    pub link: Option<STRelationshipId>,
12039    #[cfg(feature = "dml-fills")]
12040    #[serde(rename = "@cstate")]
12041    #[serde(default, skip_serializing_if = "Option::is_none")]
12042    pub cstate: Option<STBlipCompression>,
12043    #[cfg(feature = "dml-fills")]
12044    #[serde(rename = "alphaBiLevel")]
12045    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12046    pub alpha_bi_level: Vec<CTAlphaBiLevelEffect>,
12047    #[cfg(feature = "dml-fills")]
12048    #[serde(rename = "alphaCeiling")]
12049    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12050    pub alpha_ceiling: Vec<CTAlphaCeilingEffect>,
12051    #[cfg(feature = "dml-fills")]
12052    #[serde(rename = "alphaFloor")]
12053    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12054    pub alpha_floor: Vec<CTAlphaFloorEffect>,
12055    #[cfg(feature = "dml-fills")]
12056    #[serde(rename = "alphaInv")]
12057    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12058    pub alpha_inv: Vec<CTAlphaInverseEffect>,
12059    #[cfg(feature = "dml-fills")]
12060    #[serde(rename = "alphaMod")]
12061    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12062    pub alpha_mod: Vec<AlphaModulateEffectElement>,
12063    #[cfg(feature = "dml-fills")]
12064    #[serde(rename = "alphaModFix")]
12065    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12066    pub alpha_mod_fix: Vec<CTAlphaModulateFixedEffect>,
12067    #[cfg(feature = "dml-fills")]
12068    #[serde(rename = "alphaRepl")]
12069    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12070    pub alpha_repl: Vec<CTAlphaReplaceEffect>,
12071    #[cfg(feature = "dml-fills")]
12072    #[serde(rename = "biLevel")]
12073    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12074    pub bi_level: Vec<CTBiLevelEffect>,
12075    #[cfg(feature = "dml-fills")]
12076    #[serde(rename = "blur")]
12077    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12078    pub blur: Vec<CTBlurEffect>,
12079    #[cfg(feature = "dml-fills")]
12080    #[serde(rename = "clrChange")]
12081    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12082    pub clr_change: Vec<CTColorChangeEffect>,
12083    #[cfg(feature = "dml-fills")]
12084    #[serde(rename = "clrRepl")]
12085    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12086    pub clr_repl: Vec<CTColorReplaceEffect>,
12087    #[cfg(feature = "dml-fills")]
12088    #[serde(rename = "duotone")]
12089    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12090    pub duotone: Vec<CTDuotoneEffect>,
12091    #[cfg(feature = "dml-fills")]
12092    #[serde(rename = "fillOverlay")]
12093    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12094    pub fill_overlay: Vec<CTFillOverlayEffect>,
12095    #[cfg(feature = "dml-fills")]
12096    #[serde(rename = "grayscl")]
12097    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12098    pub grayscl: Vec<CTGrayscaleEffect>,
12099    #[cfg(feature = "dml-fills")]
12100    #[serde(rename = "hsl")]
12101    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12102    pub hsl: Vec<CTHSLEffect>,
12103    #[cfg(feature = "dml-fills")]
12104    #[serde(rename = "lum")]
12105    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12106    pub lum: Vec<CTLuminanceEffect>,
12107    #[cfg(feature = "dml-fills")]
12108    #[serde(rename = "tint")]
12109    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12110    pub tint: Vec<CTTintEffect>,
12111    #[cfg(feature = "dml-extensions")]
12112    #[serde(rename = "extLst")]
12113    #[serde(default, skip_serializing_if = "Option::is_none")]
12114    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
12115    /// Unknown attributes captured for roundtrip fidelity.
12116    #[cfg(feature = "extra-attrs")]
12117    #[serde(skip)]
12118    #[cfg(feature = "extra-attrs")]
12119    #[serde(default)]
12120    #[cfg(feature = "extra-attrs")]
12121    pub extra_attrs: std::collections::HashMap<String, String>,
12122    /// Unknown child elements captured for roundtrip fidelity.
12123    #[cfg(feature = "extra-children")]
12124    #[serde(skip)]
12125    #[cfg(feature = "extra-children")]
12126    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12127}
12128
12129#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12130pub struct BlipFillProperties {
12131    #[cfg(feature = "dml-fills")]
12132    #[serde(rename = "@dpi")]
12133    #[serde(default, skip_serializing_if = "Option::is_none")]
12134    pub dpi: Option<u32>,
12135    #[cfg(feature = "dml-fills")]
12136    #[serde(rename = "@rotWithShape")]
12137    #[serde(
12138        default,
12139        skip_serializing_if = "Option::is_none",
12140        with = "ooxml_xml::ooxml_bool"
12141    )]
12142    pub rot_with_shape: Option<bool>,
12143    #[cfg(feature = "dml-fills")]
12144    #[serde(rename = "blip")]
12145    #[serde(default, skip_serializing_if = "Option::is_none")]
12146    pub blip: Option<Box<Blip>>,
12147    #[cfg(feature = "dml-fills")]
12148    #[serde(rename = "srcRect")]
12149    #[serde(default, skip_serializing_if = "Option::is_none")]
12150    pub src_rect: Option<Box<CTRelativeRect>>,
12151    #[serde(skip)]
12152    #[serde(default)]
12153    pub fill_mode_properties: Option<Box<EGFillModeProperties>>,
12154    /// Unknown attributes captured for roundtrip fidelity.
12155    #[cfg(feature = "extra-attrs")]
12156    #[serde(skip)]
12157    #[cfg(feature = "extra-attrs")]
12158    #[serde(default)]
12159    #[cfg(feature = "extra-attrs")]
12160    pub extra_attrs: std::collections::HashMap<String, String>,
12161    /// Unknown child elements captured for roundtrip fidelity.
12162    #[cfg(feature = "extra-children")]
12163    #[serde(skip)]
12164    #[cfg(feature = "extra-children")]
12165    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12166}
12167
12168#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12169pub struct PatternFill {
12170    #[cfg(feature = "dml-fills")]
12171    #[serde(rename = "@prst")]
12172    #[serde(default, skip_serializing_if = "Option::is_none")]
12173    pub preset: Option<STPresetPatternVal>,
12174    #[cfg(feature = "dml-fills")]
12175    #[serde(rename = "fgClr")]
12176    #[serde(default, skip_serializing_if = "Option::is_none")]
12177    pub fg_clr: Option<Box<CTColor>>,
12178    #[cfg(feature = "dml-fills")]
12179    #[serde(rename = "bgClr")]
12180    #[serde(default, skip_serializing_if = "Option::is_none")]
12181    pub bg_clr: Option<Box<CTColor>>,
12182    /// Unknown attributes captured for roundtrip fidelity.
12183    #[cfg(feature = "extra-attrs")]
12184    #[serde(skip)]
12185    #[cfg(feature = "extra-attrs")]
12186    #[serde(default)]
12187    #[cfg(feature = "extra-attrs")]
12188    pub extra_attrs: std::collections::HashMap<String, String>,
12189    /// Unknown child elements captured for roundtrip fidelity.
12190    #[cfg(feature = "extra-children")]
12191    #[serde(skip)]
12192    #[cfg(feature = "extra-children")]
12193    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12194}
12195
12196#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12197pub struct CTGroupFillProperties;
12198
12199#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12200pub struct CTFillProperties {
12201    #[serde(skip)]
12202    #[serde(default)]
12203    pub fill_properties: Option<Box<EGFillProperties>>,
12204    /// Unknown child elements captured for roundtrip fidelity.
12205    #[cfg(feature = "extra-children")]
12206    #[serde(skip)]
12207    #[cfg(feature = "extra-children")]
12208    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12209}
12210
12211#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12212pub struct CTFillEffect {
12213    #[serde(skip)]
12214    #[serde(default)]
12215    pub fill_properties: Option<Box<EGFillProperties>>,
12216    /// Unknown child elements captured for roundtrip fidelity.
12217    #[cfg(feature = "extra-children")]
12218    #[serde(skip)]
12219    #[cfg(feature = "extra-children")]
12220    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12221}
12222
12223#[derive(Debug, Clone, Serialize, Deserialize)]
12224pub struct CTFillOverlayEffect {
12225    #[serde(rename = "@blend")]
12226    pub blend: STBlendMode,
12227    #[serde(skip)]
12228    #[serde(default)]
12229    pub fill_properties: Option<Box<EGFillProperties>>,
12230    /// Unknown attributes captured for roundtrip fidelity.
12231    #[cfg(feature = "extra-attrs")]
12232    #[serde(skip)]
12233    #[cfg(feature = "extra-attrs")]
12234    #[serde(default)]
12235    #[cfg(feature = "extra-attrs")]
12236    pub extra_attrs: std::collections::HashMap<String, String>,
12237    /// Unknown child elements captured for roundtrip fidelity.
12238    #[cfg(feature = "extra-children")]
12239    #[serde(skip)]
12240    #[cfg(feature = "extra-children")]
12241    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12242}
12243
12244#[derive(Debug, Clone, Serialize, Deserialize)]
12245pub struct CTEffectReference {
12246    #[serde(rename = "@ref")]
12247    pub r#ref: String,
12248    /// Unknown attributes captured for roundtrip fidelity.
12249    #[cfg(feature = "extra-attrs")]
12250    #[serde(skip)]
12251    #[cfg(feature = "extra-attrs")]
12252    #[serde(default)]
12253    #[cfg(feature = "extra-attrs")]
12254    pub extra_attrs: std::collections::HashMap<String, String>,
12255}
12256
12257#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12258pub struct EffectContainer {
12259    #[serde(rename = "@type")]
12260    #[serde(default, skip_serializing_if = "Option::is_none")]
12261    pub r#type: Option<STEffectContainerType>,
12262    #[serde(rename = "@name")]
12263    #[serde(default, skip_serializing_if = "Option::is_none")]
12264    pub name: Option<String>,
12265    #[serde(skip)]
12266    #[serde(default)]
12267    pub effect: Vec<EGEffect>,
12268    /// Unknown attributes captured for roundtrip fidelity.
12269    #[cfg(feature = "extra-attrs")]
12270    #[serde(skip)]
12271    #[cfg(feature = "extra-attrs")]
12272    #[serde(default)]
12273    #[cfg(feature = "extra-attrs")]
12274    pub extra_attrs: std::collections::HashMap<String, String>,
12275    /// Unknown child elements captured for roundtrip fidelity.
12276    #[cfg(feature = "extra-children")]
12277    #[serde(skip)]
12278    #[cfg(feature = "extra-children")]
12279    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12280}
12281
12282pub type AlphaModulateEffectElement = Box<EffectContainer>;
12283
12284#[derive(Debug, Clone, Serialize, Deserialize)]
12285pub struct CTBlendEffect {
12286    #[serde(rename = "@blend")]
12287    pub blend: STBlendMode,
12288    #[serde(rename = "cont")]
12289    pub cont: Box<EffectContainer>,
12290    /// Unknown attributes captured for roundtrip fidelity.
12291    #[cfg(feature = "extra-attrs")]
12292    #[serde(skip)]
12293    #[cfg(feature = "extra-attrs")]
12294    #[serde(default)]
12295    #[cfg(feature = "extra-attrs")]
12296    pub extra_attrs: std::collections::HashMap<String, String>,
12297    /// Unknown child elements captured for roundtrip fidelity.
12298    #[cfg(feature = "extra-children")]
12299    #[serde(skip)]
12300    #[cfg(feature = "extra-children")]
12301    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12302}
12303
12304#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12305pub struct EffectList {
12306    #[cfg(feature = "dml-effects")]
12307    #[serde(rename = "blur")]
12308    #[serde(default, skip_serializing_if = "Option::is_none")]
12309    pub blur: Option<Box<CTBlurEffect>>,
12310    #[cfg(feature = "dml-effects")]
12311    #[serde(rename = "fillOverlay")]
12312    #[serde(default, skip_serializing_if = "Option::is_none")]
12313    pub fill_overlay: Option<Box<CTFillOverlayEffect>>,
12314    #[cfg(feature = "dml-effects")]
12315    #[serde(rename = "glow")]
12316    #[serde(default, skip_serializing_if = "Option::is_none")]
12317    pub glow: Option<Box<CTGlowEffect>>,
12318    #[cfg(feature = "dml-effects")]
12319    #[serde(rename = "innerShdw")]
12320    #[serde(default, skip_serializing_if = "Option::is_none")]
12321    pub inner_shdw: Option<Box<CTInnerShadowEffect>>,
12322    #[cfg(feature = "dml-effects")]
12323    #[serde(rename = "outerShdw")]
12324    #[serde(default, skip_serializing_if = "Option::is_none")]
12325    pub outer_shdw: Option<Box<CTOuterShadowEffect>>,
12326    #[cfg(feature = "dml-effects")]
12327    #[serde(rename = "prstShdw")]
12328    #[serde(default, skip_serializing_if = "Option::is_none")]
12329    pub prst_shdw: Option<Box<CTPresetShadowEffect>>,
12330    #[cfg(feature = "dml-effects")]
12331    #[serde(rename = "reflection")]
12332    #[serde(default, skip_serializing_if = "Option::is_none")]
12333    pub reflection: Option<Box<CTReflectionEffect>>,
12334    #[cfg(feature = "dml-effects")]
12335    #[serde(rename = "softEdge")]
12336    #[serde(default, skip_serializing_if = "Option::is_none")]
12337    pub soft_edge: Option<Box<CTSoftEdgesEffect>>,
12338    /// Unknown child elements captured for roundtrip fidelity.
12339    #[cfg(feature = "extra-children")]
12340    #[serde(skip)]
12341    #[cfg(feature = "extra-children")]
12342    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12343}
12344
12345#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12346pub struct CTEffectProperties {
12347    #[serde(skip)]
12348    #[serde(default)]
12349    pub effect_properties: Option<Box<EGEffectProperties>>,
12350    /// Unknown child elements captured for roundtrip fidelity.
12351    #[cfg(feature = "extra-children")]
12352    #[serde(skip)]
12353    #[cfg(feature = "extra-children")]
12354    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12355}
12356
12357pub type ABlip = Box<Blip>;
12358
12359#[derive(Debug, Clone, Serialize, Deserialize)]
12360pub struct CTGeomGuide {
12361    #[serde(rename = "@name")]
12362    pub name: STGeomGuideName,
12363    #[serde(rename = "@fmla")]
12364    pub fmla: STGeomGuideFormula,
12365    /// Unknown attributes captured for roundtrip fidelity.
12366    #[cfg(feature = "extra-attrs")]
12367    #[serde(skip)]
12368    #[cfg(feature = "extra-attrs")]
12369    #[serde(default)]
12370    #[cfg(feature = "extra-attrs")]
12371    pub extra_attrs: std::collections::HashMap<String, String>,
12372}
12373
12374#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12375pub struct CTGeomGuideList {
12376    #[serde(rename = "gd")]
12377    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12378    pub gd: Vec<CTGeomGuide>,
12379    /// Unknown child elements captured for roundtrip fidelity.
12380    #[cfg(feature = "extra-children")]
12381    #[serde(skip)]
12382    #[cfg(feature = "extra-children")]
12383    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12384}
12385
12386#[derive(Debug, Clone, Serialize, Deserialize)]
12387pub struct CTAdjPoint2D {
12388    #[serde(rename = "@x")]
12389    pub x: STAdjCoordinate,
12390    #[serde(rename = "@y")]
12391    pub y: STAdjCoordinate,
12392    /// Unknown attributes captured for roundtrip fidelity.
12393    #[cfg(feature = "extra-attrs")]
12394    #[serde(skip)]
12395    #[cfg(feature = "extra-attrs")]
12396    #[serde(default)]
12397    #[cfg(feature = "extra-attrs")]
12398    pub extra_attrs: std::collections::HashMap<String, String>,
12399}
12400
12401#[derive(Debug, Clone, Serialize, Deserialize)]
12402pub struct CTGeomRect {
12403    #[serde(rename = "@l")]
12404    pub l: STAdjCoordinate,
12405    #[serde(rename = "@t")]
12406    pub t: STAdjCoordinate,
12407    #[serde(rename = "@r")]
12408    pub relationship_id: STAdjCoordinate,
12409    #[serde(rename = "@b")]
12410    pub b: STAdjCoordinate,
12411    /// Unknown attributes captured for roundtrip fidelity.
12412    #[cfg(feature = "extra-attrs")]
12413    #[serde(skip)]
12414    #[cfg(feature = "extra-attrs")]
12415    #[serde(default)]
12416    #[cfg(feature = "extra-attrs")]
12417    pub extra_attrs: std::collections::HashMap<String, String>,
12418}
12419
12420#[derive(Debug, Clone, Serialize, Deserialize)]
12421pub struct CTXYAdjustHandle {
12422    #[serde(rename = "@gdRefX")]
12423    #[serde(default, skip_serializing_if = "Option::is_none")]
12424    pub gd_ref_x: Option<STGeomGuideName>,
12425    #[serde(rename = "@minX")]
12426    #[serde(default, skip_serializing_if = "Option::is_none")]
12427    pub min_x: Option<STAdjCoordinate>,
12428    #[serde(rename = "@maxX")]
12429    #[serde(default, skip_serializing_if = "Option::is_none")]
12430    pub max_x: Option<STAdjCoordinate>,
12431    #[serde(rename = "@gdRefY")]
12432    #[serde(default, skip_serializing_if = "Option::is_none")]
12433    pub gd_ref_y: Option<STGeomGuideName>,
12434    #[serde(rename = "@minY")]
12435    #[serde(default, skip_serializing_if = "Option::is_none")]
12436    pub min_y: Option<STAdjCoordinate>,
12437    #[serde(rename = "@maxY")]
12438    #[serde(default, skip_serializing_if = "Option::is_none")]
12439    pub max_y: Option<STAdjCoordinate>,
12440    #[serde(rename = "pos")]
12441    pub pos: Box<CTAdjPoint2D>,
12442    /// Unknown attributes captured for roundtrip fidelity.
12443    #[cfg(feature = "extra-attrs")]
12444    #[serde(skip)]
12445    #[cfg(feature = "extra-attrs")]
12446    #[serde(default)]
12447    #[cfg(feature = "extra-attrs")]
12448    pub extra_attrs: std::collections::HashMap<String, String>,
12449    /// Unknown child elements captured for roundtrip fidelity.
12450    #[cfg(feature = "extra-children")]
12451    #[serde(skip)]
12452    #[cfg(feature = "extra-children")]
12453    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12454}
12455
12456#[derive(Debug, Clone, Serialize, Deserialize)]
12457pub struct CTPolarAdjustHandle {
12458    #[serde(rename = "@gdRefR")]
12459    #[serde(default, skip_serializing_if = "Option::is_none")]
12460    pub gd_ref_r: Option<STGeomGuideName>,
12461    #[serde(rename = "@minR")]
12462    #[serde(default, skip_serializing_if = "Option::is_none")]
12463    pub min_r: Option<STAdjCoordinate>,
12464    #[serde(rename = "@maxR")]
12465    #[serde(default, skip_serializing_if = "Option::is_none")]
12466    pub max_r: Option<STAdjCoordinate>,
12467    #[serde(rename = "@gdRefAng")]
12468    #[serde(default, skip_serializing_if = "Option::is_none")]
12469    pub gd_ref_ang: Option<STGeomGuideName>,
12470    #[serde(rename = "@minAng")]
12471    #[serde(default, skip_serializing_if = "Option::is_none")]
12472    pub min_ang: Option<STAdjAngle>,
12473    #[serde(rename = "@maxAng")]
12474    #[serde(default, skip_serializing_if = "Option::is_none")]
12475    pub max_ang: Option<STAdjAngle>,
12476    #[serde(rename = "pos")]
12477    pub pos: Box<CTAdjPoint2D>,
12478    /// Unknown attributes captured for roundtrip fidelity.
12479    #[cfg(feature = "extra-attrs")]
12480    #[serde(skip)]
12481    #[cfg(feature = "extra-attrs")]
12482    #[serde(default)]
12483    #[cfg(feature = "extra-attrs")]
12484    pub extra_attrs: std::collections::HashMap<String, String>,
12485    /// Unknown child elements captured for roundtrip fidelity.
12486    #[cfg(feature = "extra-children")]
12487    #[serde(skip)]
12488    #[cfg(feature = "extra-children")]
12489    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12490}
12491
12492#[derive(Debug, Clone, Serialize, Deserialize)]
12493pub struct CTConnectionSite {
12494    #[serde(rename = "@ang")]
12495    pub ang: STAdjAngle,
12496    #[serde(rename = "pos")]
12497    pub pos: Box<CTAdjPoint2D>,
12498    /// Unknown attributes captured for roundtrip fidelity.
12499    #[cfg(feature = "extra-attrs")]
12500    #[serde(skip)]
12501    #[cfg(feature = "extra-attrs")]
12502    #[serde(default)]
12503    #[cfg(feature = "extra-attrs")]
12504    pub extra_attrs: std::collections::HashMap<String, String>,
12505    /// Unknown child elements captured for roundtrip fidelity.
12506    #[cfg(feature = "extra-children")]
12507    #[serde(skip)]
12508    #[cfg(feature = "extra-children")]
12509    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12510}
12511
12512#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12513pub struct CTAdjustHandleList {
12514    #[serde(rename = "ahXY")]
12515    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12516    pub ah_x_y: Vec<CTXYAdjustHandle>,
12517    #[serde(rename = "ahPolar")]
12518    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12519    pub ah_polar: Vec<CTPolarAdjustHandle>,
12520    /// Unknown child elements captured for roundtrip fidelity.
12521    #[cfg(feature = "extra-children")]
12522    #[serde(skip)]
12523    #[cfg(feature = "extra-children")]
12524    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12525}
12526
12527#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12528pub struct CTConnectionSiteList {
12529    #[serde(rename = "cxn")]
12530    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12531    pub cxn: Vec<CTConnectionSite>,
12532    /// Unknown child elements captured for roundtrip fidelity.
12533    #[cfg(feature = "extra-children")]
12534    #[serde(skip)]
12535    #[cfg(feature = "extra-children")]
12536    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12537}
12538
12539#[derive(Debug, Clone, Serialize, Deserialize)]
12540pub struct CTConnection {
12541    #[serde(rename = "@id")]
12542    pub id: STDrawingElementId,
12543    #[serde(rename = "@idx")]
12544    pub idx: u32,
12545    /// Unknown attributes captured for roundtrip fidelity.
12546    #[cfg(feature = "extra-attrs")]
12547    #[serde(skip)]
12548    #[cfg(feature = "extra-attrs")]
12549    #[serde(default)]
12550    #[cfg(feature = "extra-attrs")]
12551    pub extra_attrs: std::collections::HashMap<String, String>,
12552}
12553
12554pub type Path2DMoveToElement = Box<CTAdjPoint2D>;
12555
12556pub type Path2DLineToElement = Box<CTAdjPoint2D>;
12557
12558#[derive(Debug, Clone, Serialize, Deserialize)]
12559pub struct CTPath2DArcTo {
12560    #[serde(rename = "@wR")]
12561    pub w_r: STAdjCoordinate,
12562    #[serde(rename = "@hR")]
12563    pub h_r: STAdjCoordinate,
12564    #[serde(rename = "@stAng")]
12565    pub st_ang: STAdjAngle,
12566    #[serde(rename = "@swAng")]
12567    pub sw_ang: STAdjAngle,
12568    /// Unknown attributes captured for roundtrip fidelity.
12569    #[cfg(feature = "extra-attrs")]
12570    #[serde(skip)]
12571    #[cfg(feature = "extra-attrs")]
12572    #[serde(default)]
12573    #[cfg(feature = "extra-attrs")]
12574    pub extra_attrs: std::collections::HashMap<String, String>,
12575}
12576
12577#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12578pub struct CTPath2DQuadBezierTo {
12579    #[serde(rename = "pt")]
12580    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12581    pub pt: Vec<CTAdjPoint2D>,
12582    /// Unknown child elements captured for roundtrip fidelity.
12583    #[cfg(feature = "extra-children")]
12584    #[serde(skip)]
12585    #[cfg(feature = "extra-children")]
12586    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12587}
12588
12589#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12590pub struct CTPath2DCubicBezierTo {
12591    #[serde(rename = "pt")]
12592    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12593    pub pt: Vec<CTAdjPoint2D>,
12594    /// Unknown child elements captured for roundtrip fidelity.
12595    #[cfg(feature = "extra-children")]
12596    #[serde(skip)]
12597    #[cfg(feature = "extra-children")]
12598    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12599}
12600
12601#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12602pub struct CTPath2DClose;
12603
12604#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12605pub struct CTPath2D {
12606    #[serde(rename = "@w")]
12607    #[serde(default, skip_serializing_if = "Option::is_none")]
12608    pub width: Option<STPositiveCoordinate>,
12609    #[serde(rename = "@h")]
12610    #[serde(default, skip_serializing_if = "Option::is_none")]
12611    pub height: Option<STPositiveCoordinate>,
12612    #[serde(rename = "@fill")]
12613    #[serde(default, skip_serializing_if = "Option::is_none")]
12614    pub fill: Option<STPathFillMode>,
12615    #[serde(rename = "@stroke")]
12616    #[serde(
12617        default,
12618        skip_serializing_if = "Option::is_none",
12619        with = "ooxml_xml::ooxml_bool"
12620    )]
12621    pub stroke: Option<bool>,
12622    #[serde(rename = "@extrusionOk")]
12623    #[serde(
12624        default,
12625        skip_serializing_if = "Option::is_none",
12626        with = "ooxml_xml::ooxml_bool"
12627    )]
12628    pub extrusion_ok: Option<bool>,
12629    #[serde(rename = "close")]
12630    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12631    pub close: Vec<CTPath2DClose>,
12632    #[serde(rename = "moveTo")]
12633    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12634    pub move_to: Vec<Path2DMoveToElement>,
12635    #[serde(rename = "lnTo")]
12636    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12637    pub ln_to: Vec<Path2DLineToElement>,
12638    #[serde(rename = "arcTo")]
12639    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12640    pub arc_to: Vec<CTPath2DArcTo>,
12641    #[serde(rename = "quadBezTo")]
12642    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12643    pub quad_bez_to: Vec<CTPath2DQuadBezierTo>,
12644    #[serde(rename = "cubicBezTo")]
12645    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12646    pub cubic_bez_to: Vec<CTPath2DCubicBezierTo>,
12647    /// Unknown attributes captured for roundtrip fidelity.
12648    #[cfg(feature = "extra-attrs")]
12649    #[serde(skip)]
12650    #[cfg(feature = "extra-attrs")]
12651    #[serde(default)]
12652    #[cfg(feature = "extra-attrs")]
12653    pub extra_attrs: std::collections::HashMap<String, String>,
12654    /// Unknown child elements captured for roundtrip fidelity.
12655    #[cfg(feature = "extra-children")]
12656    #[serde(skip)]
12657    #[cfg(feature = "extra-children")]
12658    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12659}
12660
12661#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12662pub struct CTPath2DList {
12663    #[serde(rename = "path")]
12664    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12665    pub path: Vec<CTPath2D>,
12666    /// Unknown child elements captured for roundtrip fidelity.
12667    #[cfg(feature = "extra-children")]
12668    #[serde(skip)]
12669    #[cfg(feature = "extra-children")]
12670    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12671}
12672
12673#[derive(Debug, Clone, Serialize, Deserialize)]
12674pub struct CTPresetGeometry2D {
12675    #[serde(rename = "@prst")]
12676    pub preset: STShapeType,
12677    #[serde(rename = "avLst")]
12678    #[serde(default, skip_serializing_if = "Option::is_none")]
12679    pub av_lst: Option<Box<CTGeomGuideList>>,
12680    /// Unknown attributes captured for roundtrip fidelity.
12681    #[cfg(feature = "extra-attrs")]
12682    #[serde(skip)]
12683    #[cfg(feature = "extra-attrs")]
12684    #[serde(default)]
12685    #[cfg(feature = "extra-attrs")]
12686    pub extra_attrs: std::collections::HashMap<String, String>,
12687    /// Unknown child elements captured for roundtrip fidelity.
12688    #[cfg(feature = "extra-children")]
12689    #[serde(skip)]
12690    #[cfg(feature = "extra-children")]
12691    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12692}
12693
12694#[derive(Debug, Clone, Serialize, Deserialize)]
12695pub struct CTPresetTextShape {
12696    #[serde(rename = "@prst")]
12697    pub preset: STTextShapeType,
12698    #[serde(rename = "avLst")]
12699    #[serde(default, skip_serializing_if = "Option::is_none")]
12700    pub av_lst: Option<Box<CTGeomGuideList>>,
12701    /// Unknown attributes captured for roundtrip fidelity.
12702    #[cfg(feature = "extra-attrs")]
12703    #[serde(skip)]
12704    #[cfg(feature = "extra-attrs")]
12705    #[serde(default)]
12706    #[cfg(feature = "extra-attrs")]
12707    pub extra_attrs: std::collections::HashMap<String, String>,
12708    /// Unknown child elements captured for roundtrip fidelity.
12709    #[cfg(feature = "extra-children")]
12710    #[serde(skip)]
12711    #[cfg(feature = "extra-children")]
12712    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12713}
12714
12715#[derive(Debug, Clone, Serialize, Deserialize)]
12716pub struct CTCustomGeometry2D {
12717    #[serde(rename = "avLst")]
12718    #[serde(default, skip_serializing_if = "Option::is_none")]
12719    pub av_lst: Option<Box<CTGeomGuideList>>,
12720    #[serde(rename = "gdLst")]
12721    #[serde(default, skip_serializing_if = "Option::is_none")]
12722    pub gd_lst: Option<Box<CTGeomGuideList>>,
12723    #[serde(rename = "ahLst")]
12724    #[serde(default, skip_serializing_if = "Option::is_none")]
12725    pub ah_lst: Option<Box<CTAdjustHandleList>>,
12726    #[serde(rename = "cxnLst")]
12727    #[serde(default, skip_serializing_if = "Option::is_none")]
12728    pub cxn_lst: Option<Box<CTConnectionSiteList>>,
12729    #[serde(rename = "rect")]
12730    #[serde(default, skip_serializing_if = "Option::is_none")]
12731    pub rect: Option<Box<CTGeomRect>>,
12732    #[serde(rename = "pathLst")]
12733    pub path_lst: Box<CTPath2DList>,
12734    /// Unknown child elements captured for roundtrip fidelity.
12735    #[cfg(feature = "extra-children")]
12736    #[serde(skip)]
12737    #[cfg(feature = "extra-children")]
12738    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12739}
12740
12741#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12742pub struct CTLineEndProperties {
12743    #[cfg(feature = "dml-lines")]
12744    #[serde(rename = "@type")]
12745    #[serde(default, skip_serializing_if = "Option::is_none")]
12746    pub r#type: Option<STLineEndType>,
12747    #[cfg(feature = "dml-lines")]
12748    #[serde(rename = "@w")]
12749    #[serde(default, skip_serializing_if = "Option::is_none")]
12750    pub width: Option<STLineEndWidth>,
12751    #[cfg(feature = "dml-lines")]
12752    #[serde(rename = "@len")]
12753    #[serde(default, skip_serializing_if = "Option::is_none")]
12754    pub len: Option<STLineEndLength>,
12755    /// Unknown attributes captured for roundtrip fidelity.
12756    #[cfg(feature = "extra-attrs")]
12757    #[serde(skip)]
12758    #[cfg(feature = "extra-attrs")]
12759    #[serde(default)]
12760    #[cfg(feature = "extra-attrs")]
12761    pub extra_attrs: std::collections::HashMap<String, String>,
12762}
12763
12764#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12765pub struct CTLineJoinBevel;
12766
12767#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12768pub struct CTLineJoinRound;
12769
12770#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12771pub struct CTLineJoinMiterProperties {
12772    #[serde(rename = "@lim")]
12773    #[serde(default, skip_serializing_if = "Option::is_none")]
12774    pub lim: Option<STPositivePercentage>,
12775    /// Unknown attributes captured for roundtrip fidelity.
12776    #[cfg(feature = "extra-attrs")]
12777    #[serde(skip)]
12778    #[cfg(feature = "extra-attrs")]
12779    #[serde(default)]
12780    #[cfg(feature = "extra-attrs")]
12781    pub extra_attrs: std::collections::HashMap<String, String>,
12782}
12783
12784#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12785pub struct CTPresetLineDashProperties {
12786    #[cfg(feature = "dml-lines")]
12787    #[serde(rename = "@val")]
12788    #[serde(default, skip_serializing_if = "Option::is_none")]
12789    pub value: Option<STPresetLineDashVal>,
12790    /// Unknown attributes captured for roundtrip fidelity.
12791    #[cfg(feature = "extra-attrs")]
12792    #[serde(skip)]
12793    #[cfg(feature = "extra-attrs")]
12794    #[serde(default)]
12795    #[cfg(feature = "extra-attrs")]
12796    pub extra_attrs: std::collections::HashMap<String, String>,
12797}
12798
12799#[derive(Debug, Clone, Serialize, Deserialize)]
12800pub struct CTDashStop {
12801    #[cfg(feature = "dml-lines")]
12802    #[serde(rename = "@d")]
12803    pub d: STPositivePercentage,
12804    #[cfg(feature = "dml-lines")]
12805    #[serde(rename = "@sp")]
12806    pub sp: STPositivePercentage,
12807    /// Unknown attributes captured for roundtrip fidelity.
12808    #[cfg(feature = "extra-attrs")]
12809    #[serde(skip)]
12810    #[cfg(feature = "extra-attrs")]
12811    #[serde(default)]
12812    #[cfg(feature = "extra-attrs")]
12813    pub extra_attrs: std::collections::HashMap<String, String>,
12814}
12815
12816#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12817pub struct CTDashStopList {
12818    #[serde(rename = "ds")]
12819    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12820    pub ds: Vec<CTDashStop>,
12821    /// Unknown child elements captured for roundtrip fidelity.
12822    #[cfg(feature = "extra-children")]
12823    #[serde(skip)]
12824    #[cfg(feature = "extra-children")]
12825    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12826}
12827
12828#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12829pub struct LineProperties {
12830    #[cfg(feature = "dml-lines")]
12831    #[serde(rename = "@w")]
12832    #[serde(default, skip_serializing_if = "Option::is_none")]
12833    pub width: Option<STLineWidth>,
12834    #[cfg(feature = "dml-lines")]
12835    #[serde(rename = "@cap")]
12836    #[serde(default, skip_serializing_if = "Option::is_none")]
12837    pub cap: Option<STLineCap>,
12838    #[cfg(feature = "dml-lines")]
12839    #[serde(rename = "@cmpd")]
12840    #[serde(default, skip_serializing_if = "Option::is_none")]
12841    pub cmpd: Option<STCompoundLine>,
12842    #[cfg(feature = "dml-lines")]
12843    #[serde(rename = "@algn")]
12844    #[serde(default, skip_serializing_if = "Option::is_none")]
12845    pub algn: Option<STPenAlignment>,
12846    #[serde(skip)]
12847    #[serde(default)]
12848    pub line_fill_properties: Option<Box<EGLineFillProperties>>,
12849    #[serde(skip)]
12850    #[serde(default)]
12851    pub line_dash_properties: Option<Box<EGLineDashProperties>>,
12852    #[serde(skip)]
12853    #[serde(default)]
12854    pub line_join_properties: Option<Box<EGLineJoinProperties>>,
12855    #[cfg(feature = "dml-lines")]
12856    #[serde(rename = "headEnd")]
12857    #[serde(default, skip_serializing_if = "Option::is_none")]
12858    pub head_end: Option<Box<CTLineEndProperties>>,
12859    #[cfg(feature = "dml-lines")]
12860    #[serde(rename = "tailEnd")]
12861    #[serde(default, skip_serializing_if = "Option::is_none")]
12862    pub tail_end: Option<Box<CTLineEndProperties>>,
12863    #[cfg(feature = "dml-extensions")]
12864    #[serde(rename = "extLst")]
12865    #[serde(default, skip_serializing_if = "Option::is_none")]
12866    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
12867    /// Unknown attributes captured for roundtrip fidelity.
12868    #[cfg(feature = "extra-attrs")]
12869    #[serde(skip)]
12870    #[cfg(feature = "extra-attrs")]
12871    #[serde(default)]
12872    #[cfg(feature = "extra-attrs")]
12873    pub extra_attrs: std::collections::HashMap<String, String>,
12874    /// Unknown child elements captured for roundtrip fidelity.
12875    #[cfg(feature = "extra-children")]
12876    #[serde(skip)]
12877    #[cfg(feature = "extra-children")]
12878    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12879}
12880
12881#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12882pub struct CTShapeProperties {
12883    #[cfg(feature = "dml-shapes")]
12884    #[serde(rename = "@bwMode")]
12885    #[serde(default, skip_serializing_if = "Option::is_none")]
12886    pub bw_mode: Option<STBlackWhiteMode>,
12887    #[serde(rename = "xfrm")]
12888    #[serde(default, skip_serializing_if = "Option::is_none")]
12889    pub transform: Option<Box<Transform2D>>,
12890    #[serde(skip)]
12891    #[serde(default)]
12892    pub geometry: Option<Box<EGGeometry>>,
12893    #[serde(skip)]
12894    #[serde(default)]
12895    pub fill_properties: Option<Box<EGFillProperties>>,
12896    #[cfg(feature = "dml-lines")]
12897    #[serde(rename = "ln")]
12898    #[serde(default, skip_serializing_if = "Option::is_none")]
12899    pub line: Option<Box<LineProperties>>,
12900    #[serde(skip)]
12901    #[serde(default)]
12902    pub effect_properties: Option<Box<EGEffectProperties>>,
12903    #[cfg(feature = "dml-3d")]
12904    #[serde(rename = "scene3d")]
12905    #[serde(default, skip_serializing_if = "Option::is_none")]
12906    pub scene3d: Option<Box<CTScene3D>>,
12907    #[cfg(feature = "dml-3d")]
12908    #[serde(rename = "sp3d")]
12909    #[serde(default, skip_serializing_if = "Option::is_none")]
12910    pub sp3d: Option<Box<CTShape3D>>,
12911    #[cfg(feature = "dml-extensions")]
12912    #[serde(rename = "extLst")]
12913    #[serde(default, skip_serializing_if = "Option::is_none")]
12914    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
12915    /// Unknown attributes captured for roundtrip fidelity.
12916    #[cfg(feature = "extra-attrs")]
12917    #[serde(skip)]
12918    #[cfg(feature = "extra-attrs")]
12919    #[serde(default)]
12920    #[cfg(feature = "extra-attrs")]
12921    pub extra_attrs: std::collections::HashMap<String, String>,
12922    /// Unknown child elements captured for roundtrip fidelity.
12923    #[cfg(feature = "extra-children")]
12924    #[serde(skip)]
12925    #[cfg(feature = "extra-children")]
12926    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12927}
12928
12929#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12930pub struct CTGroupShapeProperties {
12931    #[cfg(feature = "dml-shapes")]
12932    #[serde(rename = "@bwMode")]
12933    #[serde(default, skip_serializing_if = "Option::is_none")]
12934    pub bw_mode: Option<STBlackWhiteMode>,
12935    #[serde(rename = "xfrm")]
12936    #[serde(default, skip_serializing_if = "Option::is_none")]
12937    pub transform: Option<Box<CTGroupTransform2D>>,
12938    #[serde(skip)]
12939    #[serde(default)]
12940    pub fill_properties: Option<Box<EGFillProperties>>,
12941    #[serde(skip)]
12942    #[serde(default)]
12943    pub effect_properties: Option<Box<EGEffectProperties>>,
12944    #[cfg(feature = "dml-3d")]
12945    #[serde(rename = "scene3d")]
12946    #[serde(default, skip_serializing_if = "Option::is_none")]
12947    pub scene3d: Option<Box<CTScene3D>>,
12948    #[cfg(feature = "dml-extensions")]
12949    #[serde(rename = "extLst")]
12950    #[serde(default, skip_serializing_if = "Option::is_none")]
12951    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
12952    /// Unknown attributes captured for roundtrip fidelity.
12953    #[cfg(feature = "extra-attrs")]
12954    #[serde(skip)]
12955    #[cfg(feature = "extra-attrs")]
12956    #[serde(default)]
12957    #[cfg(feature = "extra-attrs")]
12958    pub extra_attrs: std::collections::HashMap<String, String>,
12959    /// Unknown child elements captured for roundtrip fidelity.
12960    #[cfg(feature = "extra-children")]
12961    #[serde(skip)]
12962    #[cfg(feature = "extra-children")]
12963    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12964}
12965
12966#[derive(Debug, Clone, Serialize, Deserialize)]
12967pub struct CTStyleMatrixReference {
12968    #[cfg(feature = "dml-themes")]
12969    #[serde(rename = "@idx")]
12970    pub idx: STStyleMatrixColumnIndex,
12971    #[serde(skip)]
12972    #[serde(default)]
12973    pub color_choice: Option<Box<EGColorChoice>>,
12974    /// Unknown attributes captured for roundtrip fidelity.
12975    #[cfg(feature = "extra-attrs")]
12976    #[serde(skip)]
12977    #[cfg(feature = "extra-attrs")]
12978    #[serde(default)]
12979    #[cfg(feature = "extra-attrs")]
12980    pub extra_attrs: std::collections::HashMap<String, String>,
12981    /// Unknown child elements captured for roundtrip fidelity.
12982    #[cfg(feature = "extra-children")]
12983    #[serde(skip)]
12984    #[cfg(feature = "extra-children")]
12985    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12986}
12987
12988#[derive(Debug, Clone, Serialize, Deserialize)]
12989pub struct CTFontReference {
12990    #[cfg(feature = "dml-themes")]
12991    #[serde(rename = "@idx")]
12992    pub idx: STFontCollectionIndex,
12993    #[serde(skip)]
12994    #[serde(default)]
12995    pub color_choice: Option<Box<EGColorChoice>>,
12996    /// Unknown attributes captured for roundtrip fidelity.
12997    #[cfg(feature = "extra-attrs")]
12998    #[serde(skip)]
12999    #[cfg(feature = "extra-attrs")]
13000    #[serde(default)]
13001    #[cfg(feature = "extra-attrs")]
13002    pub extra_attrs: std::collections::HashMap<String, String>,
13003    /// Unknown child elements captured for roundtrip fidelity.
13004    #[cfg(feature = "extra-children")]
13005    #[serde(skip)]
13006    #[cfg(feature = "extra-children")]
13007    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13008}
13009
13010#[derive(Debug, Clone, Serialize, Deserialize)]
13011pub struct ShapeStyle {
13012    #[cfg(feature = "dml-shapes")]
13013    #[serde(rename = "lnRef")]
13014    pub ln_ref: Box<CTStyleMatrixReference>,
13015    #[cfg(feature = "dml-shapes")]
13016    #[serde(rename = "fillRef")]
13017    pub fill_ref: Box<CTStyleMatrixReference>,
13018    #[cfg(feature = "dml-shapes")]
13019    #[serde(rename = "effectRef")]
13020    pub effect_ref: Box<CTStyleMatrixReference>,
13021    #[cfg(feature = "dml-shapes")]
13022    #[serde(rename = "fontRef")]
13023    pub font_ref: Box<CTFontReference>,
13024    /// Unknown child elements captured for roundtrip fidelity.
13025    #[cfg(feature = "extra-children")]
13026    #[serde(skip)]
13027    #[cfg(feature = "extra-children")]
13028    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13029}
13030
13031#[derive(Debug, Clone, Serialize, Deserialize)]
13032pub struct CTDefaultShapeDefinition {
13033    #[serde(rename = "spPr")]
13034    pub sp_pr: Box<CTShapeProperties>,
13035    #[serde(rename = "bodyPr")]
13036    pub body_pr: Box<CTTextBodyProperties>,
13037    #[serde(rename = "lstStyle")]
13038    pub lst_style: Box<CTTextListStyle>,
13039    #[serde(rename = "style")]
13040    #[serde(default, skip_serializing_if = "Option::is_none")]
13041    pub style: Option<Box<ShapeStyle>>,
13042    #[serde(rename = "extLst")]
13043    #[serde(default, skip_serializing_if = "Option::is_none")]
13044    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
13045    /// Unknown child elements captured for roundtrip fidelity.
13046    #[cfg(feature = "extra-children")]
13047    #[serde(skip)]
13048    #[cfg(feature = "extra-children")]
13049    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13050}
13051
13052#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13053pub struct CTObjectStyleDefaults {
13054    #[serde(rename = "spDef")]
13055    #[serde(default, skip_serializing_if = "Option::is_none")]
13056    pub sp_def: Option<Box<CTDefaultShapeDefinition>>,
13057    #[serde(rename = "lnDef")]
13058    #[serde(default, skip_serializing_if = "Option::is_none")]
13059    pub ln_def: Option<Box<CTDefaultShapeDefinition>>,
13060    #[serde(rename = "txDef")]
13061    #[serde(default, skip_serializing_if = "Option::is_none")]
13062    pub tx_def: Option<Box<CTDefaultShapeDefinition>>,
13063    #[serde(rename = "extLst")]
13064    #[serde(default, skip_serializing_if = "Option::is_none")]
13065    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
13066    /// Unknown child elements captured for roundtrip fidelity.
13067    #[cfg(feature = "extra-children")]
13068    #[serde(skip)]
13069    #[cfg(feature = "extra-children")]
13070    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13071}
13072
13073#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13074pub struct CTEmptyElement;
13075
13076#[derive(Debug, Clone, Serialize, Deserialize)]
13077pub struct CTColorMapping {
13078    #[serde(rename = "@bg1")]
13079    pub bg1: STColorSchemeIndex,
13080    #[serde(rename = "@tx1")]
13081    pub tx1: STColorSchemeIndex,
13082    #[serde(rename = "@bg2")]
13083    pub bg2: STColorSchemeIndex,
13084    #[serde(rename = "@tx2")]
13085    pub tx2: STColorSchemeIndex,
13086    #[serde(rename = "@accent1")]
13087    pub accent1: STColorSchemeIndex,
13088    #[serde(rename = "@accent2")]
13089    pub accent2: STColorSchemeIndex,
13090    #[serde(rename = "@accent3")]
13091    pub accent3: STColorSchemeIndex,
13092    #[serde(rename = "@accent4")]
13093    pub accent4: STColorSchemeIndex,
13094    #[serde(rename = "@accent5")]
13095    pub accent5: STColorSchemeIndex,
13096    #[serde(rename = "@accent6")]
13097    pub accent6: STColorSchemeIndex,
13098    #[serde(rename = "@hlink")]
13099    pub hlink: STColorSchemeIndex,
13100    #[serde(rename = "@folHlink")]
13101    pub fol_hlink: STColorSchemeIndex,
13102    #[serde(rename = "extLst")]
13103    #[serde(default, skip_serializing_if = "Option::is_none")]
13104    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
13105    /// Unknown attributes captured for roundtrip fidelity.
13106    #[cfg(feature = "extra-attrs")]
13107    #[serde(skip)]
13108    #[cfg(feature = "extra-attrs")]
13109    #[serde(default)]
13110    #[cfg(feature = "extra-attrs")]
13111    pub extra_attrs: std::collections::HashMap<String, String>,
13112    /// Unknown child elements captured for roundtrip fidelity.
13113    #[cfg(feature = "extra-children")]
13114    #[serde(skip)]
13115    #[cfg(feature = "extra-children")]
13116    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13117}
13118
13119#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13120pub struct CTColorMappingOverride {
13121    #[cfg(feature = "dml-colors")]
13122    #[serde(rename = "masterClrMapping")]
13123    #[serde(default, skip_serializing_if = "Option::is_none")]
13124    pub master_clr_mapping: Option<Box<CTEmptyElement>>,
13125    #[cfg(feature = "dml-colors")]
13126    #[serde(rename = "overrideClrMapping")]
13127    #[serde(default, skip_serializing_if = "Option::is_none")]
13128    pub override_clr_mapping: Option<Box<CTColorMapping>>,
13129    /// Unknown child elements captured for roundtrip fidelity.
13130    #[cfg(feature = "extra-children")]
13131    #[serde(skip)]
13132    #[cfg(feature = "extra-children")]
13133    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13134}
13135
13136#[derive(Debug, Clone, Serialize, Deserialize)]
13137pub struct CTColorSchemeAndMapping {
13138    #[serde(rename = "clrScheme")]
13139    pub clr_scheme: Box<ColorScheme>,
13140    #[serde(rename = "clrMap")]
13141    #[serde(default, skip_serializing_if = "Option::is_none")]
13142    pub clr_map: Option<Box<CTColorMapping>>,
13143    /// Unknown child elements captured for roundtrip fidelity.
13144    #[cfg(feature = "extra-children")]
13145    #[serde(skip)]
13146    #[cfg(feature = "extra-children")]
13147    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13148}
13149
13150#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13151pub struct CTColorSchemeList {
13152    #[serde(rename = "extraClrScheme")]
13153    #[serde(default, skip_serializing_if = "Vec::is_empty")]
13154    pub extra_clr_scheme: Vec<CTColorSchemeAndMapping>,
13155    /// Unknown child elements captured for roundtrip fidelity.
13156    #[cfg(feature = "extra-children")]
13157    #[serde(skip)]
13158    #[cfg(feature = "extra-children")]
13159    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13160}
13161
13162#[derive(Debug, Clone, Serialize, Deserialize)]
13163pub struct CTOfficeStyleSheet {
13164    #[cfg(feature = "dml-themes")]
13165    #[serde(rename = "@name")]
13166    #[serde(default, skip_serializing_if = "Option::is_none")]
13167    pub name: Option<String>,
13168    #[cfg(feature = "dml-themes")]
13169    #[serde(rename = "themeElements")]
13170    pub theme_elements: Box<CTBaseStyles>,
13171    #[cfg(feature = "dml-themes")]
13172    #[serde(rename = "objectDefaults")]
13173    #[serde(default, skip_serializing_if = "Option::is_none")]
13174    pub object_defaults: Option<Box<CTObjectStyleDefaults>>,
13175    #[cfg(feature = "dml-themes")]
13176    #[serde(rename = "extraClrSchemeLst")]
13177    #[serde(default, skip_serializing_if = "Option::is_none")]
13178    pub extra_clr_scheme_lst: Option<Box<CTColorSchemeList>>,
13179    #[cfg(feature = "dml-themes")]
13180    #[serde(rename = "custClrLst")]
13181    #[serde(default, skip_serializing_if = "Option::is_none")]
13182    pub cust_clr_lst: Option<Box<CTCustomColorList>>,
13183    #[cfg(feature = "dml-extensions")]
13184    #[serde(rename = "extLst")]
13185    #[serde(default, skip_serializing_if = "Option::is_none")]
13186    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
13187    /// Unknown attributes captured for roundtrip fidelity.
13188    #[cfg(feature = "extra-attrs")]
13189    #[serde(skip)]
13190    #[cfg(feature = "extra-attrs")]
13191    #[serde(default)]
13192    #[cfg(feature = "extra-attrs")]
13193    pub extra_attrs: std::collections::HashMap<String, String>,
13194    /// Unknown child elements captured for roundtrip fidelity.
13195    #[cfg(feature = "extra-children")]
13196    #[serde(skip)]
13197    #[cfg(feature = "extra-children")]
13198    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13199}
13200
13201#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13202pub struct CTBaseStylesOverride {
13203    #[serde(rename = "clrScheme")]
13204    #[serde(default, skip_serializing_if = "Option::is_none")]
13205    pub clr_scheme: Option<Box<ColorScheme>>,
13206    #[serde(rename = "fontScheme")]
13207    #[serde(default, skip_serializing_if = "Option::is_none")]
13208    pub font_scheme: Option<Box<FontScheme>>,
13209    #[serde(rename = "fmtScheme")]
13210    #[serde(default, skip_serializing_if = "Option::is_none")]
13211    pub fmt_scheme: Option<Box<CTStyleMatrix>>,
13212    /// Unknown child elements captured for roundtrip fidelity.
13213    #[cfg(feature = "extra-children")]
13214    #[serde(skip)]
13215    #[cfg(feature = "extra-children")]
13216    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13217}
13218
13219#[derive(Debug, Clone, Serialize, Deserialize)]
13220pub struct CTClipboardStyleSheet {
13221    #[serde(rename = "themeElements")]
13222    pub theme_elements: Box<CTBaseStyles>,
13223    #[serde(rename = "clrMap")]
13224    pub clr_map: Box<CTColorMapping>,
13225    /// Unknown child elements captured for roundtrip fidelity.
13226    #[cfg(feature = "extra-children")]
13227    #[serde(skip)]
13228    #[cfg(feature = "extra-children")]
13229    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13230}
13231
13232pub type ATheme = Box<CTOfficeStyleSheet>;
13233
13234pub type AThemeOverride = Box<CTBaseStylesOverride>;
13235
13236pub type AThemeManager = Box<CTEmptyElement>;
13237
13238#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13239pub struct CTTableCellProperties {
13240    #[cfg(feature = "dml-tables")]
13241    #[serde(rename = "@marL")]
13242    #[serde(default, skip_serializing_if = "Option::is_none")]
13243    pub mar_l: Option<STCoordinate32>,
13244    #[cfg(feature = "dml-tables")]
13245    #[serde(rename = "@marR")]
13246    #[serde(default, skip_serializing_if = "Option::is_none")]
13247    pub mar_r: Option<STCoordinate32>,
13248    #[cfg(feature = "dml-tables")]
13249    #[serde(rename = "@marT")]
13250    #[serde(default, skip_serializing_if = "Option::is_none")]
13251    pub mar_t: Option<STCoordinate32>,
13252    #[cfg(feature = "dml-tables")]
13253    #[serde(rename = "@marB")]
13254    #[serde(default, skip_serializing_if = "Option::is_none")]
13255    pub mar_b: Option<STCoordinate32>,
13256    #[cfg(feature = "dml-tables")]
13257    #[serde(rename = "@vert")]
13258    #[serde(default, skip_serializing_if = "Option::is_none")]
13259    pub vert: Option<STTextVerticalType>,
13260    #[cfg(feature = "dml-tables")]
13261    #[serde(rename = "@anchor")]
13262    #[serde(default, skip_serializing_if = "Option::is_none")]
13263    pub anchor: Option<STTextAnchoringType>,
13264    #[cfg(feature = "dml-tables")]
13265    #[serde(rename = "@anchorCtr")]
13266    #[serde(
13267        default,
13268        skip_serializing_if = "Option::is_none",
13269        with = "ooxml_xml::ooxml_bool"
13270    )]
13271    pub anchor_ctr: Option<bool>,
13272    #[cfg(feature = "dml-tables")]
13273    #[serde(rename = "@horzOverflow")]
13274    #[serde(default, skip_serializing_if = "Option::is_none")]
13275    pub horz_overflow: Option<STTextHorzOverflowType>,
13276    #[cfg(feature = "dml-tables")]
13277    #[serde(rename = "lnL")]
13278    #[serde(default, skip_serializing_if = "Option::is_none")]
13279    pub ln_l: Option<Box<LineProperties>>,
13280    #[cfg(feature = "dml-tables")]
13281    #[serde(rename = "lnR")]
13282    #[serde(default, skip_serializing_if = "Option::is_none")]
13283    pub ln_r: Option<Box<LineProperties>>,
13284    #[cfg(feature = "dml-tables")]
13285    #[serde(rename = "lnT")]
13286    #[serde(default, skip_serializing_if = "Option::is_none")]
13287    pub ln_t: Option<Box<LineProperties>>,
13288    #[cfg(feature = "dml-tables")]
13289    #[serde(rename = "lnB")]
13290    #[serde(default, skip_serializing_if = "Option::is_none")]
13291    pub ln_b: Option<Box<LineProperties>>,
13292    #[cfg(feature = "dml-tables")]
13293    #[serde(rename = "lnTlToBr")]
13294    #[serde(default, skip_serializing_if = "Option::is_none")]
13295    pub ln_tl_to_br: Option<Box<LineProperties>>,
13296    #[cfg(feature = "dml-tables")]
13297    #[serde(rename = "lnBlToTr")]
13298    #[serde(default, skip_serializing_if = "Option::is_none")]
13299    pub ln_bl_to_tr: Option<Box<LineProperties>>,
13300    #[cfg(feature = "dml-tables")]
13301    #[serde(rename = "cell3D")]
13302    #[serde(default, skip_serializing_if = "Option::is_none")]
13303    pub cell3_d: Option<Box<CTCell3D>>,
13304    #[serde(skip)]
13305    #[serde(default)]
13306    pub fill_properties: Option<Box<EGFillProperties>>,
13307    #[serde(rename = "headers")]
13308    #[serde(default, skip_serializing_if = "Option::is_none")]
13309    pub headers: Option<Box<CTHeaders>>,
13310    #[cfg(feature = "dml-extensions")]
13311    #[serde(rename = "extLst")]
13312    #[serde(default, skip_serializing_if = "Option::is_none")]
13313    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
13314    /// Unknown attributes captured for roundtrip fidelity.
13315    #[cfg(feature = "extra-attrs")]
13316    #[serde(skip)]
13317    #[cfg(feature = "extra-attrs")]
13318    #[serde(default)]
13319    #[cfg(feature = "extra-attrs")]
13320    pub extra_attrs: std::collections::HashMap<String, String>,
13321    /// Unknown child elements captured for roundtrip fidelity.
13322    #[cfg(feature = "extra-children")]
13323    #[serde(skip)]
13324    #[cfg(feature = "extra-children")]
13325    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13326}
13327
13328#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13329pub struct CTHeaders {
13330    #[serde(rename = "header")]
13331    #[serde(default, skip_serializing_if = "Vec::is_empty")]
13332    pub header: Vec<String>,
13333    /// Unknown child elements captured for roundtrip fidelity.
13334    #[cfg(feature = "extra-children")]
13335    #[serde(skip)]
13336    #[cfg(feature = "extra-children")]
13337    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13338}
13339
13340#[derive(Debug, Clone, Serialize, Deserialize)]
13341pub struct CTTableCol {
13342    #[serde(rename = "@w")]
13343    pub width: STCoordinate,
13344    #[serde(rename = "extLst")]
13345    #[serde(default, skip_serializing_if = "Option::is_none")]
13346    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
13347    /// Unknown attributes captured for roundtrip fidelity.
13348    #[cfg(feature = "extra-attrs")]
13349    #[serde(skip)]
13350    #[cfg(feature = "extra-attrs")]
13351    #[serde(default)]
13352    #[cfg(feature = "extra-attrs")]
13353    pub extra_attrs: std::collections::HashMap<String, String>,
13354    /// Unknown child elements captured for roundtrip fidelity.
13355    #[cfg(feature = "extra-children")]
13356    #[serde(skip)]
13357    #[cfg(feature = "extra-children")]
13358    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13359}
13360
13361#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13362pub struct CTTableGrid {
13363    #[cfg(feature = "dml-tables")]
13364    #[serde(rename = "gridCol")]
13365    #[serde(default, skip_serializing_if = "Vec::is_empty")]
13366    pub grid_col: Vec<CTTableCol>,
13367    /// Unknown child elements captured for roundtrip fidelity.
13368    #[cfg(feature = "extra-children")]
13369    #[serde(skip)]
13370    #[cfg(feature = "extra-children")]
13371    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13372}
13373
13374#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13375pub struct CTTableCell {
13376    #[cfg(feature = "dml-tables")]
13377    #[serde(rename = "@rowSpan")]
13378    #[serde(default, skip_serializing_if = "Option::is_none")]
13379    pub row_span: Option<i32>,
13380    #[cfg(feature = "dml-tables")]
13381    #[serde(rename = "@gridSpan")]
13382    #[serde(default, skip_serializing_if = "Option::is_none")]
13383    pub grid_span: Option<i32>,
13384    #[cfg(feature = "dml-tables")]
13385    #[serde(rename = "@hMerge")]
13386    #[serde(
13387        default,
13388        skip_serializing_if = "Option::is_none",
13389        with = "ooxml_xml::ooxml_bool"
13390    )]
13391    pub h_merge: Option<bool>,
13392    #[cfg(feature = "dml-tables")]
13393    #[serde(rename = "@vMerge")]
13394    #[serde(
13395        default,
13396        skip_serializing_if = "Option::is_none",
13397        with = "ooxml_xml::ooxml_bool"
13398    )]
13399    pub v_merge: Option<bool>,
13400    #[serde(rename = "@id")]
13401    #[serde(default, skip_serializing_if = "Option::is_none")]
13402    pub id: Option<String>,
13403    #[cfg(feature = "dml-tables")]
13404    #[serde(rename = "txBody")]
13405    #[serde(default, skip_serializing_if = "Option::is_none")]
13406    pub tx_body: Option<Box<TextBody>>,
13407    #[cfg(feature = "dml-tables")]
13408    #[serde(rename = "tcPr")]
13409    #[serde(default, skip_serializing_if = "Option::is_none")]
13410    pub tc_pr: Option<Box<CTTableCellProperties>>,
13411    #[cfg(feature = "dml-extensions")]
13412    #[serde(rename = "extLst")]
13413    #[serde(default, skip_serializing_if = "Option::is_none")]
13414    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
13415    /// Unknown attributes captured for roundtrip fidelity.
13416    #[cfg(feature = "extra-attrs")]
13417    #[serde(skip)]
13418    #[cfg(feature = "extra-attrs")]
13419    #[serde(default)]
13420    #[cfg(feature = "extra-attrs")]
13421    pub extra_attrs: std::collections::HashMap<String, String>,
13422    /// Unknown child elements captured for roundtrip fidelity.
13423    #[cfg(feature = "extra-children")]
13424    #[serde(skip)]
13425    #[cfg(feature = "extra-children")]
13426    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13427}
13428
13429#[derive(Debug, Clone, Serialize, Deserialize)]
13430pub struct CTTableRow {
13431    #[cfg(feature = "dml-tables")]
13432    #[serde(rename = "@h")]
13433    pub height: STCoordinate,
13434    #[cfg(feature = "dml-tables")]
13435    #[serde(rename = "tc")]
13436    #[serde(default, skip_serializing_if = "Vec::is_empty")]
13437    pub tc: Vec<CTTableCell>,
13438    #[cfg(feature = "dml-extensions")]
13439    #[serde(rename = "extLst")]
13440    #[serde(default, skip_serializing_if = "Option::is_none")]
13441    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
13442    /// Unknown attributes captured for roundtrip fidelity.
13443    #[cfg(feature = "extra-attrs")]
13444    #[serde(skip)]
13445    #[cfg(feature = "extra-attrs")]
13446    #[serde(default)]
13447    #[cfg(feature = "extra-attrs")]
13448    pub extra_attrs: std::collections::HashMap<String, String>,
13449    /// Unknown child elements captured for roundtrip fidelity.
13450    #[cfg(feature = "extra-children")]
13451    #[serde(skip)]
13452    #[cfg(feature = "extra-children")]
13453    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13454}
13455
13456#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13457pub struct CTTableProperties {
13458    #[cfg(feature = "dml-tables")]
13459    #[serde(rename = "@rtl")]
13460    #[serde(
13461        default,
13462        skip_serializing_if = "Option::is_none",
13463        with = "ooxml_xml::ooxml_bool"
13464    )]
13465    pub rtl: Option<bool>,
13466    #[cfg(feature = "dml-tables")]
13467    #[serde(rename = "@firstRow")]
13468    #[serde(
13469        default,
13470        skip_serializing_if = "Option::is_none",
13471        with = "ooxml_xml::ooxml_bool"
13472    )]
13473    pub first_row: Option<bool>,
13474    #[cfg(feature = "dml-tables")]
13475    #[serde(rename = "@firstCol")]
13476    #[serde(
13477        default,
13478        skip_serializing_if = "Option::is_none",
13479        with = "ooxml_xml::ooxml_bool"
13480    )]
13481    pub first_col: Option<bool>,
13482    #[cfg(feature = "dml-tables")]
13483    #[serde(rename = "@lastRow")]
13484    #[serde(
13485        default,
13486        skip_serializing_if = "Option::is_none",
13487        with = "ooxml_xml::ooxml_bool"
13488    )]
13489    pub last_row: Option<bool>,
13490    #[cfg(feature = "dml-tables")]
13491    #[serde(rename = "@lastCol")]
13492    #[serde(
13493        default,
13494        skip_serializing_if = "Option::is_none",
13495        with = "ooxml_xml::ooxml_bool"
13496    )]
13497    pub last_col: Option<bool>,
13498    #[cfg(feature = "dml-tables")]
13499    #[serde(rename = "@bandRow")]
13500    #[serde(
13501        default,
13502        skip_serializing_if = "Option::is_none",
13503        with = "ooxml_xml::ooxml_bool"
13504    )]
13505    pub band_row: Option<bool>,
13506    #[cfg(feature = "dml-tables")]
13507    #[serde(rename = "@bandCol")]
13508    #[serde(
13509        default,
13510        skip_serializing_if = "Option::is_none",
13511        with = "ooxml_xml::ooxml_bool"
13512    )]
13513    pub band_col: Option<bool>,
13514    #[serde(skip)]
13515    #[serde(default)]
13516    pub fill_properties: Option<Box<EGFillProperties>>,
13517    #[serde(skip)]
13518    #[serde(default)]
13519    pub effect_properties: Option<Box<EGEffectProperties>>,
13520    #[serde(rename = "tableStyle")]
13521    #[serde(default, skip_serializing_if = "Option::is_none")]
13522    pub table_style: Option<Box<CTTableStyle>>,
13523    #[cfg(feature = "dml-tables")]
13524    #[serde(rename = "tableStyleId")]
13525    #[serde(default, skip_serializing_if = "Option::is_none")]
13526    pub table_style_id: Option<Guid>,
13527    #[cfg(feature = "dml-extensions")]
13528    #[serde(rename = "extLst")]
13529    #[serde(default, skip_serializing_if = "Option::is_none")]
13530    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
13531    /// Unknown attributes captured for roundtrip fidelity.
13532    #[cfg(feature = "extra-attrs")]
13533    #[serde(skip)]
13534    #[cfg(feature = "extra-attrs")]
13535    #[serde(default)]
13536    #[cfg(feature = "extra-attrs")]
13537    pub extra_attrs: std::collections::HashMap<String, String>,
13538    /// Unknown child elements captured for roundtrip fidelity.
13539    #[cfg(feature = "extra-children")]
13540    #[serde(skip)]
13541    #[cfg(feature = "extra-children")]
13542    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13543}
13544
13545#[derive(Debug, Clone, Serialize, Deserialize)]
13546pub struct CTTable {
13547    #[cfg(feature = "dml-tables")]
13548    #[serde(rename = "tblPr")]
13549    #[serde(default, skip_serializing_if = "Option::is_none")]
13550    pub tbl_pr: Option<Box<CTTableProperties>>,
13551    #[cfg(feature = "dml-tables")]
13552    #[serde(rename = "tblGrid")]
13553    pub tbl_grid: Box<CTTableGrid>,
13554    #[cfg(feature = "dml-tables")]
13555    #[serde(rename = "tr")]
13556    #[serde(default, skip_serializing_if = "Vec::is_empty")]
13557    pub tr: Vec<CTTableRow>,
13558    /// Unknown child elements captured for roundtrip fidelity.
13559    #[cfg(feature = "extra-children")]
13560    #[serde(skip)]
13561    #[cfg(feature = "extra-children")]
13562    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13563}
13564
13565pub type ATbl = Box<CTTable>;
13566
13567#[derive(Debug, Clone, Serialize, Deserialize)]
13568pub struct CTCell3D {
13569    #[serde(rename = "@prstMaterial")]
13570    #[serde(default, skip_serializing_if = "Option::is_none")]
13571    pub prst_material: Option<STPresetMaterialType>,
13572    #[serde(rename = "bevel")]
13573    pub bevel: Box<CTBevel>,
13574    #[serde(rename = "lightRig")]
13575    #[serde(default, skip_serializing_if = "Option::is_none")]
13576    pub light_rig: Option<Box<CTLightRig>>,
13577    #[serde(rename = "extLst")]
13578    #[serde(default, skip_serializing_if = "Option::is_none")]
13579    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
13580    /// Unknown attributes captured for roundtrip fidelity.
13581    #[cfg(feature = "extra-attrs")]
13582    #[serde(skip)]
13583    #[cfg(feature = "extra-attrs")]
13584    #[serde(default)]
13585    #[cfg(feature = "extra-attrs")]
13586    pub extra_attrs: std::collections::HashMap<String, String>,
13587    /// Unknown child elements captured for roundtrip fidelity.
13588    #[cfg(feature = "extra-children")]
13589    #[serde(skip)]
13590    #[cfg(feature = "extra-children")]
13591    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13592}
13593
13594#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13595pub struct CTThemeableLineStyle {
13596    #[serde(rename = "ln")]
13597    #[serde(default, skip_serializing_if = "Option::is_none")]
13598    pub line: Option<Box<LineProperties>>,
13599    #[serde(rename = "lnRef")]
13600    #[serde(default, skip_serializing_if = "Option::is_none")]
13601    pub ln_ref: Option<Box<CTStyleMatrixReference>>,
13602    /// Unknown child elements captured for roundtrip fidelity.
13603    #[cfg(feature = "extra-children")]
13604    #[serde(skip)]
13605    #[cfg(feature = "extra-children")]
13606    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13607}
13608
13609#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13610pub struct CTTableStyleTextStyle {
13611    #[serde(rename = "@b")]
13612    #[serde(default, skip_serializing_if = "Option::is_none")]
13613    pub b: Option<STOnOffStyleType>,
13614    #[serde(rename = "@i")]
13615    #[serde(default, skip_serializing_if = "Option::is_none")]
13616    pub i: Option<STOnOffStyleType>,
13617    #[serde(skip)]
13618    #[serde(default)]
13619    pub themeable_font_styles: Option<Box<EGThemeableFontStyles>>,
13620    #[serde(skip)]
13621    #[serde(default)]
13622    pub color_choice: Option<Box<EGColorChoice>>,
13623    #[serde(rename = "extLst")]
13624    #[serde(default, skip_serializing_if = "Option::is_none")]
13625    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
13626    /// Unknown attributes captured for roundtrip fidelity.
13627    #[cfg(feature = "extra-attrs")]
13628    #[serde(skip)]
13629    #[cfg(feature = "extra-attrs")]
13630    #[serde(default)]
13631    #[cfg(feature = "extra-attrs")]
13632    pub extra_attrs: std::collections::HashMap<String, String>,
13633    /// Unknown child elements captured for roundtrip fidelity.
13634    #[cfg(feature = "extra-children")]
13635    #[serde(skip)]
13636    #[cfg(feature = "extra-children")]
13637    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13638}
13639
13640#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13641pub struct CTTableCellBorderStyle {
13642    #[serde(rename = "left")]
13643    #[serde(default, skip_serializing_if = "Option::is_none")]
13644    pub left: Option<Box<CTThemeableLineStyle>>,
13645    #[serde(rename = "right")]
13646    #[serde(default, skip_serializing_if = "Option::is_none")]
13647    pub right: Option<Box<CTThemeableLineStyle>>,
13648    #[serde(rename = "top")]
13649    #[serde(default, skip_serializing_if = "Option::is_none")]
13650    pub top: Option<Box<CTThemeableLineStyle>>,
13651    #[serde(rename = "bottom")]
13652    #[serde(default, skip_serializing_if = "Option::is_none")]
13653    pub bottom: Option<Box<CTThemeableLineStyle>>,
13654    #[serde(rename = "insideH")]
13655    #[serde(default, skip_serializing_if = "Option::is_none")]
13656    pub inside_h: Option<Box<CTThemeableLineStyle>>,
13657    #[serde(rename = "insideV")]
13658    #[serde(default, skip_serializing_if = "Option::is_none")]
13659    pub inside_v: Option<Box<CTThemeableLineStyle>>,
13660    #[serde(rename = "tl2br")]
13661    #[serde(default, skip_serializing_if = "Option::is_none")]
13662    pub tl2br: Option<Box<CTThemeableLineStyle>>,
13663    #[serde(rename = "tr2bl")]
13664    #[serde(default, skip_serializing_if = "Option::is_none")]
13665    pub tr2bl: Option<Box<CTThemeableLineStyle>>,
13666    #[serde(rename = "extLst")]
13667    #[serde(default, skip_serializing_if = "Option::is_none")]
13668    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
13669    /// Unknown child elements captured for roundtrip fidelity.
13670    #[cfg(feature = "extra-children")]
13671    #[serde(skip)]
13672    #[cfg(feature = "extra-children")]
13673    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13674}
13675
13676#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13677pub struct CTTableBackgroundStyle {
13678    #[serde(skip)]
13679    #[serde(default)]
13680    pub themeable_fill_style: Option<Box<EGThemeableFillStyle>>,
13681    #[serde(skip)]
13682    #[serde(default)]
13683    pub themeable_effect_style: Option<Box<EGThemeableEffectStyle>>,
13684    /// Unknown child elements captured for roundtrip fidelity.
13685    #[cfg(feature = "extra-children")]
13686    #[serde(skip)]
13687    #[cfg(feature = "extra-children")]
13688    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13689}
13690
13691#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13692pub struct CTTableStyleCellStyle {
13693    #[serde(rename = "tcBdr")]
13694    #[serde(default, skip_serializing_if = "Option::is_none")]
13695    pub tc_bdr: Option<Box<CTTableCellBorderStyle>>,
13696    #[serde(skip)]
13697    #[serde(default)]
13698    pub themeable_fill_style: Option<Box<EGThemeableFillStyle>>,
13699    #[serde(rename = "cell3D")]
13700    #[serde(default, skip_serializing_if = "Option::is_none")]
13701    pub cell3_d: Option<Box<CTCell3D>>,
13702    /// Unknown child elements captured for roundtrip fidelity.
13703    #[cfg(feature = "extra-children")]
13704    #[serde(skip)]
13705    #[cfg(feature = "extra-children")]
13706    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13707}
13708
13709#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13710pub struct CTTablePartStyle {
13711    #[serde(rename = "tcTxStyle")]
13712    #[serde(default, skip_serializing_if = "Option::is_none")]
13713    pub tc_tx_style: Option<Box<CTTableStyleTextStyle>>,
13714    #[serde(rename = "tcStyle")]
13715    #[serde(default, skip_serializing_if = "Option::is_none")]
13716    pub tc_style: Option<Box<CTTableStyleCellStyle>>,
13717    /// Unknown child elements captured for roundtrip fidelity.
13718    #[cfg(feature = "extra-children")]
13719    #[serde(skip)]
13720    #[cfg(feature = "extra-children")]
13721    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13722}
13723
13724#[derive(Debug, Clone, Serialize, Deserialize)]
13725pub struct CTTableStyle {
13726    #[serde(rename = "@styleId")]
13727    pub style_id: Guid,
13728    #[serde(rename = "@styleName")]
13729    pub style_name: String,
13730    #[serde(rename = "tblBg")]
13731    #[serde(default, skip_serializing_if = "Option::is_none")]
13732    pub tbl_bg: Option<Box<CTTableBackgroundStyle>>,
13733    #[serde(rename = "wholeTbl")]
13734    #[serde(default, skip_serializing_if = "Option::is_none")]
13735    pub whole_tbl: Option<Box<CTTablePartStyle>>,
13736    #[serde(rename = "band1H")]
13737    #[serde(default, skip_serializing_if = "Option::is_none")]
13738    pub band1_h: Option<Box<CTTablePartStyle>>,
13739    #[serde(rename = "band2H")]
13740    #[serde(default, skip_serializing_if = "Option::is_none")]
13741    pub band2_h: Option<Box<CTTablePartStyle>>,
13742    #[serde(rename = "band1V")]
13743    #[serde(default, skip_serializing_if = "Option::is_none")]
13744    pub band1_v: Option<Box<CTTablePartStyle>>,
13745    #[serde(rename = "band2V")]
13746    #[serde(default, skip_serializing_if = "Option::is_none")]
13747    pub band2_v: Option<Box<CTTablePartStyle>>,
13748    #[serde(rename = "lastCol")]
13749    #[serde(default, skip_serializing_if = "Option::is_none")]
13750    pub last_col: Option<Box<CTTablePartStyle>>,
13751    #[serde(rename = "firstCol")]
13752    #[serde(default, skip_serializing_if = "Option::is_none")]
13753    pub first_col: Option<Box<CTTablePartStyle>>,
13754    #[serde(rename = "lastRow")]
13755    #[serde(default, skip_serializing_if = "Option::is_none")]
13756    pub last_row: Option<Box<CTTablePartStyle>>,
13757    #[serde(rename = "seCell")]
13758    #[serde(default, skip_serializing_if = "Option::is_none")]
13759    pub se_cell: Option<Box<CTTablePartStyle>>,
13760    #[serde(rename = "swCell")]
13761    #[serde(default, skip_serializing_if = "Option::is_none")]
13762    pub sw_cell: Option<Box<CTTablePartStyle>>,
13763    #[serde(rename = "firstRow")]
13764    #[serde(default, skip_serializing_if = "Option::is_none")]
13765    pub first_row: Option<Box<CTTablePartStyle>>,
13766    #[serde(rename = "neCell")]
13767    #[serde(default, skip_serializing_if = "Option::is_none")]
13768    pub ne_cell: Option<Box<CTTablePartStyle>>,
13769    #[serde(rename = "nwCell")]
13770    #[serde(default, skip_serializing_if = "Option::is_none")]
13771    pub nw_cell: Option<Box<CTTablePartStyle>>,
13772    #[serde(rename = "extLst")]
13773    #[serde(default, skip_serializing_if = "Option::is_none")]
13774    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
13775    /// Unknown attributes captured for roundtrip fidelity.
13776    #[cfg(feature = "extra-attrs")]
13777    #[serde(skip)]
13778    #[cfg(feature = "extra-attrs")]
13779    #[serde(default)]
13780    #[cfg(feature = "extra-attrs")]
13781    pub extra_attrs: std::collections::HashMap<String, String>,
13782    /// Unknown child elements captured for roundtrip fidelity.
13783    #[cfg(feature = "extra-children")]
13784    #[serde(skip)]
13785    #[cfg(feature = "extra-children")]
13786    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13787}
13788
13789#[derive(Debug, Clone, Serialize, Deserialize)]
13790pub struct CTTableStyleList {
13791    #[serde(rename = "@def")]
13792    pub def: Guid,
13793    #[serde(rename = "tblStyle")]
13794    #[serde(default, skip_serializing_if = "Vec::is_empty")]
13795    pub tbl_style: Vec<CTTableStyle>,
13796    /// Unknown attributes captured for roundtrip fidelity.
13797    #[cfg(feature = "extra-attrs")]
13798    #[serde(skip)]
13799    #[cfg(feature = "extra-attrs")]
13800    #[serde(default)]
13801    #[cfg(feature = "extra-attrs")]
13802    pub extra_attrs: std::collections::HashMap<String, String>,
13803    /// Unknown child elements captured for roundtrip fidelity.
13804    #[cfg(feature = "extra-children")]
13805    #[serde(skip)]
13806    #[cfg(feature = "extra-children")]
13807    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13808}
13809
13810pub type ATblStyleLst = Box<CTTableStyleList>;
13811
13812#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13813pub struct TextParagraph {
13814    #[cfg(feature = "dml-text")]
13815    #[serde(rename = "pPr")]
13816    #[serde(default, skip_serializing_if = "Option::is_none")]
13817    pub p_pr: Option<Box<TextParagraphProperties>>,
13818    #[serde(skip)]
13819    #[serde(default)]
13820    pub text_run: Vec<EGTextRun>,
13821    #[cfg(feature = "dml-text")]
13822    #[serde(rename = "endParaRPr")]
13823    #[serde(default, skip_serializing_if = "Option::is_none")]
13824    pub end_para_r_pr: Option<Box<TextCharacterProperties>>,
13825    /// Unknown child elements captured for roundtrip fidelity.
13826    #[cfg(feature = "extra-children")]
13827    #[serde(skip)]
13828    #[cfg(feature = "extra-children")]
13829    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13830}
13831
13832#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13833pub struct CTTextListStyle {
13834    #[serde(rename = "defPPr")]
13835    #[serde(default, skip_serializing_if = "Option::is_none")]
13836    pub def_p_pr: Option<Box<TextParagraphProperties>>,
13837    #[serde(rename = "lvl1pPr")]
13838    #[serde(default, skip_serializing_if = "Option::is_none")]
13839    pub lvl1p_pr: Option<Box<TextParagraphProperties>>,
13840    #[serde(rename = "lvl2pPr")]
13841    #[serde(default, skip_serializing_if = "Option::is_none")]
13842    pub lvl2p_pr: Option<Box<TextParagraphProperties>>,
13843    #[serde(rename = "lvl3pPr")]
13844    #[serde(default, skip_serializing_if = "Option::is_none")]
13845    pub lvl3p_pr: Option<Box<TextParagraphProperties>>,
13846    #[serde(rename = "lvl4pPr")]
13847    #[serde(default, skip_serializing_if = "Option::is_none")]
13848    pub lvl4p_pr: Option<Box<TextParagraphProperties>>,
13849    #[serde(rename = "lvl5pPr")]
13850    #[serde(default, skip_serializing_if = "Option::is_none")]
13851    pub lvl5p_pr: Option<Box<TextParagraphProperties>>,
13852    #[serde(rename = "lvl6pPr")]
13853    #[serde(default, skip_serializing_if = "Option::is_none")]
13854    pub lvl6p_pr: Option<Box<TextParagraphProperties>>,
13855    #[serde(rename = "lvl7pPr")]
13856    #[serde(default, skip_serializing_if = "Option::is_none")]
13857    pub lvl7p_pr: Option<Box<TextParagraphProperties>>,
13858    #[serde(rename = "lvl8pPr")]
13859    #[serde(default, skip_serializing_if = "Option::is_none")]
13860    pub lvl8p_pr: Option<Box<TextParagraphProperties>>,
13861    #[serde(rename = "lvl9pPr")]
13862    #[serde(default, skip_serializing_if = "Option::is_none")]
13863    pub lvl9p_pr: Option<Box<TextParagraphProperties>>,
13864    #[serde(rename = "extLst")]
13865    #[serde(default, skip_serializing_if = "Option::is_none")]
13866    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
13867    /// Unknown child elements captured for roundtrip fidelity.
13868    #[cfg(feature = "extra-children")]
13869    #[serde(skip)]
13870    #[cfg(feature = "extra-children")]
13871    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13872}
13873
13874#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13875pub struct CTTextNormalAutofit {
13876    #[serde(rename = "@fontScale")]
13877    #[serde(default, skip_serializing_if = "Option::is_none")]
13878    pub font_scale: Option<STTextFontScalePercentOrPercentString>,
13879    #[serde(rename = "@lnSpcReduction")]
13880    #[serde(default, skip_serializing_if = "Option::is_none")]
13881    pub ln_spc_reduction: Option<STTextSpacingPercentOrPercentString>,
13882    /// Unknown attributes captured for roundtrip fidelity.
13883    #[cfg(feature = "extra-attrs")]
13884    #[serde(skip)]
13885    #[cfg(feature = "extra-attrs")]
13886    #[serde(default)]
13887    #[cfg(feature = "extra-attrs")]
13888    pub extra_attrs: std::collections::HashMap<String, String>,
13889}
13890
13891#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13892pub struct CTTextShapeAutofit;
13893
13894#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13895pub struct CTTextNoAutofit;
13896
13897#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13898pub struct CTTextBodyProperties {
13899    #[cfg(feature = "dml-text")]
13900    #[serde(rename = "@rot")]
13901    #[serde(default, skip_serializing_if = "Option::is_none")]
13902    pub rot: Option<STAngle>,
13903    #[cfg(feature = "dml-text")]
13904    #[serde(rename = "@spcFirstLastPara")]
13905    #[serde(
13906        default,
13907        skip_serializing_if = "Option::is_none",
13908        with = "ooxml_xml::ooxml_bool"
13909    )]
13910    pub spc_first_last_para: Option<bool>,
13911    #[cfg(feature = "dml-text")]
13912    #[serde(rename = "@vertOverflow")]
13913    #[serde(default, skip_serializing_if = "Option::is_none")]
13914    pub vert_overflow: Option<STTextVertOverflowType>,
13915    #[cfg(feature = "dml-text")]
13916    #[serde(rename = "@horzOverflow")]
13917    #[serde(default, skip_serializing_if = "Option::is_none")]
13918    pub horz_overflow: Option<STTextHorzOverflowType>,
13919    #[cfg(feature = "dml-text")]
13920    #[serde(rename = "@vert")]
13921    #[serde(default, skip_serializing_if = "Option::is_none")]
13922    pub vert: Option<STTextVerticalType>,
13923    #[cfg(feature = "dml-text")]
13924    #[serde(rename = "@wrap")]
13925    #[serde(default, skip_serializing_if = "Option::is_none")]
13926    pub wrap: Option<STTextWrappingType>,
13927    #[cfg(feature = "dml-text")]
13928    #[serde(rename = "@lIns")]
13929    #[serde(default, skip_serializing_if = "Option::is_none")]
13930    pub l_ins: Option<STCoordinate32>,
13931    #[cfg(feature = "dml-text")]
13932    #[serde(rename = "@tIns")]
13933    #[serde(default, skip_serializing_if = "Option::is_none")]
13934    pub t_ins: Option<STCoordinate32>,
13935    #[cfg(feature = "dml-text")]
13936    #[serde(rename = "@rIns")]
13937    #[serde(default, skip_serializing_if = "Option::is_none")]
13938    pub r_ins: Option<STCoordinate32>,
13939    #[cfg(feature = "dml-text")]
13940    #[serde(rename = "@bIns")]
13941    #[serde(default, skip_serializing_if = "Option::is_none")]
13942    pub b_ins: Option<STCoordinate32>,
13943    #[cfg(feature = "dml-text")]
13944    #[serde(rename = "@numCol")]
13945    #[serde(default, skip_serializing_if = "Option::is_none")]
13946    pub num_col: Option<STTextColumnCount>,
13947    #[cfg(feature = "dml-text")]
13948    #[serde(rename = "@spcCol")]
13949    #[serde(default, skip_serializing_if = "Option::is_none")]
13950    pub spc_col: Option<STPositiveCoordinate32>,
13951    #[cfg(feature = "dml-text")]
13952    #[serde(rename = "@rtlCol")]
13953    #[serde(
13954        default,
13955        skip_serializing_if = "Option::is_none",
13956        with = "ooxml_xml::ooxml_bool"
13957    )]
13958    pub rtl_col: Option<bool>,
13959    #[cfg(feature = "dml-text")]
13960    #[serde(rename = "@fromWordArt")]
13961    #[serde(
13962        default,
13963        skip_serializing_if = "Option::is_none",
13964        with = "ooxml_xml::ooxml_bool"
13965    )]
13966    pub from_word_art: Option<bool>,
13967    #[cfg(feature = "dml-text")]
13968    #[serde(rename = "@anchor")]
13969    #[serde(default, skip_serializing_if = "Option::is_none")]
13970    pub anchor: Option<STTextAnchoringType>,
13971    #[cfg(feature = "dml-text")]
13972    #[serde(rename = "@anchorCtr")]
13973    #[serde(
13974        default,
13975        skip_serializing_if = "Option::is_none",
13976        with = "ooxml_xml::ooxml_bool"
13977    )]
13978    pub anchor_ctr: Option<bool>,
13979    #[cfg(feature = "dml-text")]
13980    #[serde(rename = "@forceAA")]
13981    #[serde(
13982        default,
13983        skip_serializing_if = "Option::is_none",
13984        with = "ooxml_xml::ooxml_bool"
13985    )]
13986    pub force_a_a: Option<bool>,
13987    #[cfg(feature = "dml-text")]
13988    #[serde(rename = "@upright")]
13989    #[serde(
13990        default,
13991        skip_serializing_if = "Option::is_none",
13992        with = "ooxml_xml::ooxml_bool"
13993    )]
13994    pub upright: Option<bool>,
13995    #[cfg(feature = "dml-text")]
13996    #[serde(rename = "@compatLnSpc")]
13997    #[serde(
13998        default,
13999        skip_serializing_if = "Option::is_none",
14000        with = "ooxml_xml::ooxml_bool"
14001    )]
14002    pub compat_ln_spc: Option<bool>,
14003    #[cfg(feature = "dml-text")]
14004    #[serde(rename = "prstTxWarp")]
14005    #[serde(default, skip_serializing_if = "Option::is_none")]
14006    pub prst_tx_warp: Option<Box<CTPresetTextShape>>,
14007    #[serde(skip)]
14008    #[serde(default)]
14009    pub text_autofit: Option<Box<EGTextAutofit>>,
14010    #[cfg(feature = "dml-3d")]
14011    #[serde(rename = "scene3d")]
14012    #[serde(default, skip_serializing_if = "Option::is_none")]
14013    pub scene3d: Option<Box<CTScene3D>>,
14014    #[serde(skip)]
14015    #[serde(default)]
14016    pub text3_d: Option<Box<EGText3D>>,
14017    #[cfg(feature = "dml-extensions")]
14018    #[serde(rename = "extLst")]
14019    #[serde(default, skip_serializing_if = "Option::is_none")]
14020    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
14021    /// Unknown attributes captured for roundtrip fidelity.
14022    #[cfg(feature = "extra-attrs")]
14023    #[serde(skip)]
14024    #[cfg(feature = "extra-attrs")]
14025    #[serde(default)]
14026    #[cfg(feature = "extra-attrs")]
14027    pub extra_attrs: std::collections::HashMap<String, String>,
14028    /// Unknown child elements captured for roundtrip fidelity.
14029    #[cfg(feature = "extra-children")]
14030    #[serde(skip)]
14031    #[cfg(feature = "extra-children")]
14032    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14033}
14034
14035#[derive(Debug, Clone, Serialize, Deserialize)]
14036pub struct TextBody {
14037    #[cfg(feature = "dml-text")]
14038    #[serde(rename = "bodyPr")]
14039    pub body_pr: Box<CTTextBodyProperties>,
14040    #[cfg(feature = "dml-text")]
14041    #[serde(rename = "lstStyle")]
14042    #[serde(default, skip_serializing_if = "Option::is_none")]
14043    pub lst_style: Option<Box<CTTextListStyle>>,
14044    #[cfg(feature = "dml-text")]
14045    #[serde(rename = "p")]
14046    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14047    pub p: Vec<TextParagraph>,
14048    /// Unknown child elements captured for roundtrip fidelity.
14049    #[cfg(feature = "extra-children")]
14050    #[serde(skip)]
14051    #[cfg(feature = "extra-children")]
14052    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14053}
14054
14055#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14056pub struct CTTextBulletColorFollowText;
14057
14058#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14059pub struct CTTextBulletSizeFollowText;
14060
14061#[derive(Debug, Clone, Serialize, Deserialize)]
14062pub struct TextBulletSizePercentElement {
14063    #[serde(rename = "@val")]
14064    pub value: STTextBulletSizePercent,
14065    /// Unknown attributes captured for roundtrip fidelity.
14066    #[cfg(feature = "extra-attrs")]
14067    #[serde(skip)]
14068    #[cfg(feature = "extra-attrs")]
14069    #[serde(default)]
14070    #[cfg(feature = "extra-attrs")]
14071    pub extra_attrs: std::collections::HashMap<String, String>,
14072}
14073
14074#[derive(Debug, Clone, Serialize, Deserialize)]
14075pub struct CTTextBulletSizePoint {
14076    #[serde(rename = "@val")]
14077    pub value: STTextFontSize,
14078    /// Unknown attributes captured for roundtrip fidelity.
14079    #[cfg(feature = "extra-attrs")]
14080    #[serde(skip)]
14081    #[cfg(feature = "extra-attrs")]
14082    #[serde(default)]
14083    #[cfg(feature = "extra-attrs")]
14084    pub extra_attrs: std::collections::HashMap<String, String>,
14085}
14086
14087#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14088pub struct CTTextBulletTypefaceFollowText;
14089
14090#[derive(Debug, Clone, Serialize, Deserialize)]
14091pub struct CTTextAutonumberBullet {
14092    #[serde(rename = "@type")]
14093    pub r#type: STTextAutonumberScheme,
14094    #[serde(rename = "@startAt")]
14095    #[serde(default, skip_serializing_if = "Option::is_none")]
14096    pub start_at: Option<STTextBulletStartAtNum>,
14097    /// Unknown attributes captured for roundtrip fidelity.
14098    #[cfg(feature = "extra-attrs")]
14099    #[serde(skip)]
14100    #[cfg(feature = "extra-attrs")]
14101    #[serde(default)]
14102    #[cfg(feature = "extra-attrs")]
14103    pub extra_attrs: std::collections::HashMap<String, String>,
14104}
14105
14106#[derive(Debug, Clone, Serialize, Deserialize)]
14107pub struct CTTextCharBullet {
14108    #[serde(rename = "@char")]
14109    pub char: String,
14110    /// Unknown attributes captured for roundtrip fidelity.
14111    #[cfg(feature = "extra-attrs")]
14112    #[serde(skip)]
14113    #[cfg(feature = "extra-attrs")]
14114    #[serde(default)]
14115    #[cfg(feature = "extra-attrs")]
14116    pub extra_attrs: std::collections::HashMap<String, String>,
14117}
14118
14119pub type TextBlipBulletElement = Box<Blip>;
14120
14121#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14122pub struct CTTextNoBullet;
14123
14124#[derive(Debug, Clone, Serialize, Deserialize)]
14125pub struct TextFont {
14126    #[cfg(feature = "dml-text")]
14127    #[serde(rename = "@typeface")]
14128    pub typeface: STTextTypeface,
14129    #[cfg(feature = "dml-text")]
14130    #[serde(rename = "@panose")]
14131    #[serde(default, skip_serializing_if = "Option::is_none")]
14132    pub panose: Option<Panose>,
14133    #[cfg(feature = "dml-text")]
14134    #[serde(rename = "@pitchFamily")]
14135    #[serde(default, skip_serializing_if = "Option::is_none")]
14136    pub pitch_family: Option<STPitchFamily>,
14137    #[cfg(feature = "dml-text")]
14138    #[serde(rename = "@charset")]
14139    #[serde(default, skip_serializing_if = "Option::is_none")]
14140    pub charset: Option<i8>,
14141    /// Unknown attributes captured for roundtrip fidelity.
14142    #[cfg(feature = "extra-attrs")]
14143    #[serde(skip)]
14144    #[cfg(feature = "extra-attrs")]
14145    #[serde(default)]
14146    #[cfg(feature = "extra-attrs")]
14147    pub extra_attrs: std::collections::HashMap<String, String>,
14148}
14149
14150#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14151pub struct CTTextUnderlineLineFollowText;
14152
14153#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14154pub struct CTTextUnderlineFillFollowText;
14155
14156#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14157pub struct CTTextUnderlineFillGroupWrapper {
14158    #[serde(skip)]
14159    #[serde(default)]
14160    pub fill_properties: Option<Box<EGFillProperties>>,
14161    /// Unknown child elements captured for roundtrip fidelity.
14162    #[cfg(feature = "extra-children")]
14163    #[serde(skip)]
14164    #[cfg(feature = "extra-children")]
14165    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14166}
14167
14168#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14169pub struct TextCharacterProperties {
14170    #[cfg(feature = "dml-text")]
14171    #[serde(rename = "@kumimoji")]
14172    #[serde(
14173        default,
14174        skip_serializing_if = "Option::is_none",
14175        with = "ooxml_xml::ooxml_bool"
14176    )]
14177    pub kumimoji: Option<bool>,
14178    #[cfg(feature = "dml-text")]
14179    #[serde(rename = "@lang")]
14180    #[serde(default, skip_serializing_if = "Option::is_none")]
14181    pub lang: Option<Language>,
14182    #[cfg(feature = "dml-text")]
14183    #[serde(rename = "@altLang")]
14184    #[serde(default, skip_serializing_if = "Option::is_none")]
14185    pub alt_lang: Option<Language>,
14186    #[cfg(feature = "dml-text")]
14187    #[serde(rename = "@sz")]
14188    #[serde(default, skip_serializing_if = "Option::is_none")]
14189    pub sz: Option<STTextFontSize>,
14190    #[cfg(feature = "dml-text")]
14191    #[serde(rename = "@b")]
14192    #[serde(
14193        default,
14194        skip_serializing_if = "Option::is_none",
14195        with = "ooxml_xml::ooxml_bool"
14196    )]
14197    pub b: Option<bool>,
14198    #[cfg(feature = "dml-text")]
14199    #[serde(rename = "@i")]
14200    #[serde(
14201        default,
14202        skip_serializing_if = "Option::is_none",
14203        with = "ooxml_xml::ooxml_bool"
14204    )]
14205    pub i: Option<bool>,
14206    #[cfg(feature = "dml-text")]
14207    #[serde(rename = "@u")]
14208    #[serde(default, skip_serializing_if = "Option::is_none")]
14209    pub u: Option<STTextUnderlineType>,
14210    #[cfg(feature = "dml-text")]
14211    #[serde(rename = "@strike")]
14212    #[serde(default, skip_serializing_if = "Option::is_none")]
14213    pub strike: Option<STTextStrikeType>,
14214    #[cfg(feature = "dml-text")]
14215    #[serde(rename = "@kern")]
14216    #[serde(default, skip_serializing_if = "Option::is_none")]
14217    pub kern: Option<STTextNonNegativePoint>,
14218    #[cfg(feature = "dml-text")]
14219    #[serde(rename = "@cap")]
14220    #[serde(default, skip_serializing_if = "Option::is_none")]
14221    pub cap: Option<STTextCapsType>,
14222    #[cfg(feature = "dml-text")]
14223    #[serde(rename = "@spc")]
14224    #[serde(default, skip_serializing_if = "Option::is_none")]
14225    pub spc: Option<STTextPoint>,
14226    #[cfg(feature = "dml-text")]
14227    #[serde(rename = "@normalizeH")]
14228    #[serde(
14229        default,
14230        skip_serializing_if = "Option::is_none",
14231        with = "ooxml_xml::ooxml_bool"
14232    )]
14233    pub normalize_h: Option<bool>,
14234    #[cfg(feature = "dml-text")]
14235    #[serde(rename = "@baseline")]
14236    #[serde(default, skip_serializing_if = "Option::is_none")]
14237    pub baseline: Option<STPercentage>,
14238    #[cfg(feature = "dml-text")]
14239    #[serde(rename = "@noProof")]
14240    #[serde(
14241        default,
14242        skip_serializing_if = "Option::is_none",
14243        with = "ooxml_xml::ooxml_bool"
14244    )]
14245    pub no_proof: Option<bool>,
14246    #[cfg(feature = "dml-text")]
14247    #[serde(rename = "@dirty")]
14248    #[serde(
14249        default,
14250        skip_serializing_if = "Option::is_none",
14251        with = "ooxml_xml::ooxml_bool"
14252    )]
14253    pub dirty: Option<bool>,
14254    #[cfg(feature = "dml-text")]
14255    #[serde(rename = "@err")]
14256    #[serde(
14257        default,
14258        skip_serializing_if = "Option::is_none",
14259        with = "ooxml_xml::ooxml_bool"
14260    )]
14261    pub err: Option<bool>,
14262    #[cfg(feature = "dml-text")]
14263    #[serde(rename = "@smtClean")]
14264    #[serde(
14265        default,
14266        skip_serializing_if = "Option::is_none",
14267        with = "ooxml_xml::ooxml_bool"
14268    )]
14269    pub smt_clean: Option<bool>,
14270    #[cfg(feature = "dml-text")]
14271    #[serde(rename = "@smtId")]
14272    #[serde(default, skip_serializing_if = "Option::is_none")]
14273    pub smt_id: Option<u32>,
14274    #[cfg(feature = "dml-text")]
14275    #[serde(rename = "@bmk")]
14276    #[serde(default, skip_serializing_if = "Option::is_none")]
14277    pub bmk: Option<String>,
14278    #[cfg(feature = "dml-text")]
14279    #[serde(rename = "ln")]
14280    #[serde(default, skip_serializing_if = "Option::is_none")]
14281    pub line: Option<Box<LineProperties>>,
14282    #[serde(skip)]
14283    #[serde(default)]
14284    pub fill_properties: Option<Box<EGFillProperties>>,
14285    #[serde(skip)]
14286    #[serde(default)]
14287    pub effect_properties: Option<Box<EGEffectProperties>>,
14288    #[cfg(feature = "dml-text")]
14289    #[serde(rename = "highlight")]
14290    #[serde(default, skip_serializing_if = "Option::is_none")]
14291    pub highlight: Option<Box<CTColor>>,
14292    #[serde(skip)]
14293    #[serde(default)]
14294    pub text_underline_line: Option<Box<EGTextUnderlineLine>>,
14295    #[serde(skip)]
14296    #[serde(default)]
14297    pub text_underline_fill: Option<Box<EGTextUnderlineFill>>,
14298    #[cfg(feature = "dml-text")]
14299    #[serde(rename = "latin")]
14300    #[serde(default, skip_serializing_if = "Option::is_none")]
14301    pub latin: Option<Box<TextFont>>,
14302    #[cfg(feature = "dml-text")]
14303    #[serde(rename = "ea")]
14304    #[serde(default, skip_serializing_if = "Option::is_none")]
14305    pub ea: Option<Box<TextFont>>,
14306    #[cfg(feature = "dml-text")]
14307    #[serde(rename = "cs")]
14308    #[serde(default, skip_serializing_if = "Option::is_none")]
14309    pub cs: Option<Box<TextFont>>,
14310    #[cfg(feature = "dml-text")]
14311    #[serde(rename = "sym")]
14312    #[serde(default, skip_serializing_if = "Option::is_none")]
14313    pub sym: Option<Box<TextFont>>,
14314    #[cfg(feature = "dml-text")]
14315    #[serde(rename = "hlinkClick")]
14316    #[serde(default, skip_serializing_if = "Option::is_none")]
14317    pub hlink_click: Option<Box<CTHyperlink>>,
14318    #[cfg(feature = "dml-text")]
14319    #[serde(rename = "hlinkMouseOver")]
14320    #[serde(default, skip_serializing_if = "Option::is_none")]
14321    pub hlink_mouse_over: Option<Box<CTHyperlink>>,
14322    #[cfg(feature = "dml-text")]
14323    #[serde(rename = "rtl")]
14324    #[serde(default, skip_serializing_if = "Option::is_none")]
14325    pub rtl: Option<Box<CTBoolean>>,
14326    #[cfg(feature = "dml-extensions")]
14327    #[serde(rename = "extLst")]
14328    #[serde(default, skip_serializing_if = "Option::is_none")]
14329    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
14330    /// Unknown attributes captured for roundtrip fidelity.
14331    #[cfg(feature = "extra-attrs")]
14332    #[serde(skip)]
14333    #[cfg(feature = "extra-attrs")]
14334    #[serde(default)]
14335    #[cfg(feature = "extra-attrs")]
14336    pub extra_attrs: std::collections::HashMap<String, String>,
14337    /// Unknown child elements captured for roundtrip fidelity.
14338    #[cfg(feature = "extra-children")]
14339    #[serde(skip)]
14340    #[cfg(feature = "extra-children")]
14341    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14342}
14343
14344#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14345pub struct CTBoolean {
14346    #[serde(rename = "@val")]
14347    #[serde(default, skip_serializing_if = "Option::is_none")]
14348    pub value: Option<OnOff>,
14349    /// Unknown attributes captured for roundtrip fidelity.
14350    #[cfg(feature = "extra-attrs")]
14351    #[serde(skip)]
14352    #[cfg(feature = "extra-attrs")]
14353    #[serde(default)]
14354    #[cfg(feature = "extra-attrs")]
14355    pub extra_attrs: std::collections::HashMap<String, String>,
14356}
14357
14358#[derive(Debug, Clone, Serialize, Deserialize)]
14359pub struct CTTextSpacingPercent {
14360    #[serde(rename = "@val")]
14361    pub value: STTextSpacingPercentOrPercentString,
14362    /// Unknown attributes captured for roundtrip fidelity.
14363    #[cfg(feature = "extra-attrs")]
14364    #[serde(skip)]
14365    #[cfg(feature = "extra-attrs")]
14366    #[serde(default)]
14367    #[cfg(feature = "extra-attrs")]
14368    pub extra_attrs: std::collections::HashMap<String, String>,
14369}
14370
14371#[derive(Debug, Clone, Serialize, Deserialize)]
14372pub struct CTTextSpacingPoint {
14373    #[serde(rename = "@val")]
14374    pub value: STTextSpacingPoint,
14375    /// Unknown attributes captured for roundtrip fidelity.
14376    #[cfg(feature = "extra-attrs")]
14377    #[serde(skip)]
14378    #[cfg(feature = "extra-attrs")]
14379    #[serde(default)]
14380    #[cfg(feature = "extra-attrs")]
14381    pub extra_attrs: std::collections::HashMap<String, String>,
14382}
14383
14384#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14385pub struct CTTextTabStop {
14386    #[serde(rename = "@pos")]
14387    #[serde(default, skip_serializing_if = "Option::is_none")]
14388    pub pos: Option<STCoordinate32>,
14389    #[serde(rename = "@algn")]
14390    #[serde(default, skip_serializing_if = "Option::is_none")]
14391    pub algn: Option<STTextTabAlignType>,
14392    /// Unknown attributes captured for roundtrip fidelity.
14393    #[cfg(feature = "extra-attrs")]
14394    #[serde(skip)]
14395    #[cfg(feature = "extra-attrs")]
14396    #[serde(default)]
14397    #[cfg(feature = "extra-attrs")]
14398    pub extra_attrs: std::collections::HashMap<String, String>,
14399}
14400
14401#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14402pub struct CTTextTabStopList {
14403    #[serde(rename = "tab")]
14404    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14405    pub tab: Vec<CTTextTabStop>,
14406    /// Unknown child elements captured for roundtrip fidelity.
14407    #[cfg(feature = "extra-children")]
14408    #[serde(skip)]
14409    #[cfg(feature = "extra-children")]
14410    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14411}
14412
14413#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14414pub struct CTTextLineBreak {
14415    #[serde(rename = "rPr")]
14416    #[serde(default, skip_serializing_if = "Option::is_none")]
14417    pub r_pr: Option<Box<TextCharacterProperties>>,
14418    /// Unknown child elements captured for roundtrip fidelity.
14419    #[cfg(feature = "extra-children")]
14420    #[serde(skip)]
14421    #[cfg(feature = "extra-children")]
14422    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14423}
14424
14425#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14426pub struct CTTextSpacing {
14427    #[serde(rename = "spcPct")]
14428    #[serde(default, skip_serializing_if = "Option::is_none")]
14429    pub spc_pct: Option<Box<CTTextSpacingPercent>>,
14430    #[serde(rename = "spcPts")]
14431    #[serde(default, skip_serializing_if = "Option::is_none")]
14432    pub spc_pts: Option<Box<CTTextSpacingPoint>>,
14433    /// Unknown child elements captured for roundtrip fidelity.
14434    #[cfg(feature = "extra-children")]
14435    #[serde(skip)]
14436    #[cfg(feature = "extra-children")]
14437    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14438}
14439
14440#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14441pub struct TextParagraphProperties {
14442    #[cfg(feature = "dml-text")]
14443    #[serde(rename = "@marL")]
14444    #[serde(default, skip_serializing_if = "Option::is_none")]
14445    pub mar_l: Option<STTextMargin>,
14446    #[cfg(feature = "dml-text")]
14447    #[serde(rename = "@marR")]
14448    #[serde(default, skip_serializing_if = "Option::is_none")]
14449    pub mar_r: Option<STTextMargin>,
14450    #[cfg(feature = "dml-text")]
14451    #[serde(rename = "@lvl")]
14452    #[serde(default, skip_serializing_if = "Option::is_none")]
14453    pub lvl: Option<STTextIndentLevelType>,
14454    #[cfg(feature = "dml-text")]
14455    #[serde(rename = "@indent")]
14456    #[serde(default, skip_serializing_if = "Option::is_none")]
14457    pub indent: Option<STTextIndent>,
14458    #[cfg(feature = "dml-text")]
14459    #[serde(rename = "@algn")]
14460    #[serde(default, skip_serializing_if = "Option::is_none")]
14461    pub algn: Option<STTextAlignType>,
14462    #[cfg(feature = "dml-text")]
14463    #[serde(rename = "@defTabSz")]
14464    #[serde(default, skip_serializing_if = "Option::is_none")]
14465    pub def_tab_sz: Option<STCoordinate32>,
14466    #[cfg(feature = "dml-text")]
14467    #[serde(rename = "@rtl")]
14468    #[serde(
14469        default,
14470        skip_serializing_if = "Option::is_none",
14471        with = "ooxml_xml::ooxml_bool"
14472    )]
14473    pub rtl: Option<bool>,
14474    #[cfg(feature = "dml-text")]
14475    #[serde(rename = "@eaLnBrk")]
14476    #[serde(
14477        default,
14478        skip_serializing_if = "Option::is_none",
14479        with = "ooxml_xml::ooxml_bool"
14480    )]
14481    pub ea_ln_brk: Option<bool>,
14482    #[cfg(feature = "dml-text")]
14483    #[serde(rename = "@fontAlgn")]
14484    #[serde(default, skip_serializing_if = "Option::is_none")]
14485    pub font_algn: Option<STTextFontAlignType>,
14486    #[cfg(feature = "dml-text")]
14487    #[serde(rename = "@latinLnBrk")]
14488    #[serde(
14489        default,
14490        skip_serializing_if = "Option::is_none",
14491        with = "ooxml_xml::ooxml_bool"
14492    )]
14493    pub latin_ln_brk: Option<bool>,
14494    #[cfg(feature = "dml-text")]
14495    #[serde(rename = "@hangingPunct")]
14496    #[serde(
14497        default,
14498        skip_serializing_if = "Option::is_none",
14499        with = "ooxml_xml::ooxml_bool"
14500    )]
14501    pub hanging_punct: Option<bool>,
14502    #[cfg(feature = "dml-text")]
14503    #[serde(rename = "lnSpc")]
14504    #[serde(default, skip_serializing_if = "Option::is_none")]
14505    pub ln_spc: Option<Box<CTTextSpacing>>,
14506    #[cfg(feature = "dml-text")]
14507    #[serde(rename = "spcBef")]
14508    #[serde(default, skip_serializing_if = "Option::is_none")]
14509    pub spc_bef: Option<Box<CTTextSpacing>>,
14510    #[cfg(feature = "dml-text")]
14511    #[serde(rename = "spcAft")]
14512    #[serde(default, skip_serializing_if = "Option::is_none")]
14513    pub spc_aft: Option<Box<CTTextSpacing>>,
14514    #[serde(skip)]
14515    #[serde(default)]
14516    pub text_bullet_color: Option<Box<EGTextBulletColor>>,
14517    #[serde(skip)]
14518    #[serde(default)]
14519    pub text_bullet_size: Option<Box<EGTextBulletSize>>,
14520    #[serde(skip)]
14521    #[serde(default)]
14522    pub text_bullet_typeface: Option<Box<EGTextBulletTypeface>>,
14523    #[serde(skip)]
14524    #[serde(default)]
14525    pub text_bullet: Option<Box<EGTextBullet>>,
14526    #[cfg(feature = "dml-text")]
14527    #[serde(rename = "tabLst")]
14528    #[serde(default, skip_serializing_if = "Option::is_none")]
14529    pub tab_lst: Option<Box<CTTextTabStopList>>,
14530    #[cfg(feature = "dml-text")]
14531    #[serde(rename = "defRPr")]
14532    #[serde(default, skip_serializing_if = "Option::is_none")]
14533    pub def_r_pr: Option<Box<TextCharacterProperties>>,
14534    #[cfg(feature = "dml-extensions")]
14535    #[serde(rename = "extLst")]
14536    #[serde(default, skip_serializing_if = "Option::is_none")]
14537    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
14538    /// Unknown attributes captured for roundtrip fidelity.
14539    #[cfg(feature = "extra-attrs")]
14540    #[serde(skip)]
14541    #[cfg(feature = "extra-attrs")]
14542    #[serde(default)]
14543    #[cfg(feature = "extra-attrs")]
14544    pub extra_attrs: std::collections::HashMap<String, String>,
14545    /// Unknown child elements captured for roundtrip fidelity.
14546    #[cfg(feature = "extra-children")]
14547    #[serde(skip)]
14548    #[cfg(feature = "extra-children")]
14549    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14550}
14551
14552#[derive(Debug, Clone, Serialize, Deserialize)]
14553pub struct CTTextField {
14554    #[serde(rename = "@id")]
14555    pub id: Guid,
14556    #[serde(rename = "@type")]
14557    #[serde(default, skip_serializing_if = "Option::is_none")]
14558    pub r#type: Option<String>,
14559    #[serde(rename = "rPr")]
14560    #[serde(default, skip_serializing_if = "Option::is_none")]
14561    pub r_pr: Option<Box<TextCharacterProperties>>,
14562    #[serde(rename = "pPr")]
14563    #[serde(default, skip_serializing_if = "Option::is_none")]
14564    pub p_pr: Option<Box<TextParagraphProperties>>,
14565    #[serde(rename = "t")]
14566    #[serde(default, skip_serializing_if = "Option::is_none")]
14567    pub t: Option<String>,
14568    /// Unknown attributes captured for roundtrip fidelity.
14569    #[cfg(feature = "extra-attrs")]
14570    #[serde(skip)]
14571    #[cfg(feature = "extra-attrs")]
14572    #[serde(default)]
14573    #[cfg(feature = "extra-attrs")]
14574    pub extra_attrs: std::collections::HashMap<String, String>,
14575    /// Unknown child elements captured for roundtrip fidelity.
14576    #[cfg(feature = "extra-children")]
14577    #[serde(skip)]
14578    #[cfg(feature = "extra-children")]
14579    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14580}
14581
14582#[derive(Debug, Clone, Serialize, Deserialize)]
14583pub struct TextRun {
14584    #[cfg(feature = "dml-text")]
14585    #[serde(rename = "rPr")]
14586    #[serde(default, skip_serializing_if = "Option::is_none")]
14587    pub r_pr: Option<Box<TextCharacterProperties>>,
14588    #[cfg(feature = "dml-text")]
14589    #[serde(rename = "t")]
14590    pub t: String,
14591    /// Unknown child elements captured for roundtrip fidelity.
14592    #[cfg(feature = "extra-children")]
14593    #[serde(skip)]
14594    #[cfg(feature = "extra-children")]
14595    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14596}
14597
14598#[derive(Debug, Clone, Serialize, Deserialize)]
14599pub struct CTDouble {
14600    #[serde(rename = "@val")]
14601    pub value: f64,
14602    /// Unknown attributes captured for roundtrip fidelity.
14603    #[cfg(feature = "extra-attrs")]
14604    #[serde(skip)]
14605    #[cfg(feature = "extra-attrs")]
14606    #[serde(default)]
14607    #[cfg(feature = "extra-attrs")]
14608    pub extra_attrs: std::collections::HashMap<String, String>,
14609}
14610
14611#[derive(Debug, Clone, Serialize, Deserialize)]
14612pub struct CTUnsignedInt {
14613    #[serde(rename = "@val")]
14614    pub value: u32,
14615    /// Unknown attributes captured for roundtrip fidelity.
14616    #[cfg(feature = "extra-attrs")]
14617    #[serde(skip)]
14618    #[cfg(feature = "extra-attrs")]
14619    #[serde(default)]
14620    #[cfg(feature = "extra-attrs")]
14621    pub extra_attrs: std::collections::HashMap<String, String>,
14622}
14623
14624#[derive(Debug, Clone, Serialize, Deserialize)]
14625pub struct ChartRelId {
14626    #[cfg(feature = "dml-charts")]
14627    #[serde(rename = "@r:id")]
14628    pub id: STRelationshipId,
14629    /// Unknown attributes captured for roundtrip fidelity.
14630    #[cfg(feature = "extra-attrs")]
14631    #[serde(skip)]
14632    #[cfg(feature = "extra-attrs")]
14633    #[serde(default)]
14634    #[cfg(feature = "extra-attrs")]
14635    pub extra_attrs: std::collections::HashMap<String, String>,
14636}
14637
14638#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14639pub struct ChartExtension {
14640    #[cfg(feature = "dml-charts")]
14641    #[serde(rename = "@uri")]
14642    #[serde(default, skip_serializing_if = "Option::is_none")]
14643    pub uri: Option<String>,
14644    /// Unknown attributes captured for roundtrip fidelity.
14645    #[cfg(feature = "extra-attrs")]
14646    #[serde(skip)]
14647    #[cfg(feature = "extra-attrs")]
14648    #[serde(default)]
14649    #[cfg(feature = "extra-attrs")]
14650    pub extra_attrs: std::collections::HashMap<String, String>,
14651}
14652
14653pub type CTExtensionAny = String;
14654
14655#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14656pub struct ChartExtensionList {
14657    #[cfg(feature = "dml-charts")]
14658    #[serde(rename = "ext")]
14659    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14660    pub extents: Vec<ChartExtension>,
14661    /// Unknown child elements captured for roundtrip fidelity.
14662    #[cfg(feature = "extra-children")]
14663    #[serde(skip)]
14664    #[cfg(feature = "extra-children")]
14665    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14666}
14667
14668#[derive(Debug, Clone, Serialize, Deserialize)]
14669pub struct NumericValue {
14670    #[cfg(feature = "dml-charts")]
14671    #[serde(rename = "@idx")]
14672    pub idx: u32,
14673    #[cfg(feature = "dml-charts")]
14674    #[serde(rename = "@formatCode")]
14675    #[serde(default, skip_serializing_if = "Option::is_none")]
14676    pub format_code: Option<XmlString>,
14677    #[cfg(feature = "dml-charts")]
14678    #[serde(rename = "v")]
14679    pub v: XmlString,
14680    /// Unknown attributes captured for roundtrip fidelity.
14681    #[cfg(feature = "extra-attrs")]
14682    #[serde(skip)]
14683    #[cfg(feature = "extra-attrs")]
14684    #[serde(default)]
14685    #[cfg(feature = "extra-attrs")]
14686    pub extra_attrs: std::collections::HashMap<String, String>,
14687    /// Unknown child elements captured for roundtrip fidelity.
14688    #[cfg(feature = "extra-children")]
14689    #[serde(skip)]
14690    #[cfg(feature = "extra-children")]
14691    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14692}
14693
14694#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14695pub struct NumericData {
14696    #[cfg(feature = "dml-charts")]
14697    #[serde(rename = "formatCode")]
14698    #[serde(default, skip_serializing_if = "Option::is_none")]
14699    pub format_code: Option<XmlString>,
14700    #[cfg(feature = "dml-charts")]
14701    #[serde(rename = "ptCount")]
14702    #[serde(default, skip_serializing_if = "Option::is_none")]
14703    pub pt_count: Option<Box<CTUnsignedInt>>,
14704    #[cfg(feature = "dml-charts")]
14705    #[serde(rename = "pt")]
14706    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14707    pub pt: Vec<NumericValue>,
14708    #[cfg(feature = "dml-charts")]
14709    #[serde(rename = "extLst")]
14710    #[serde(default, skip_serializing_if = "Option::is_none")]
14711    pub ext_lst: Option<Box<ChartExtensionList>>,
14712    /// Unknown child elements captured for roundtrip fidelity.
14713    #[cfg(feature = "extra-children")]
14714    #[serde(skip)]
14715    #[cfg(feature = "extra-children")]
14716    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14717}
14718
14719#[derive(Debug, Clone, Serialize, Deserialize)]
14720pub struct NumericReference {
14721    #[cfg(feature = "dml-charts")]
14722    #[serde(rename = "f")]
14723    pub f: String,
14724    #[cfg(feature = "dml-charts")]
14725    #[serde(rename = "numCache")]
14726    #[serde(default, skip_serializing_if = "Option::is_none")]
14727    pub num_cache: Option<Box<NumericData>>,
14728    #[cfg(feature = "dml-charts")]
14729    #[serde(rename = "extLst")]
14730    #[serde(default, skip_serializing_if = "Option::is_none")]
14731    pub ext_lst: Option<Box<ChartExtensionList>>,
14732    /// Unknown child elements captured for roundtrip fidelity.
14733    #[cfg(feature = "extra-children")]
14734    #[serde(skip)]
14735    #[cfg(feature = "extra-children")]
14736    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14737}
14738
14739#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14740pub struct NumericDataSource {
14741    #[cfg(feature = "dml-charts")]
14742    #[serde(rename = "numRef")]
14743    #[serde(default, skip_serializing_if = "Option::is_none")]
14744    pub num_ref: Option<Box<NumericReference>>,
14745    #[cfg(feature = "dml-charts")]
14746    #[serde(rename = "numLit")]
14747    #[serde(default, skip_serializing_if = "Option::is_none")]
14748    pub num_lit: Option<Box<NumericData>>,
14749    /// Unknown child elements captured for roundtrip fidelity.
14750    #[cfg(feature = "extra-children")]
14751    #[serde(skip)]
14752    #[cfg(feature = "extra-children")]
14753    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14754}
14755
14756#[derive(Debug, Clone, Serialize, Deserialize)]
14757pub struct StringValue {
14758    #[cfg(feature = "dml-charts")]
14759    #[serde(rename = "@idx")]
14760    pub idx: u32,
14761    #[cfg(feature = "dml-charts")]
14762    #[serde(rename = "v")]
14763    pub v: XmlString,
14764    /// Unknown attributes captured for roundtrip fidelity.
14765    #[cfg(feature = "extra-attrs")]
14766    #[serde(skip)]
14767    #[cfg(feature = "extra-attrs")]
14768    #[serde(default)]
14769    #[cfg(feature = "extra-attrs")]
14770    pub extra_attrs: std::collections::HashMap<String, String>,
14771    /// Unknown child elements captured for roundtrip fidelity.
14772    #[cfg(feature = "extra-children")]
14773    #[serde(skip)]
14774    #[cfg(feature = "extra-children")]
14775    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14776}
14777
14778#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14779pub struct StringData {
14780    #[cfg(feature = "dml-charts")]
14781    #[serde(rename = "ptCount")]
14782    #[serde(default, skip_serializing_if = "Option::is_none")]
14783    pub pt_count: Option<Box<CTUnsignedInt>>,
14784    #[cfg(feature = "dml-charts")]
14785    #[serde(rename = "pt")]
14786    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14787    pub pt: Vec<StringValue>,
14788    #[cfg(feature = "dml-charts")]
14789    #[serde(rename = "extLst")]
14790    #[serde(default, skip_serializing_if = "Option::is_none")]
14791    pub ext_lst: Option<Box<ChartExtensionList>>,
14792    /// Unknown child elements captured for roundtrip fidelity.
14793    #[cfg(feature = "extra-children")]
14794    #[serde(skip)]
14795    #[cfg(feature = "extra-children")]
14796    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14797}
14798
14799#[derive(Debug, Clone, Serialize, Deserialize)]
14800pub struct StringReference {
14801    #[cfg(feature = "dml-charts")]
14802    #[serde(rename = "f")]
14803    pub f: String,
14804    #[cfg(feature = "dml-charts")]
14805    #[serde(rename = "strCache")]
14806    #[serde(default, skip_serializing_if = "Option::is_none")]
14807    pub str_cache: Option<Box<StringData>>,
14808    #[cfg(feature = "dml-charts")]
14809    #[serde(rename = "extLst")]
14810    #[serde(default, skip_serializing_if = "Option::is_none")]
14811    pub ext_lst: Option<Box<ChartExtensionList>>,
14812    /// Unknown child elements captured for roundtrip fidelity.
14813    #[cfg(feature = "extra-children")]
14814    #[serde(skip)]
14815    #[cfg(feature = "extra-children")]
14816    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14817}
14818
14819#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14820pub struct ChartText {
14821    #[cfg(feature = "dml-charts")]
14822    #[serde(rename = "strRef")]
14823    #[serde(default, skip_serializing_if = "Option::is_none")]
14824    pub str_ref: Option<Box<StringReference>>,
14825    #[cfg(feature = "dml-charts")]
14826    #[serde(rename = "rich")]
14827    #[serde(default, skip_serializing_if = "Option::is_none")]
14828    pub rich: Option<Box<TextBody>>,
14829    /// Unknown child elements captured for roundtrip fidelity.
14830    #[cfg(feature = "extra-children")]
14831    #[serde(skip)]
14832    #[cfg(feature = "extra-children")]
14833    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14834}
14835
14836#[derive(Debug, Clone, Serialize, Deserialize)]
14837pub struct TextLanguageId {
14838    #[cfg(feature = "dml-charts")]
14839    #[serde(rename = "@val")]
14840    pub value: Language,
14841    /// Unknown attributes captured for roundtrip fidelity.
14842    #[cfg(feature = "extra-attrs")]
14843    #[serde(skip)]
14844    #[cfg(feature = "extra-attrs")]
14845    #[serde(default)]
14846    #[cfg(feature = "extra-attrs")]
14847    pub extra_attrs: std::collections::HashMap<String, String>,
14848}
14849
14850#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14851pub struct MultiLevelStrLevel {
14852    #[cfg(feature = "dml-charts")]
14853    #[serde(rename = "pt")]
14854    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14855    pub pt: Vec<StringValue>,
14856    /// Unknown child elements captured for roundtrip fidelity.
14857    #[cfg(feature = "extra-children")]
14858    #[serde(skip)]
14859    #[cfg(feature = "extra-children")]
14860    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14861}
14862
14863#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14864pub struct MultiLevelStrData {
14865    #[cfg(feature = "dml-charts")]
14866    #[serde(rename = "ptCount")]
14867    #[serde(default, skip_serializing_if = "Option::is_none")]
14868    pub pt_count: Option<Box<CTUnsignedInt>>,
14869    #[cfg(feature = "dml-charts")]
14870    #[serde(rename = "lvl")]
14871    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14872    pub lvl: Vec<MultiLevelStrLevel>,
14873    #[cfg(feature = "dml-charts")]
14874    #[serde(rename = "extLst")]
14875    #[serde(default, skip_serializing_if = "Option::is_none")]
14876    pub ext_lst: Option<Box<ChartExtensionList>>,
14877    /// Unknown child elements captured for roundtrip fidelity.
14878    #[cfg(feature = "extra-children")]
14879    #[serde(skip)]
14880    #[cfg(feature = "extra-children")]
14881    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14882}
14883
14884#[derive(Debug, Clone, Serialize, Deserialize)]
14885pub struct MultiLevelStrRef {
14886    #[cfg(feature = "dml-charts")]
14887    #[serde(rename = "f")]
14888    pub f: String,
14889    #[cfg(feature = "dml-charts")]
14890    #[serde(rename = "multiLvlStrCache")]
14891    #[serde(default, skip_serializing_if = "Option::is_none")]
14892    pub multi_lvl_str_cache: Option<Box<MultiLevelStrData>>,
14893    #[cfg(feature = "dml-charts")]
14894    #[serde(rename = "extLst")]
14895    #[serde(default, skip_serializing_if = "Option::is_none")]
14896    pub ext_lst: Option<Box<ChartExtensionList>>,
14897    /// Unknown child elements captured for roundtrip fidelity.
14898    #[cfg(feature = "extra-children")]
14899    #[serde(skip)]
14900    #[cfg(feature = "extra-children")]
14901    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14902}
14903
14904#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14905pub struct AxisDataSource {
14906    #[cfg(feature = "dml-charts")]
14907    #[serde(rename = "multiLvlStrRef")]
14908    #[serde(default, skip_serializing_if = "Option::is_none")]
14909    pub multi_lvl_str_ref: Option<Box<MultiLevelStrRef>>,
14910    #[cfg(feature = "dml-charts")]
14911    #[serde(rename = "numRef")]
14912    #[serde(default, skip_serializing_if = "Option::is_none")]
14913    pub num_ref: Option<Box<NumericReference>>,
14914    #[cfg(feature = "dml-charts")]
14915    #[serde(rename = "numLit")]
14916    #[serde(default, skip_serializing_if = "Option::is_none")]
14917    pub num_lit: Option<Box<NumericData>>,
14918    #[cfg(feature = "dml-charts")]
14919    #[serde(rename = "strRef")]
14920    #[serde(default, skip_serializing_if = "Option::is_none")]
14921    pub str_ref: Option<Box<StringReference>>,
14922    #[cfg(feature = "dml-charts")]
14923    #[serde(rename = "strLit")]
14924    #[serde(default, skip_serializing_if = "Option::is_none")]
14925    pub str_lit: Option<Box<StringData>>,
14926    /// Unknown child elements captured for roundtrip fidelity.
14927    #[cfg(feature = "extra-children")]
14928    #[serde(skip)]
14929    #[cfg(feature = "extra-children")]
14930    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14931}
14932
14933#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14934pub struct SeriesText {
14935    #[cfg(feature = "dml-charts")]
14936    #[serde(rename = "strRef")]
14937    #[serde(default, skip_serializing_if = "Option::is_none")]
14938    pub str_ref: Option<Box<StringReference>>,
14939    #[cfg(feature = "dml-charts")]
14940    #[serde(rename = "v")]
14941    #[serde(default, skip_serializing_if = "Option::is_none")]
14942    pub v: Option<XmlString>,
14943    /// Unknown child elements captured for roundtrip fidelity.
14944    #[cfg(feature = "extra-children")]
14945    #[serde(skip)]
14946    #[cfg(feature = "extra-children")]
14947    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14948}
14949
14950#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14951pub struct LayoutTarget {
14952    #[cfg(feature = "dml-charts")]
14953    #[serde(rename = "@val")]
14954    #[serde(default, skip_serializing_if = "Option::is_none")]
14955    pub value: Option<LayoutTargetType>,
14956    /// Unknown attributes captured for roundtrip fidelity.
14957    #[cfg(feature = "extra-attrs")]
14958    #[serde(skip)]
14959    #[cfg(feature = "extra-attrs")]
14960    #[serde(default)]
14961    #[cfg(feature = "extra-attrs")]
14962    pub extra_attrs: std::collections::HashMap<String, String>,
14963}
14964
14965#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14966pub struct LayoutMode {
14967    #[cfg(feature = "dml-charts")]
14968    #[serde(rename = "@val")]
14969    #[serde(default, skip_serializing_if = "Option::is_none")]
14970    pub value: Option<LayoutModeType>,
14971    /// Unknown attributes captured for roundtrip fidelity.
14972    #[cfg(feature = "extra-attrs")]
14973    #[serde(skip)]
14974    #[cfg(feature = "extra-attrs")]
14975    #[serde(default)]
14976    #[cfg(feature = "extra-attrs")]
14977    pub extra_attrs: std::collections::HashMap<String, String>,
14978}
14979
14980#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14981pub struct ManualLayout {
14982    #[cfg(feature = "dml-charts")]
14983    #[serde(rename = "layoutTarget")]
14984    #[serde(default, skip_serializing_if = "Option::is_none")]
14985    pub layout_target: Option<Box<LayoutTarget>>,
14986    #[cfg(feature = "dml-charts")]
14987    #[serde(rename = "xMode")]
14988    #[serde(default, skip_serializing_if = "Option::is_none")]
14989    pub x_mode: Option<Box<LayoutMode>>,
14990    #[cfg(feature = "dml-charts")]
14991    #[serde(rename = "yMode")]
14992    #[serde(default, skip_serializing_if = "Option::is_none")]
14993    pub y_mode: Option<Box<LayoutMode>>,
14994    #[cfg(feature = "dml-charts")]
14995    #[serde(rename = "wMode")]
14996    #[serde(default, skip_serializing_if = "Option::is_none")]
14997    pub w_mode: Option<Box<LayoutMode>>,
14998    #[cfg(feature = "dml-charts")]
14999    #[serde(rename = "hMode")]
15000    #[serde(default, skip_serializing_if = "Option::is_none")]
15001    pub h_mode: Option<Box<LayoutMode>>,
15002    #[cfg(feature = "dml-charts")]
15003    #[serde(rename = "x")]
15004    #[serde(default, skip_serializing_if = "Option::is_none")]
15005    pub x: Option<Box<CTDouble>>,
15006    #[cfg(feature = "dml-charts")]
15007    #[serde(rename = "y")]
15008    #[serde(default, skip_serializing_if = "Option::is_none")]
15009    pub y: Option<Box<CTDouble>>,
15010    #[cfg(feature = "dml-charts")]
15011    #[serde(rename = "w")]
15012    #[serde(default, skip_serializing_if = "Option::is_none")]
15013    pub width: Option<Box<CTDouble>>,
15014    #[cfg(feature = "dml-charts")]
15015    #[serde(rename = "h")]
15016    #[serde(default, skip_serializing_if = "Option::is_none")]
15017    pub height: Option<Box<CTDouble>>,
15018    #[cfg(feature = "dml-charts")]
15019    #[serde(rename = "extLst")]
15020    #[serde(default, skip_serializing_if = "Option::is_none")]
15021    pub ext_lst: Option<Box<ChartExtensionList>>,
15022    /// Unknown child elements captured for roundtrip fidelity.
15023    #[cfg(feature = "extra-children")]
15024    #[serde(skip)]
15025    #[cfg(feature = "extra-children")]
15026    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15027}
15028
15029#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15030pub struct ChartLayout {
15031    #[cfg(feature = "dml-charts")]
15032    #[serde(rename = "manualLayout")]
15033    #[serde(default, skip_serializing_if = "Option::is_none")]
15034    pub manual_layout: Option<Box<ManualLayout>>,
15035    #[cfg(feature = "dml-charts")]
15036    #[serde(rename = "extLst")]
15037    #[serde(default, skip_serializing_if = "Option::is_none")]
15038    pub ext_lst: Option<Box<ChartExtensionList>>,
15039    /// Unknown child elements captured for roundtrip fidelity.
15040    #[cfg(feature = "extra-children")]
15041    #[serde(skip)]
15042    #[cfg(feature = "extra-children")]
15043    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15044}
15045
15046#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15047pub struct ChartTitle {
15048    #[cfg(feature = "dml-charts")]
15049    #[serde(rename = "tx")]
15050    #[serde(default, skip_serializing_if = "Option::is_none")]
15051    pub tx: Option<Box<ChartText>>,
15052    #[cfg(feature = "dml-charts")]
15053    #[serde(rename = "layout")]
15054    #[serde(default, skip_serializing_if = "Option::is_none")]
15055    pub layout: Option<Box<ChartLayout>>,
15056    #[cfg(feature = "dml-charts")]
15057    #[serde(rename = "overlay")]
15058    #[serde(default, skip_serializing_if = "Option::is_none")]
15059    pub overlay: Option<Box<CTBoolean>>,
15060    #[cfg(feature = "dml-charts")]
15061    #[serde(rename = "spPr")]
15062    #[serde(default, skip_serializing_if = "Option::is_none")]
15063    pub sp_pr: Option<Box<CTShapeProperties>>,
15064    #[cfg(feature = "dml-charts")]
15065    #[serde(rename = "txPr")]
15066    #[serde(default, skip_serializing_if = "Option::is_none")]
15067    pub tx_pr: Option<Box<TextBody>>,
15068    #[cfg(feature = "dml-charts")]
15069    #[serde(rename = "extLst")]
15070    #[serde(default, skip_serializing_if = "Option::is_none")]
15071    pub ext_lst: Option<Box<ChartExtensionList>>,
15072    /// Unknown child elements captured for roundtrip fidelity.
15073    #[cfg(feature = "extra-children")]
15074    #[serde(skip)]
15075    #[cfg(feature = "extra-children")]
15076    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15077}
15078
15079#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15080pub struct RotX {
15081    #[cfg(feature = "dml-charts")]
15082    #[serde(rename = "@val")]
15083    #[serde(default, skip_serializing_if = "Option::is_none")]
15084    pub value: Option<RotXValue>,
15085    /// Unknown attributes captured for roundtrip fidelity.
15086    #[cfg(feature = "extra-attrs")]
15087    #[serde(skip)]
15088    #[cfg(feature = "extra-attrs")]
15089    #[serde(default)]
15090    #[cfg(feature = "extra-attrs")]
15091    pub extra_attrs: std::collections::HashMap<String, String>,
15092}
15093
15094#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15095pub struct HPercent {
15096    #[cfg(feature = "dml-charts")]
15097    #[serde(rename = "@val")]
15098    #[serde(default, skip_serializing_if = "Option::is_none")]
15099    pub value: Option<HPercentValue>,
15100    /// Unknown attributes captured for roundtrip fidelity.
15101    #[cfg(feature = "extra-attrs")]
15102    #[serde(skip)]
15103    #[cfg(feature = "extra-attrs")]
15104    #[serde(default)]
15105    #[cfg(feature = "extra-attrs")]
15106    pub extra_attrs: std::collections::HashMap<String, String>,
15107}
15108
15109#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15110pub struct RotY {
15111    #[cfg(feature = "dml-charts")]
15112    #[serde(rename = "@val")]
15113    #[serde(default, skip_serializing_if = "Option::is_none")]
15114    pub value: Option<RotYValue>,
15115    /// Unknown attributes captured for roundtrip fidelity.
15116    #[cfg(feature = "extra-attrs")]
15117    #[serde(skip)]
15118    #[cfg(feature = "extra-attrs")]
15119    #[serde(default)]
15120    #[cfg(feature = "extra-attrs")]
15121    pub extra_attrs: std::collections::HashMap<String, String>,
15122}
15123
15124#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15125pub struct DepthPercent {
15126    #[cfg(feature = "dml-charts")]
15127    #[serde(rename = "@val")]
15128    #[serde(default, skip_serializing_if = "Option::is_none")]
15129    pub value: Option<DepthPercentValue>,
15130    /// Unknown attributes captured for roundtrip fidelity.
15131    #[cfg(feature = "extra-attrs")]
15132    #[serde(skip)]
15133    #[cfg(feature = "extra-attrs")]
15134    #[serde(default)]
15135    #[cfg(feature = "extra-attrs")]
15136    pub extra_attrs: std::collections::HashMap<String, String>,
15137}
15138
15139#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15140pub struct Perspective {
15141    #[cfg(feature = "dml-charts")]
15142    #[serde(rename = "@val")]
15143    #[serde(default, skip_serializing_if = "Option::is_none")]
15144    pub value: Option<PerspectiveValue>,
15145    /// Unknown attributes captured for roundtrip fidelity.
15146    #[cfg(feature = "extra-attrs")]
15147    #[serde(skip)]
15148    #[cfg(feature = "extra-attrs")]
15149    #[serde(default)]
15150    #[cfg(feature = "extra-attrs")]
15151    pub extra_attrs: std::collections::HashMap<String, String>,
15152}
15153
15154#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15155pub struct View3D {
15156    #[cfg(feature = "dml-charts")]
15157    #[serde(rename = "rotX")]
15158    #[serde(default, skip_serializing_if = "Option::is_none")]
15159    pub rot_x: Option<Box<RotX>>,
15160    #[cfg(feature = "dml-charts")]
15161    #[serde(rename = "hPercent")]
15162    #[serde(default, skip_serializing_if = "Option::is_none")]
15163    pub h_percent: Option<Box<HPercent>>,
15164    #[cfg(feature = "dml-charts")]
15165    #[serde(rename = "rotY")]
15166    #[serde(default, skip_serializing_if = "Option::is_none")]
15167    pub rot_y: Option<Box<RotY>>,
15168    #[cfg(feature = "dml-charts")]
15169    #[serde(rename = "depthPercent")]
15170    #[serde(default, skip_serializing_if = "Option::is_none")]
15171    pub depth_percent: Option<Box<DepthPercent>>,
15172    #[cfg(feature = "dml-charts")]
15173    #[serde(rename = "rAngAx")]
15174    #[serde(default, skip_serializing_if = "Option::is_none")]
15175    pub r_ang_ax: Option<Box<CTBoolean>>,
15176    #[cfg(feature = "dml-charts")]
15177    #[serde(rename = "perspective")]
15178    #[serde(default, skip_serializing_if = "Option::is_none")]
15179    pub perspective: Option<Box<Perspective>>,
15180    #[cfg(feature = "dml-charts")]
15181    #[serde(rename = "extLst")]
15182    #[serde(default, skip_serializing_if = "Option::is_none")]
15183    pub ext_lst: Option<Box<ChartExtensionList>>,
15184    /// Unknown child elements captured for roundtrip fidelity.
15185    #[cfg(feature = "extra-children")]
15186    #[serde(skip)]
15187    #[cfg(feature = "extra-children")]
15188    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15189}
15190
15191#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15192pub struct ChartSurface {
15193    #[cfg(feature = "dml-charts")]
15194    #[serde(rename = "thickness")]
15195    #[serde(default, skip_serializing_if = "Option::is_none")]
15196    pub thickness: Option<Box<ChartThickness>>,
15197    #[cfg(feature = "dml-charts")]
15198    #[serde(rename = "spPr")]
15199    #[serde(default, skip_serializing_if = "Option::is_none")]
15200    pub sp_pr: Option<Box<CTShapeProperties>>,
15201    #[cfg(feature = "dml-charts")]
15202    #[serde(rename = "pictureOptions")]
15203    #[serde(default, skip_serializing_if = "Option::is_none")]
15204    pub picture_options: Option<Box<PictureOptions>>,
15205    #[cfg(feature = "dml-charts")]
15206    #[serde(rename = "extLst")]
15207    #[serde(default, skip_serializing_if = "Option::is_none")]
15208    pub ext_lst: Option<Box<ChartExtensionList>>,
15209    /// Unknown child elements captured for roundtrip fidelity.
15210    #[cfg(feature = "extra-children")]
15211    #[serde(skip)]
15212    #[cfg(feature = "extra-children")]
15213    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15214}
15215
15216#[derive(Debug, Clone, Serialize, Deserialize)]
15217pub struct ChartThickness {
15218    #[cfg(feature = "dml-charts")]
15219    #[serde(rename = "@val")]
15220    pub value: ChartThicknessValue,
15221    /// Unknown attributes captured for roundtrip fidelity.
15222    #[cfg(feature = "extra-attrs")]
15223    #[serde(skip)]
15224    #[cfg(feature = "extra-attrs")]
15225    #[serde(default)]
15226    #[cfg(feature = "extra-attrs")]
15227    pub extra_attrs: std::collections::HashMap<String, String>,
15228}
15229
15230#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15231pub struct DataTable {
15232    #[cfg(feature = "dml-charts")]
15233    #[serde(rename = "showHorzBorder")]
15234    #[serde(default, skip_serializing_if = "Option::is_none")]
15235    pub show_horz_border: Option<Box<CTBoolean>>,
15236    #[cfg(feature = "dml-charts")]
15237    #[serde(rename = "showVertBorder")]
15238    #[serde(default, skip_serializing_if = "Option::is_none")]
15239    pub show_vert_border: Option<Box<CTBoolean>>,
15240    #[cfg(feature = "dml-charts")]
15241    #[serde(rename = "showOutline")]
15242    #[serde(default, skip_serializing_if = "Option::is_none")]
15243    pub show_outline: Option<Box<CTBoolean>>,
15244    #[cfg(feature = "dml-charts")]
15245    #[serde(rename = "showKeys")]
15246    #[serde(default, skip_serializing_if = "Option::is_none")]
15247    pub show_keys: Option<Box<CTBoolean>>,
15248    #[cfg(feature = "dml-charts")]
15249    #[serde(rename = "spPr")]
15250    #[serde(default, skip_serializing_if = "Option::is_none")]
15251    pub sp_pr: Option<Box<CTShapeProperties>>,
15252    #[cfg(feature = "dml-charts")]
15253    #[serde(rename = "txPr")]
15254    #[serde(default, skip_serializing_if = "Option::is_none")]
15255    pub tx_pr: Option<Box<TextBody>>,
15256    #[cfg(feature = "dml-charts")]
15257    #[serde(rename = "extLst")]
15258    #[serde(default, skip_serializing_if = "Option::is_none")]
15259    pub ext_lst: Option<Box<ChartExtensionList>>,
15260    /// Unknown child elements captured for roundtrip fidelity.
15261    #[cfg(feature = "extra-children")]
15262    #[serde(skip)]
15263    #[cfg(feature = "extra-children")]
15264    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15265}
15266
15267#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15268pub struct GapAmount {
15269    #[cfg(feature = "dml-charts")]
15270    #[serde(rename = "@val")]
15271    #[serde(default, skip_serializing_if = "Option::is_none")]
15272    pub value: Option<GapAmountValue>,
15273    /// Unknown attributes captured for roundtrip fidelity.
15274    #[cfg(feature = "extra-attrs")]
15275    #[serde(skip)]
15276    #[cfg(feature = "extra-attrs")]
15277    #[serde(default)]
15278    #[cfg(feature = "extra-attrs")]
15279    pub extra_attrs: std::collections::HashMap<String, String>,
15280}
15281
15282#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15283pub struct OverlapAmount {
15284    #[cfg(feature = "dml-charts")]
15285    #[serde(rename = "@val")]
15286    #[serde(default, skip_serializing_if = "Option::is_none")]
15287    pub value: Option<OverlapValue>,
15288    /// Unknown attributes captured for roundtrip fidelity.
15289    #[cfg(feature = "extra-attrs")]
15290    #[serde(skip)]
15291    #[cfg(feature = "extra-attrs")]
15292    #[serde(default)]
15293    #[cfg(feature = "extra-attrs")]
15294    pub extra_attrs: std::collections::HashMap<String, String>,
15295}
15296
15297#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15298pub struct BubbleScale {
15299    #[cfg(feature = "dml-charts")]
15300    #[serde(rename = "@val")]
15301    #[serde(default, skip_serializing_if = "Option::is_none")]
15302    pub value: Option<BubbleScaleValue>,
15303    /// Unknown attributes captured for roundtrip fidelity.
15304    #[cfg(feature = "extra-attrs")]
15305    #[serde(skip)]
15306    #[cfg(feature = "extra-attrs")]
15307    #[serde(default)]
15308    #[cfg(feature = "extra-attrs")]
15309    pub extra_attrs: std::collections::HashMap<String, String>,
15310}
15311
15312#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15313pub struct SizeRepresents {
15314    #[cfg(feature = "dml-charts")]
15315    #[serde(rename = "@val")]
15316    #[serde(default, skip_serializing_if = "Option::is_none")]
15317    pub value: Option<SizeRepresentsType>,
15318    /// Unknown attributes captured for roundtrip fidelity.
15319    #[cfg(feature = "extra-attrs")]
15320    #[serde(skip)]
15321    #[cfg(feature = "extra-attrs")]
15322    #[serde(default)]
15323    #[cfg(feature = "extra-attrs")]
15324    pub extra_attrs: std::collections::HashMap<String, String>,
15325}
15326
15327#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15328pub struct FirstSliceAngle {
15329    #[cfg(feature = "dml-charts")]
15330    #[serde(rename = "@val")]
15331    #[serde(default, skip_serializing_if = "Option::is_none")]
15332    pub value: Option<FirstSliceAngValue>,
15333    /// Unknown attributes captured for roundtrip fidelity.
15334    #[cfg(feature = "extra-attrs")]
15335    #[serde(skip)]
15336    #[cfg(feature = "extra-attrs")]
15337    #[serde(default)]
15338    #[cfg(feature = "extra-attrs")]
15339    pub extra_attrs: std::collections::HashMap<String, String>,
15340}
15341
15342#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15343pub struct HoleSize {
15344    #[cfg(feature = "dml-charts")]
15345    #[serde(rename = "@val")]
15346    #[serde(default, skip_serializing_if = "Option::is_none")]
15347    pub value: Option<HoleSizeValue>,
15348    /// Unknown attributes captured for roundtrip fidelity.
15349    #[cfg(feature = "extra-attrs")]
15350    #[serde(skip)]
15351    #[cfg(feature = "extra-attrs")]
15352    #[serde(default)]
15353    #[cfg(feature = "extra-attrs")]
15354    pub extra_attrs: std::collections::HashMap<String, String>,
15355}
15356
15357#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15358pub struct SplitType {
15359    #[cfg(feature = "dml-charts")]
15360    #[serde(rename = "@val")]
15361    #[serde(default, skip_serializing_if = "Option::is_none")]
15362    pub value: Option<SplitTypeValue>,
15363    /// Unknown attributes captured for roundtrip fidelity.
15364    #[cfg(feature = "extra-attrs")]
15365    #[serde(skip)]
15366    #[cfg(feature = "extra-attrs")]
15367    #[serde(default)]
15368    #[cfg(feature = "extra-attrs")]
15369    pub extra_attrs: std::collections::HashMap<String, String>,
15370}
15371
15372#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15373pub struct CustomSplit {
15374    #[cfg(feature = "dml-charts")]
15375    #[serde(rename = "secondPiePt")]
15376    #[serde(default, skip_serializing_if = "Vec::is_empty")]
15377    pub second_pie_pt: Vec<CTUnsignedInt>,
15378    /// Unknown child elements captured for roundtrip fidelity.
15379    #[cfg(feature = "extra-children")]
15380    #[serde(skip)]
15381    #[cfg(feature = "extra-children")]
15382    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15383}
15384
15385#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15386pub struct SecondPieSize {
15387    #[cfg(feature = "dml-charts")]
15388    #[serde(rename = "@val")]
15389    #[serde(default, skip_serializing_if = "Option::is_none")]
15390    pub value: Option<SecondPieSizeValue>,
15391    /// Unknown attributes captured for roundtrip fidelity.
15392    #[cfg(feature = "extra-attrs")]
15393    #[serde(skip)]
15394    #[cfg(feature = "extra-attrs")]
15395    #[serde(default)]
15396    #[cfg(feature = "extra-attrs")]
15397    pub extra_attrs: std::collections::HashMap<String, String>,
15398}
15399
15400#[derive(Debug, Clone, Serialize, Deserialize)]
15401pub struct ChartNumFmt {
15402    #[cfg(feature = "dml-charts")]
15403    #[serde(rename = "@formatCode")]
15404    pub format_code: XmlString,
15405    #[cfg(feature = "dml-charts")]
15406    #[serde(rename = "@sourceLinked")]
15407    #[serde(
15408        default,
15409        skip_serializing_if = "Option::is_none",
15410        with = "ooxml_xml::ooxml_bool"
15411    )]
15412    pub source_linked: Option<bool>,
15413    /// Unknown attributes captured for roundtrip fidelity.
15414    #[cfg(feature = "extra-attrs")]
15415    #[serde(skip)]
15416    #[cfg(feature = "extra-attrs")]
15417    #[serde(default)]
15418    #[cfg(feature = "extra-attrs")]
15419    pub extra_attrs: std::collections::HashMap<String, String>,
15420}
15421
15422#[derive(Debug, Clone, Serialize, Deserialize)]
15423pub struct LabelAlignment {
15424    #[cfg(feature = "dml-charts")]
15425    #[serde(rename = "@val")]
15426    pub value: LabelAlignType,
15427    /// Unknown attributes captured for roundtrip fidelity.
15428    #[cfg(feature = "extra-attrs")]
15429    #[serde(skip)]
15430    #[cfg(feature = "extra-attrs")]
15431    #[serde(default)]
15432    #[cfg(feature = "extra-attrs")]
15433    pub extra_attrs: std::collections::HashMap<String, String>,
15434}
15435
15436#[derive(Debug, Clone, Serialize, Deserialize)]
15437pub struct DataLabelPosition {
15438    #[cfg(feature = "dml-charts")]
15439    #[serde(rename = "@val")]
15440    pub value: DataLabelPositionType,
15441    /// Unknown attributes captured for roundtrip fidelity.
15442    #[cfg(feature = "extra-attrs")]
15443    #[serde(skip)]
15444    #[cfg(feature = "extra-attrs")]
15445    #[serde(default)]
15446    #[cfg(feature = "extra-attrs")]
15447    pub extra_attrs: std::collections::HashMap<String, String>,
15448}
15449
15450#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15451pub struct EGDLblShared {
15452    #[serde(rename = "numFmt")]
15453    #[serde(default, skip_serializing_if = "Option::is_none")]
15454    pub num_fmt: Option<Box<ChartNumFmt>>,
15455    #[serde(rename = "spPr")]
15456    #[serde(default, skip_serializing_if = "Option::is_none")]
15457    pub sp_pr: Option<Box<CTShapeProperties>>,
15458    #[serde(rename = "txPr")]
15459    #[serde(default, skip_serializing_if = "Option::is_none")]
15460    pub tx_pr: Option<Box<TextBody>>,
15461    #[serde(rename = "dLblPos")]
15462    #[serde(default, skip_serializing_if = "Option::is_none")]
15463    pub d_lbl_pos: Option<Box<DataLabelPosition>>,
15464    #[serde(rename = "showLegendKey")]
15465    #[serde(default, skip_serializing_if = "Option::is_none")]
15466    pub show_legend_key: Option<Box<CTBoolean>>,
15467    #[serde(rename = "showVal")]
15468    #[serde(default, skip_serializing_if = "Option::is_none")]
15469    pub show_val: Option<Box<CTBoolean>>,
15470    #[serde(rename = "showCatName")]
15471    #[serde(default, skip_serializing_if = "Option::is_none")]
15472    pub show_cat_name: Option<Box<CTBoolean>>,
15473    #[serde(rename = "showSerName")]
15474    #[serde(default, skip_serializing_if = "Option::is_none")]
15475    pub show_ser_name: Option<Box<CTBoolean>>,
15476    #[serde(rename = "showPercent")]
15477    #[serde(default, skip_serializing_if = "Option::is_none")]
15478    pub show_percent: Option<Box<CTBoolean>>,
15479    #[serde(rename = "showBubbleSize")]
15480    #[serde(default, skip_serializing_if = "Option::is_none")]
15481    pub show_bubble_size: Option<Box<CTBoolean>>,
15482    #[serde(rename = "separator")]
15483    #[serde(default, skip_serializing_if = "Option::is_none")]
15484    pub separator: Option<String>,
15485    /// Unknown child elements captured for roundtrip fidelity.
15486    #[cfg(feature = "extra-children")]
15487    #[serde(skip)]
15488    #[cfg(feature = "extra-children")]
15489    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15490}
15491
15492#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15493pub struct DchrtGroupDLbl {
15494    #[serde(rename = "layout")]
15495    #[serde(default, skip_serializing_if = "Option::is_none")]
15496    pub layout: Option<Box<ChartLayout>>,
15497    #[serde(rename = "tx")]
15498    #[serde(default, skip_serializing_if = "Option::is_none")]
15499    pub tx: Option<Box<ChartText>>,
15500    #[serde(rename = "numFmt")]
15501    #[serde(default, skip_serializing_if = "Option::is_none")]
15502    pub num_fmt: Option<Box<ChartNumFmt>>,
15503    #[serde(rename = "spPr")]
15504    #[serde(default, skip_serializing_if = "Option::is_none")]
15505    pub sp_pr: Option<Box<CTShapeProperties>>,
15506    #[serde(rename = "txPr")]
15507    #[serde(default, skip_serializing_if = "Option::is_none")]
15508    pub tx_pr: Option<Box<TextBody>>,
15509    #[serde(rename = "dLblPos")]
15510    #[serde(default, skip_serializing_if = "Option::is_none")]
15511    pub d_lbl_pos: Option<Box<DataLabelPosition>>,
15512    #[serde(rename = "showLegendKey")]
15513    #[serde(default, skip_serializing_if = "Option::is_none")]
15514    pub show_legend_key: Option<Box<CTBoolean>>,
15515    #[serde(rename = "showVal")]
15516    #[serde(default, skip_serializing_if = "Option::is_none")]
15517    pub show_val: Option<Box<CTBoolean>>,
15518    #[serde(rename = "showCatName")]
15519    #[serde(default, skip_serializing_if = "Option::is_none")]
15520    pub show_cat_name: Option<Box<CTBoolean>>,
15521    #[serde(rename = "showSerName")]
15522    #[serde(default, skip_serializing_if = "Option::is_none")]
15523    pub show_ser_name: Option<Box<CTBoolean>>,
15524    #[serde(rename = "showPercent")]
15525    #[serde(default, skip_serializing_if = "Option::is_none")]
15526    pub show_percent: Option<Box<CTBoolean>>,
15527    #[serde(rename = "showBubbleSize")]
15528    #[serde(default, skip_serializing_if = "Option::is_none")]
15529    pub show_bubble_size: Option<Box<CTBoolean>>,
15530    #[serde(rename = "separator")]
15531    #[serde(default, skip_serializing_if = "Option::is_none")]
15532    pub separator: Option<String>,
15533    /// Unknown child elements captured for roundtrip fidelity.
15534    #[cfg(feature = "extra-children")]
15535    #[serde(skip)]
15536    #[cfg(feature = "extra-children")]
15537    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15538}
15539
15540#[derive(Debug, Clone, Serialize, Deserialize)]
15541pub struct DataLabel {
15542    #[cfg(feature = "dml-charts")]
15543    #[serde(rename = "idx")]
15544    pub idx: Box<CTUnsignedInt>,
15545    #[cfg(feature = "dml-charts")]
15546    #[serde(rename = "delete")]
15547    #[serde(default, skip_serializing_if = "Option::is_none")]
15548    pub delete: Option<Box<CTBoolean>>,
15549    #[cfg(feature = "dml-charts")]
15550    #[serde(rename = "layout")]
15551    #[serde(default, skip_serializing_if = "Option::is_none")]
15552    pub layout: Option<Box<ChartLayout>>,
15553    #[cfg(feature = "dml-charts")]
15554    #[serde(rename = "tx")]
15555    #[serde(default, skip_serializing_if = "Option::is_none")]
15556    pub tx: Option<Box<ChartText>>,
15557    #[cfg(feature = "dml-charts")]
15558    #[serde(rename = "numFmt")]
15559    #[serde(default, skip_serializing_if = "Option::is_none")]
15560    pub num_fmt: Option<Box<ChartNumFmt>>,
15561    #[cfg(feature = "dml-charts")]
15562    #[serde(rename = "spPr")]
15563    #[serde(default, skip_serializing_if = "Option::is_none")]
15564    pub sp_pr: Option<Box<CTShapeProperties>>,
15565    #[cfg(feature = "dml-charts")]
15566    #[serde(rename = "txPr")]
15567    #[serde(default, skip_serializing_if = "Option::is_none")]
15568    pub tx_pr: Option<Box<TextBody>>,
15569    #[cfg(feature = "dml-charts")]
15570    #[serde(rename = "dLblPos")]
15571    #[serde(default, skip_serializing_if = "Option::is_none")]
15572    pub d_lbl_pos: Option<Box<DataLabelPosition>>,
15573    #[cfg(feature = "dml-charts")]
15574    #[serde(rename = "showLegendKey")]
15575    #[serde(default, skip_serializing_if = "Option::is_none")]
15576    pub show_legend_key: Option<Box<CTBoolean>>,
15577    #[cfg(feature = "dml-charts")]
15578    #[serde(rename = "showVal")]
15579    #[serde(default, skip_serializing_if = "Option::is_none")]
15580    pub show_val: Option<Box<CTBoolean>>,
15581    #[cfg(feature = "dml-charts")]
15582    #[serde(rename = "showCatName")]
15583    #[serde(default, skip_serializing_if = "Option::is_none")]
15584    pub show_cat_name: Option<Box<CTBoolean>>,
15585    #[cfg(feature = "dml-charts")]
15586    #[serde(rename = "showSerName")]
15587    #[serde(default, skip_serializing_if = "Option::is_none")]
15588    pub show_ser_name: Option<Box<CTBoolean>>,
15589    #[cfg(feature = "dml-charts")]
15590    #[serde(rename = "showPercent")]
15591    #[serde(default, skip_serializing_if = "Option::is_none")]
15592    pub show_percent: Option<Box<CTBoolean>>,
15593    #[cfg(feature = "dml-charts")]
15594    #[serde(rename = "showBubbleSize")]
15595    #[serde(default, skip_serializing_if = "Option::is_none")]
15596    pub show_bubble_size: Option<Box<CTBoolean>>,
15597    #[cfg(feature = "dml-charts")]
15598    #[serde(rename = "separator")]
15599    #[serde(default, skip_serializing_if = "Option::is_none")]
15600    pub separator: Option<String>,
15601    #[cfg(feature = "dml-charts")]
15602    #[serde(rename = "extLst")]
15603    #[serde(default, skip_serializing_if = "Option::is_none")]
15604    pub ext_lst: Option<Box<ChartExtensionList>>,
15605    /// Unknown child elements captured for roundtrip fidelity.
15606    #[cfg(feature = "extra-children")]
15607    #[serde(skip)]
15608    #[cfg(feature = "extra-children")]
15609    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15610}
15611
15612#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15613pub struct DchrtGroupDLbls {
15614    #[serde(rename = "numFmt")]
15615    #[serde(default, skip_serializing_if = "Option::is_none")]
15616    pub num_fmt: Option<Box<ChartNumFmt>>,
15617    #[serde(rename = "spPr")]
15618    #[serde(default, skip_serializing_if = "Option::is_none")]
15619    pub sp_pr: Option<Box<CTShapeProperties>>,
15620    #[serde(rename = "txPr")]
15621    #[serde(default, skip_serializing_if = "Option::is_none")]
15622    pub tx_pr: Option<Box<TextBody>>,
15623    #[serde(rename = "dLblPos")]
15624    #[serde(default, skip_serializing_if = "Option::is_none")]
15625    pub d_lbl_pos: Option<Box<DataLabelPosition>>,
15626    #[serde(rename = "showLegendKey")]
15627    #[serde(default, skip_serializing_if = "Option::is_none")]
15628    pub show_legend_key: Option<Box<CTBoolean>>,
15629    #[serde(rename = "showVal")]
15630    #[serde(default, skip_serializing_if = "Option::is_none")]
15631    pub show_val: Option<Box<CTBoolean>>,
15632    #[serde(rename = "showCatName")]
15633    #[serde(default, skip_serializing_if = "Option::is_none")]
15634    pub show_cat_name: Option<Box<CTBoolean>>,
15635    #[serde(rename = "showSerName")]
15636    #[serde(default, skip_serializing_if = "Option::is_none")]
15637    pub show_ser_name: Option<Box<CTBoolean>>,
15638    #[serde(rename = "showPercent")]
15639    #[serde(default, skip_serializing_if = "Option::is_none")]
15640    pub show_percent: Option<Box<CTBoolean>>,
15641    #[serde(rename = "showBubbleSize")]
15642    #[serde(default, skip_serializing_if = "Option::is_none")]
15643    pub show_bubble_size: Option<Box<CTBoolean>>,
15644    #[serde(rename = "separator")]
15645    #[serde(default, skip_serializing_if = "Option::is_none")]
15646    pub separator: Option<String>,
15647    #[serde(rename = "showLeaderLines")]
15648    #[serde(default, skip_serializing_if = "Option::is_none")]
15649    pub show_leader_lines: Option<Box<CTBoolean>>,
15650    #[serde(rename = "leaderLines")]
15651    #[serde(default, skip_serializing_if = "Option::is_none")]
15652    pub leader_lines: Option<Box<ChartLines>>,
15653    /// Unknown child elements captured for roundtrip fidelity.
15654    #[cfg(feature = "extra-children")]
15655    #[serde(skip)]
15656    #[cfg(feature = "extra-children")]
15657    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15658}
15659
15660#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15661pub struct DataLabels {
15662    #[cfg(feature = "dml-charts")]
15663    #[serde(rename = "dLbl")]
15664    #[serde(default, skip_serializing_if = "Vec::is_empty")]
15665    pub d_lbl: Vec<DataLabel>,
15666    #[cfg(feature = "dml-charts")]
15667    #[serde(rename = "delete")]
15668    #[serde(default, skip_serializing_if = "Option::is_none")]
15669    pub delete: Option<Box<CTBoolean>>,
15670    #[cfg(feature = "dml-charts")]
15671    #[serde(rename = "numFmt")]
15672    #[serde(default, skip_serializing_if = "Option::is_none")]
15673    pub num_fmt: Option<Box<ChartNumFmt>>,
15674    #[cfg(feature = "dml-charts")]
15675    #[serde(rename = "spPr")]
15676    #[serde(default, skip_serializing_if = "Option::is_none")]
15677    pub sp_pr: Option<Box<CTShapeProperties>>,
15678    #[cfg(feature = "dml-charts")]
15679    #[serde(rename = "txPr")]
15680    #[serde(default, skip_serializing_if = "Option::is_none")]
15681    pub tx_pr: Option<Box<TextBody>>,
15682    #[cfg(feature = "dml-charts")]
15683    #[serde(rename = "dLblPos")]
15684    #[serde(default, skip_serializing_if = "Option::is_none")]
15685    pub d_lbl_pos: Option<Box<DataLabelPosition>>,
15686    #[cfg(feature = "dml-charts")]
15687    #[serde(rename = "showLegendKey")]
15688    #[serde(default, skip_serializing_if = "Option::is_none")]
15689    pub show_legend_key: Option<Box<CTBoolean>>,
15690    #[cfg(feature = "dml-charts")]
15691    #[serde(rename = "showVal")]
15692    #[serde(default, skip_serializing_if = "Option::is_none")]
15693    pub show_val: Option<Box<CTBoolean>>,
15694    #[cfg(feature = "dml-charts")]
15695    #[serde(rename = "showCatName")]
15696    #[serde(default, skip_serializing_if = "Option::is_none")]
15697    pub show_cat_name: Option<Box<CTBoolean>>,
15698    #[cfg(feature = "dml-charts")]
15699    #[serde(rename = "showSerName")]
15700    #[serde(default, skip_serializing_if = "Option::is_none")]
15701    pub show_ser_name: Option<Box<CTBoolean>>,
15702    #[cfg(feature = "dml-charts")]
15703    #[serde(rename = "showPercent")]
15704    #[serde(default, skip_serializing_if = "Option::is_none")]
15705    pub show_percent: Option<Box<CTBoolean>>,
15706    #[cfg(feature = "dml-charts")]
15707    #[serde(rename = "showBubbleSize")]
15708    #[serde(default, skip_serializing_if = "Option::is_none")]
15709    pub show_bubble_size: Option<Box<CTBoolean>>,
15710    #[cfg(feature = "dml-charts")]
15711    #[serde(rename = "separator")]
15712    #[serde(default, skip_serializing_if = "Option::is_none")]
15713    pub separator: Option<String>,
15714    #[cfg(feature = "dml-charts")]
15715    #[serde(rename = "showLeaderLines")]
15716    #[serde(default, skip_serializing_if = "Option::is_none")]
15717    pub show_leader_lines: Option<Box<CTBoolean>>,
15718    #[cfg(feature = "dml-charts")]
15719    #[serde(rename = "leaderLines")]
15720    #[serde(default, skip_serializing_if = "Option::is_none")]
15721    pub leader_lines: Option<Box<ChartLines>>,
15722    #[cfg(feature = "dml-charts")]
15723    #[serde(rename = "extLst")]
15724    #[serde(default, skip_serializing_if = "Option::is_none")]
15725    pub ext_lst: Option<Box<ChartExtensionList>>,
15726    /// Unknown child elements captured for roundtrip fidelity.
15727    #[cfg(feature = "extra-children")]
15728    #[serde(skip)]
15729    #[cfg(feature = "extra-children")]
15730    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15731}
15732
15733#[derive(Debug, Clone, Serialize, Deserialize)]
15734pub struct ChartMarkerStyle {
15735    #[cfg(feature = "dml-charts")]
15736    #[serde(rename = "@val")]
15737    pub value: MarkerStyleType,
15738    /// Unknown attributes captured for roundtrip fidelity.
15739    #[cfg(feature = "extra-attrs")]
15740    #[serde(skip)]
15741    #[cfg(feature = "extra-attrs")]
15742    #[serde(default)]
15743    #[cfg(feature = "extra-attrs")]
15744    pub extra_attrs: std::collections::HashMap<String, String>,
15745}
15746
15747#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15748pub struct ChartMarkerSize {
15749    #[cfg(feature = "dml-charts")]
15750    #[serde(rename = "@val")]
15751    #[serde(default, skip_serializing_if = "Option::is_none")]
15752    pub value: Option<MarkerSizeValue>,
15753    /// Unknown attributes captured for roundtrip fidelity.
15754    #[cfg(feature = "extra-attrs")]
15755    #[serde(skip)]
15756    #[cfg(feature = "extra-attrs")]
15757    #[serde(default)]
15758    #[cfg(feature = "extra-attrs")]
15759    pub extra_attrs: std::collections::HashMap<String, String>,
15760}
15761
15762#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15763pub struct ChartMarker {
15764    #[cfg(feature = "dml-charts")]
15765    #[serde(rename = "symbol")]
15766    #[serde(default, skip_serializing_if = "Option::is_none")]
15767    pub symbol: Option<Box<ChartMarkerStyle>>,
15768    #[cfg(feature = "dml-charts")]
15769    #[serde(rename = "size")]
15770    #[serde(default, skip_serializing_if = "Option::is_none")]
15771    pub size: Option<Box<ChartMarkerSize>>,
15772    #[cfg(feature = "dml-charts")]
15773    #[serde(rename = "spPr")]
15774    #[serde(default, skip_serializing_if = "Option::is_none")]
15775    pub sp_pr: Option<Box<CTShapeProperties>>,
15776    #[cfg(feature = "dml-charts")]
15777    #[serde(rename = "extLst")]
15778    #[serde(default, skip_serializing_if = "Option::is_none")]
15779    pub ext_lst: Option<Box<ChartExtensionList>>,
15780    /// Unknown child elements captured for roundtrip fidelity.
15781    #[cfg(feature = "extra-children")]
15782    #[serde(skip)]
15783    #[cfg(feature = "extra-children")]
15784    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15785}
15786
15787#[derive(Debug, Clone, Serialize, Deserialize)]
15788pub struct DataPoint {
15789    #[cfg(feature = "dml-charts")]
15790    #[serde(rename = "idx")]
15791    pub idx: Box<CTUnsignedInt>,
15792    #[cfg(feature = "dml-charts")]
15793    #[serde(rename = "invertIfNegative")]
15794    #[serde(default, skip_serializing_if = "Option::is_none")]
15795    pub invert_if_negative: Option<Box<CTBoolean>>,
15796    #[cfg(feature = "dml-charts")]
15797    #[serde(rename = "marker")]
15798    #[serde(default, skip_serializing_if = "Option::is_none")]
15799    pub marker: Option<Box<ChartMarker>>,
15800    #[cfg(feature = "dml-charts")]
15801    #[serde(rename = "bubble3D")]
15802    #[serde(default, skip_serializing_if = "Option::is_none")]
15803    pub bubble3_d: Option<Box<CTBoolean>>,
15804    #[cfg(feature = "dml-charts")]
15805    #[serde(rename = "explosion")]
15806    #[serde(default, skip_serializing_if = "Option::is_none")]
15807    pub explosion: Option<Box<CTUnsignedInt>>,
15808    #[cfg(feature = "dml-charts")]
15809    #[serde(rename = "spPr")]
15810    #[serde(default, skip_serializing_if = "Option::is_none")]
15811    pub sp_pr: Option<Box<CTShapeProperties>>,
15812    #[cfg(feature = "dml-charts")]
15813    #[serde(rename = "pictureOptions")]
15814    #[serde(default, skip_serializing_if = "Option::is_none")]
15815    pub picture_options: Option<Box<PictureOptions>>,
15816    #[cfg(feature = "dml-charts")]
15817    #[serde(rename = "extLst")]
15818    #[serde(default, skip_serializing_if = "Option::is_none")]
15819    pub ext_lst: Option<Box<ChartExtensionList>>,
15820    /// Unknown child elements captured for roundtrip fidelity.
15821    #[cfg(feature = "extra-children")]
15822    #[serde(skip)]
15823    #[cfg(feature = "extra-children")]
15824    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15825}
15826
15827#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15828pub struct TrendlineType {
15829    #[cfg(feature = "dml-charts")]
15830    #[serde(rename = "@val")]
15831    #[serde(default, skip_serializing_if = "Option::is_none")]
15832    pub value: Option<TrendlineTypeValue>,
15833    /// Unknown attributes captured for roundtrip fidelity.
15834    #[cfg(feature = "extra-attrs")]
15835    #[serde(skip)]
15836    #[cfg(feature = "extra-attrs")]
15837    #[serde(default)]
15838    #[cfg(feature = "extra-attrs")]
15839    pub extra_attrs: std::collections::HashMap<String, String>,
15840}
15841
15842#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15843pub struct TrendlineOrder {
15844    #[cfg(feature = "dml-charts")]
15845    #[serde(rename = "@val")]
15846    #[serde(default, skip_serializing_if = "Option::is_none")]
15847    pub value: Option<TrendlineOrderValue>,
15848    /// Unknown attributes captured for roundtrip fidelity.
15849    #[cfg(feature = "extra-attrs")]
15850    #[serde(skip)]
15851    #[cfg(feature = "extra-attrs")]
15852    #[serde(default)]
15853    #[cfg(feature = "extra-attrs")]
15854    pub extra_attrs: std::collections::HashMap<String, String>,
15855}
15856
15857#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15858pub struct TrendlinePeriod {
15859    #[cfg(feature = "dml-charts")]
15860    #[serde(rename = "@val")]
15861    #[serde(default, skip_serializing_if = "Option::is_none")]
15862    pub value: Option<TrendlinePeriodValue>,
15863    /// Unknown attributes captured for roundtrip fidelity.
15864    #[cfg(feature = "extra-attrs")]
15865    #[serde(skip)]
15866    #[cfg(feature = "extra-attrs")]
15867    #[serde(default)]
15868    #[cfg(feature = "extra-attrs")]
15869    pub extra_attrs: std::collections::HashMap<String, String>,
15870}
15871
15872#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15873pub struct TrendlineLabel {
15874    #[cfg(feature = "dml-charts")]
15875    #[serde(rename = "layout")]
15876    #[serde(default, skip_serializing_if = "Option::is_none")]
15877    pub layout: Option<Box<ChartLayout>>,
15878    #[cfg(feature = "dml-charts")]
15879    #[serde(rename = "tx")]
15880    #[serde(default, skip_serializing_if = "Option::is_none")]
15881    pub tx: Option<Box<ChartText>>,
15882    #[cfg(feature = "dml-charts")]
15883    #[serde(rename = "numFmt")]
15884    #[serde(default, skip_serializing_if = "Option::is_none")]
15885    pub num_fmt: Option<Box<ChartNumFmt>>,
15886    #[cfg(feature = "dml-charts")]
15887    #[serde(rename = "spPr")]
15888    #[serde(default, skip_serializing_if = "Option::is_none")]
15889    pub sp_pr: Option<Box<CTShapeProperties>>,
15890    #[cfg(feature = "dml-charts")]
15891    #[serde(rename = "txPr")]
15892    #[serde(default, skip_serializing_if = "Option::is_none")]
15893    pub tx_pr: Option<Box<TextBody>>,
15894    #[cfg(feature = "dml-charts")]
15895    #[serde(rename = "extLst")]
15896    #[serde(default, skip_serializing_if = "Option::is_none")]
15897    pub ext_lst: Option<Box<ChartExtensionList>>,
15898    /// Unknown child elements captured for roundtrip fidelity.
15899    #[cfg(feature = "extra-children")]
15900    #[serde(skip)]
15901    #[cfg(feature = "extra-children")]
15902    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15903}
15904
15905#[derive(Debug, Clone, Serialize, Deserialize)]
15906pub struct Trendline {
15907    #[cfg(feature = "dml-charts")]
15908    #[serde(rename = "name")]
15909    #[serde(default, skip_serializing_if = "Option::is_none")]
15910    pub name: Option<String>,
15911    #[cfg(feature = "dml-charts")]
15912    #[serde(rename = "spPr")]
15913    #[serde(default, skip_serializing_if = "Option::is_none")]
15914    pub sp_pr: Option<Box<CTShapeProperties>>,
15915    #[cfg(feature = "dml-charts")]
15916    #[serde(rename = "trendlineType")]
15917    pub trendline_type: Box<TrendlineType>,
15918    #[cfg(feature = "dml-charts")]
15919    #[serde(rename = "order")]
15920    #[serde(default, skip_serializing_if = "Option::is_none")]
15921    pub order: Option<Box<TrendlineOrder>>,
15922    #[cfg(feature = "dml-charts")]
15923    #[serde(rename = "period")]
15924    #[serde(default, skip_serializing_if = "Option::is_none")]
15925    pub period: Option<Box<TrendlinePeriod>>,
15926    #[cfg(feature = "dml-charts")]
15927    #[serde(rename = "forward")]
15928    #[serde(default, skip_serializing_if = "Option::is_none")]
15929    pub forward: Option<Box<CTDouble>>,
15930    #[cfg(feature = "dml-charts")]
15931    #[serde(rename = "backward")]
15932    #[serde(default, skip_serializing_if = "Option::is_none")]
15933    pub backward: Option<Box<CTDouble>>,
15934    #[cfg(feature = "dml-charts")]
15935    #[serde(rename = "intercept")]
15936    #[serde(default, skip_serializing_if = "Option::is_none")]
15937    pub intercept: Option<Box<CTDouble>>,
15938    #[cfg(feature = "dml-charts")]
15939    #[serde(rename = "dispRSqr")]
15940    #[serde(default, skip_serializing_if = "Option::is_none")]
15941    pub disp_r_sqr: Option<Box<CTBoolean>>,
15942    #[cfg(feature = "dml-charts")]
15943    #[serde(rename = "dispEq")]
15944    #[serde(default, skip_serializing_if = "Option::is_none")]
15945    pub disp_eq: Option<Box<CTBoolean>>,
15946    #[cfg(feature = "dml-charts")]
15947    #[serde(rename = "trendlineLbl")]
15948    #[serde(default, skip_serializing_if = "Option::is_none")]
15949    pub trendline_lbl: Option<Box<TrendlineLabel>>,
15950    #[cfg(feature = "dml-charts")]
15951    #[serde(rename = "extLst")]
15952    #[serde(default, skip_serializing_if = "Option::is_none")]
15953    pub ext_lst: Option<Box<ChartExtensionList>>,
15954    /// Unknown child elements captured for roundtrip fidelity.
15955    #[cfg(feature = "extra-children")]
15956    #[serde(skip)]
15957    #[cfg(feature = "extra-children")]
15958    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15959}
15960
15961#[derive(Debug, Clone, Serialize, Deserialize)]
15962pub struct ErrorDirection {
15963    #[cfg(feature = "dml-charts")]
15964    #[serde(rename = "@val")]
15965    pub value: ErrorDirectionType,
15966    /// Unknown attributes captured for roundtrip fidelity.
15967    #[cfg(feature = "extra-attrs")]
15968    #[serde(skip)]
15969    #[cfg(feature = "extra-attrs")]
15970    #[serde(default)]
15971    #[cfg(feature = "extra-attrs")]
15972    pub extra_attrs: std::collections::HashMap<String, String>,
15973}
15974
15975#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15976pub struct ErrorBarType {
15977    #[cfg(feature = "dml-charts")]
15978    #[serde(rename = "@val")]
15979    #[serde(default, skip_serializing_if = "Option::is_none")]
15980    pub value: Option<ErrorBarTypeValue>,
15981    /// Unknown attributes captured for roundtrip fidelity.
15982    #[cfg(feature = "extra-attrs")]
15983    #[serde(skip)]
15984    #[cfg(feature = "extra-attrs")]
15985    #[serde(default)]
15986    #[cfg(feature = "extra-attrs")]
15987    pub extra_attrs: std::collections::HashMap<String, String>,
15988}
15989
15990#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15991pub struct ErrorValueType {
15992    #[cfg(feature = "dml-charts")]
15993    #[serde(rename = "@val")]
15994    #[serde(default, skip_serializing_if = "Option::is_none")]
15995    pub value: Option<ErrorValueTypeValue>,
15996    /// Unknown attributes captured for roundtrip fidelity.
15997    #[cfg(feature = "extra-attrs")]
15998    #[serde(skip)]
15999    #[cfg(feature = "extra-attrs")]
16000    #[serde(default)]
16001    #[cfg(feature = "extra-attrs")]
16002    pub extra_attrs: std::collections::HashMap<String, String>,
16003}
16004
16005#[derive(Debug, Clone, Serialize, Deserialize)]
16006pub struct ErrorBars {
16007    #[cfg(feature = "dml-charts")]
16008    #[serde(rename = "errDir")]
16009    #[serde(default, skip_serializing_if = "Option::is_none")]
16010    pub err_dir: Option<Box<ErrorDirection>>,
16011    #[cfg(feature = "dml-charts")]
16012    #[serde(rename = "errBarType")]
16013    pub err_bar_type: Box<ErrorBarType>,
16014    #[cfg(feature = "dml-charts")]
16015    #[serde(rename = "errValType")]
16016    pub err_val_type: Box<ErrorValueType>,
16017    #[cfg(feature = "dml-charts")]
16018    #[serde(rename = "noEndCap")]
16019    #[serde(default, skip_serializing_if = "Option::is_none")]
16020    pub no_end_cap: Option<Box<CTBoolean>>,
16021    #[cfg(feature = "dml-charts")]
16022    #[serde(rename = "plus")]
16023    #[serde(default, skip_serializing_if = "Option::is_none")]
16024    pub plus: Option<Box<NumericDataSource>>,
16025    #[cfg(feature = "dml-charts")]
16026    #[serde(rename = "minus")]
16027    #[serde(default, skip_serializing_if = "Option::is_none")]
16028    pub minus: Option<Box<NumericDataSource>>,
16029    #[cfg(feature = "dml-charts")]
16030    #[serde(rename = "val")]
16031    #[serde(default, skip_serializing_if = "Option::is_none")]
16032    pub value: Option<Box<CTDouble>>,
16033    #[cfg(feature = "dml-charts")]
16034    #[serde(rename = "spPr")]
16035    #[serde(default, skip_serializing_if = "Option::is_none")]
16036    pub sp_pr: Option<Box<CTShapeProperties>>,
16037    #[cfg(feature = "dml-charts")]
16038    #[serde(rename = "extLst")]
16039    #[serde(default, skip_serializing_if = "Option::is_none")]
16040    pub ext_lst: Option<Box<ChartExtensionList>>,
16041    /// Unknown child elements captured for roundtrip fidelity.
16042    #[cfg(feature = "extra-children")]
16043    #[serde(skip)]
16044    #[cfg(feature = "extra-children")]
16045    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16046}
16047
16048#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16049pub struct UpDownBar {
16050    #[cfg(feature = "dml-charts")]
16051    #[serde(rename = "spPr")]
16052    #[serde(default, skip_serializing_if = "Option::is_none")]
16053    pub sp_pr: Option<Box<CTShapeProperties>>,
16054    /// Unknown child elements captured for roundtrip fidelity.
16055    #[cfg(feature = "extra-children")]
16056    #[serde(skip)]
16057    #[cfg(feature = "extra-children")]
16058    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16059}
16060
16061#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16062pub struct UpDownBars {
16063    #[cfg(feature = "dml-charts")]
16064    #[serde(rename = "gapWidth")]
16065    #[serde(default, skip_serializing_if = "Option::is_none")]
16066    pub gap_width: Option<Box<GapAmount>>,
16067    #[cfg(feature = "dml-charts")]
16068    #[serde(rename = "upBars")]
16069    #[serde(default, skip_serializing_if = "Option::is_none")]
16070    pub up_bars: Option<Box<UpDownBar>>,
16071    #[cfg(feature = "dml-charts")]
16072    #[serde(rename = "downBars")]
16073    #[serde(default, skip_serializing_if = "Option::is_none")]
16074    pub down_bars: Option<Box<UpDownBar>>,
16075    #[cfg(feature = "dml-charts")]
16076    #[serde(rename = "extLst")]
16077    #[serde(default, skip_serializing_if = "Option::is_none")]
16078    pub ext_lst: Option<Box<ChartExtensionList>>,
16079    /// Unknown child elements captured for roundtrip fidelity.
16080    #[cfg(feature = "extra-children")]
16081    #[serde(skip)]
16082    #[cfg(feature = "extra-children")]
16083    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16084}
16085
16086#[derive(Debug, Clone, Serialize, Deserialize)]
16087pub struct EGSerShared {
16088    #[serde(rename = "idx")]
16089    pub idx: Box<CTUnsignedInt>,
16090    #[serde(rename = "order")]
16091    pub order: Box<CTUnsignedInt>,
16092    #[serde(rename = "tx")]
16093    #[serde(default, skip_serializing_if = "Option::is_none")]
16094    pub tx: Option<Box<SeriesText>>,
16095    #[serde(rename = "spPr")]
16096    #[serde(default, skip_serializing_if = "Option::is_none")]
16097    pub sp_pr: Option<Box<CTShapeProperties>>,
16098    /// Unknown child elements captured for roundtrip fidelity.
16099    #[cfg(feature = "extra-children")]
16100    #[serde(skip)]
16101    #[cfg(feature = "extra-children")]
16102    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16103}
16104
16105#[derive(Debug, Clone, Serialize, Deserialize)]
16106pub struct LineSeries {
16107    #[cfg(feature = "dml-charts")]
16108    #[serde(rename = "idx")]
16109    pub idx: Box<CTUnsignedInt>,
16110    #[cfg(feature = "dml-charts")]
16111    #[serde(rename = "order")]
16112    pub order: Box<CTUnsignedInt>,
16113    #[cfg(feature = "dml-charts")]
16114    #[serde(rename = "tx")]
16115    #[serde(default, skip_serializing_if = "Option::is_none")]
16116    pub tx: Option<Box<SeriesText>>,
16117    #[cfg(feature = "dml-charts")]
16118    #[serde(rename = "spPr")]
16119    #[serde(default, skip_serializing_if = "Option::is_none")]
16120    pub sp_pr: Option<Box<CTShapeProperties>>,
16121    #[cfg(feature = "dml-charts")]
16122    #[serde(rename = "marker")]
16123    #[serde(default, skip_serializing_if = "Option::is_none")]
16124    pub marker: Option<Box<ChartMarker>>,
16125    #[cfg(feature = "dml-charts")]
16126    #[serde(rename = "dPt")]
16127    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16128    pub d_pt: Vec<DataPoint>,
16129    #[cfg(feature = "dml-charts")]
16130    #[serde(rename = "dLbls")]
16131    #[serde(default, skip_serializing_if = "Option::is_none")]
16132    pub d_lbls: Option<Box<DataLabels>>,
16133    #[cfg(feature = "dml-charts")]
16134    #[serde(rename = "trendline")]
16135    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16136    pub trendline: Vec<Trendline>,
16137    #[cfg(feature = "dml-charts")]
16138    #[serde(rename = "errBars")]
16139    #[serde(default, skip_serializing_if = "Option::is_none")]
16140    pub err_bars: Option<Box<ErrorBars>>,
16141    #[cfg(feature = "dml-charts")]
16142    #[serde(rename = "cat")]
16143    #[serde(default, skip_serializing_if = "Option::is_none")]
16144    pub cat: Option<Box<AxisDataSource>>,
16145    #[cfg(feature = "dml-charts")]
16146    #[serde(rename = "val")]
16147    #[serde(default, skip_serializing_if = "Option::is_none")]
16148    pub value: Option<Box<NumericDataSource>>,
16149    #[cfg(feature = "dml-charts")]
16150    #[serde(rename = "smooth")]
16151    #[serde(default, skip_serializing_if = "Option::is_none")]
16152    pub smooth: Option<Box<CTBoolean>>,
16153    #[cfg(feature = "dml-charts")]
16154    #[serde(rename = "extLst")]
16155    #[serde(default, skip_serializing_if = "Option::is_none")]
16156    pub ext_lst: Option<Box<ChartExtensionList>>,
16157    /// Unknown child elements captured for roundtrip fidelity.
16158    #[cfg(feature = "extra-children")]
16159    #[serde(skip)]
16160    #[cfg(feature = "extra-children")]
16161    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16162}
16163
16164#[derive(Debug, Clone, Serialize, Deserialize)]
16165pub struct ScatterSeries {
16166    #[cfg(feature = "dml-charts")]
16167    #[serde(rename = "idx")]
16168    pub idx: Box<CTUnsignedInt>,
16169    #[cfg(feature = "dml-charts")]
16170    #[serde(rename = "order")]
16171    pub order: Box<CTUnsignedInt>,
16172    #[cfg(feature = "dml-charts")]
16173    #[serde(rename = "tx")]
16174    #[serde(default, skip_serializing_if = "Option::is_none")]
16175    pub tx: Option<Box<SeriesText>>,
16176    #[cfg(feature = "dml-charts")]
16177    #[serde(rename = "spPr")]
16178    #[serde(default, skip_serializing_if = "Option::is_none")]
16179    pub sp_pr: Option<Box<CTShapeProperties>>,
16180    #[cfg(feature = "dml-charts")]
16181    #[serde(rename = "marker")]
16182    #[serde(default, skip_serializing_if = "Option::is_none")]
16183    pub marker: Option<Box<ChartMarker>>,
16184    #[cfg(feature = "dml-charts")]
16185    #[serde(rename = "dPt")]
16186    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16187    pub d_pt: Vec<DataPoint>,
16188    #[cfg(feature = "dml-charts")]
16189    #[serde(rename = "dLbls")]
16190    #[serde(default, skip_serializing_if = "Option::is_none")]
16191    pub d_lbls: Option<Box<DataLabels>>,
16192    #[cfg(feature = "dml-charts")]
16193    #[serde(rename = "trendline")]
16194    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16195    pub trendline: Vec<Trendline>,
16196    #[cfg(feature = "dml-charts")]
16197    #[serde(rename = "errBars")]
16198    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16199    pub err_bars: Vec<ErrorBars>,
16200    #[cfg(feature = "dml-charts")]
16201    #[serde(rename = "xVal")]
16202    #[serde(default, skip_serializing_if = "Option::is_none")]
16203    pub x_val: Option<Box<AxisDataSource>>,
16204    #[cfg(feature = "dml-charts")]
16205    #[serde(rename = "yVal")]
16206    #[serde(default, skip_serializing_if = "Option::is_none")]
16207    pub y_val: Option<Box<NumericDataSource>>,
16208    #[cfg(feature = "dml-charts")]
16209    #[serde(rename = "smooth")]
16210    #[serde(default, skip_serializing_if = "Option::is_none")]
16211    pub smooth: Option<Box<CTBoolean>>,
16212    #[cfg(feature = "dml-charts")]
16213    #[serde(rename = "extLst")]
16214    #[serde(default, skip_serializing_if = "Option::is_none")]
16215    pub ext_lst: Option<Box<ChartExtensionList>>,
16216    /// Unknown child elements captured for roundtrip fidelity.
16217    #[cfg(feature = "extra-children")]
16218    #[serde(skip)]
16219    #[cfg(feature = "extra-children")]
16220    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16221}
16222
16223#[derive(Debug, Clone, Serialize, Deserialize)]
16224pub struct RadarSeries {
16225    #[cfg(feature = "dml-charts")]
16226    #[serde(rename = "idx")]
16227    pub idx: Box<CTUnsignedInt>,
16228    #[cfg(feature = "dml-charts")]
16229    #[serde(rename = "order")]
16230    pub order: Box<CTUnsignedInt>,
16231    #[cfg(feature = "dml-charts")]
16232    #[serde(rename = "tx")]
16233    #[serde(default, skip_serializing_if = "Option::is_none")]
16234    pub tx: Option<Box<SeriesText>>,
16235    #[cfg(feature = "dml-charts")]
16236    #[serde(rename = "spPr")]
16237    #[serde(default, skip_serializing_if = "Option::is_none")]
16238    pub sp_pr: Option<Box<CTShapeProperties>>,
16239    #[cfg(feature = "dml-charts")]
16240    #[serde(rename = "marker")]
16241    #[serde(default, skip_serializing_if = "Option::is_none")]
16242    pub marker: Option<Box<ChartMarker>>,
16243    #[cfg(feature = "dml-charts")]
16244    #[serde(rename = "dPt")]
16245    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16246    pub d_pt: Vec<DataPoint>,
16247    #[cfg(feature = "dml-charts")]
16248    #[serde(rename = "dLbls")]
16249    #[serde(default, skip_serializing_if = "Option::is_none")]
16250    pub d_lbls: Option<Box<DataLabels>>,
16251    #[cfg(feature = "dml-charts")]
16252    #[serde(rename = "cat")]
16253    #[serde(default, skip_serializing_if = "Option::is_none")]
16254    pub cat: Option<Box<AxisDataSource>>,
16255    #[cfg(feature = "dml-charts")]
16256    #[serde(rename = "val")]
16257    #[serde(default, skip_serializing_if = "Option::is_none")]
16258    pub value: Option<Box<NumericDataSource>>,
16259    #[cfg(feature = "dml-charts")]
16260    #[serde(rename = "extLst")]
16261    #[serde(default, skip_serializing_if = "Option::is_none")]
16262    pub ext_lst: Option<Box<ChartExtensionList>>,
16263    /// Unknown child elements captured for roundtrip fidelity.
16264    #[cfg(feature = "extra-children")]
16265    #[serde(skip)]
16266    #[cfg(feature = "extra-children")]
16267    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16268}
16269
16270#[derive(Debug, Clone, Serialize, Deserialize)]
16271pub struct BarSeries {
16272    #[cfg(feature = "dml-charts")]
16273    #[serde(rename = "idx")]
16274    pub idx: Box<CTUnsignedInt>,
16275    #[cfg(feature = "dml-charts")]
16276    #[serde(rename = "order")]
16277    pub order: Box<CTUnsignedInt>,
16278    #[cfg(feature = "dml-charts")]
16279    #[serde(rename = "tx")]
16280    #[serde(default, skip_serializing_if = "Option::is_none")]
16281    pub tx: Option<Box<SeriesText>>,
16282    #[cfg(feature = "dml-charts")]
16283    #[serde(rename = "spPr")]
16284    #[serde(default, skip_serializing_if = "Option::is_none")]
16285    pub sp_pr: Option<Box<CTShapeProperties>>,
16286    #[cfg(feature = "dml-charts")]
16287    #[serde(rename = "invertIfNegative")]
16288    #[serde(default, skip_serializing_if = "Option::is_none")]
16289    pub invert_if_negative: Option<Box<CTBoolean>>,
16290    #[cfg(feature = "dml-charts")]
16291    #[serde(rename = "pictureOptions")]
16292    #[serde(default, skip_serializing_if = "Option::is_none")]
16293    pub picture_options: Option<Box<PictureOptions>>,
16294    #[cfg(feature = "dml-charts")]
16295    #[serde(rename = "dPt")]
16296    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16297    pub d_pt: Vec<DataPoint>,
16298    #[cfg(feature = "dml-charts")]
16299    #[serde(rename = "dLbls")]
16300    #[serde(default, skip_serializing_if = "Option::is_none")]
16301    pub d_lbls: Option<Box<DataLabels>>,
16302    #[cfg(feature = "dml-charts")]
16303    #[serde(rename = "trendline")]
16304    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16305    pub trendline: Vec<Trendline>,
16306    #[cfg(feature = "dml-charts")]
16307    #[serde(rename = "errBars")]
16308    #[serde(default, skip_serializing_if = "Option::is_none")]
16309    pub err_bars: Option<Box<ErrorBars>>,
16310    #[cfg(feature = "dml-charts")]
16311    #[serde(rename = "cat")]
16312    #[serde(default, skip_serializing_if = "Option::is_none")]
16313    pub cat: Option<Box<AxisDataSource>>,
16314    #[cfg(feature = "dml-charts")]
16315    #[serde(rename = "val")]
16316    #[serde(default, skip_serializing_if = "Option::is_none")]
16317    pub value: Option<Box<NumericDataSource>>,
16318    #[cfg(feature = "dml-charts")]
16319    #[serde(rename = "shape")]
16320    #[serde(default, skip_serializing_if = "Option::is_none")]
16321    pub shape: Option<Box<DiagramShape>>,
16322    #[cfg(feature = "dml-charts")]
16323    #[serde(rename = "extLst")]
16324    #[serde(default, skip_serializing_if = "Option::is_none")]
16325    pub ext_lst: Option<Box<ChartExtensionList>>,
16326    /// Unknown child elements captured for roundtrip fidelity.
16327    #[cfg(feature = "extra-children")]
16328    #[serde(skip)]
16329    #[cfg(feature = "extra-children")]
16330    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16331}
16332
16333#[derive(Debug, Clone, Serialize, Deserialize)]
16334pub struct AreaSeries {
16335    #[cfg(feature = "dml-charts")]
16336    #[serde(rename = "idx")]
16337    pub idx: Box<CTUnsignedInt>,
16338    #[cfg(feature = "dml-charts")]
16339    #[serde(rename = "order")]
16340    pub order: Box<CTUnsignedInt>,
16341    #[cfg(feature = "dml-charts")]
16342    #[serde(rename = "tx")]
16343    #[serde(default, skip_serializing_if = "Option::is_none")]
16344    pub tx: Option<Box<SeriesText>>,
16345    #[cfg(feature = "dml-charts")]
16346    #[serde(rename = "spPr")]
16347    #[serde(default, skip_serializing_if = "Option::is_none")]
16348    pub sp_pr: Option<Box<CTShapeProperties>>,
16349    #[cfg(feature = "dml-charts")]
16350    #[serde(rename = "pictureOptions")]
16351    #[serde(default, skip_serializing_if = "Option::is_none")]
16352    pub picture_options: Option<Box<PictureOptions>>,
16353    #[cfg(feature = "dml-charts")]
16354    #[serde(rename = "dPt")]
16355    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16356    pub d_pt: Vec<DataPoint>,
16357    #[cfg(feature = "dml-charts")]
16358    #[serde(rename = "dLbls")]
16359    #[serde(default, skip_serializing_if = "Option::is_none")]
16360    pub d_lbls: Option<Box<DataLabels>>,
16361    #[cfg(feature = "dml-charts")]
16362    #[serde(rename = "trendline")]
16363    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16364    pub trendline: Vec<Trendline>,
16365    #[cfg(feature = "dml-charts")]
16366    #[serde(rename = "errBars")]
16367    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16368    pub err_bars: Vec<ErrorBars>,
16369    #[cfg(feature = "dml-charts")]
16370    #[serde(rename = "cat")]
16371    #[serde(default, skip_serializing_if = "Option::is_none")]
16372    pub cat: Option<Box<AxisDataSource>>,
16373    #[cfg(feature = "dml-charts")]
16374    #[serde(rename = "val")]
16375    #[serde(default, skip_serializing_if = "Option::is_none")]
16376    pub value: Option<Box<NumericDataSource>>,
16377    #[cfg(feature = "dml-charts")]
16378    #[serde(rename = "extLst")]
16379    #[serde(default, skip_serializing_if = "Option::is_none")]
16380    pub ext_lst: Option<Box<ChartExtensionList>>,
16381    /// Unknown child elements captured for roundtrip fidelity.
16382    #[cfg(feature = "extra-children")]
16383    #[serde(skip)]
16384    #[cfg(feature = "extra-children")]
16385    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16386}
16387
16388#[derive(Debug, Clone, Serialize, Deserialize)]
16389pub struct PieSeries {
16390    #[cfg(feature = "dml-charts")]
16391    #[serde(rename = "idx")]
16392    pub idx: Box<CTUnsignedInt>,
16393    #[cfg(feature = "dml-charts")]
16394    #[serde(rename = "order")]
16395    pub order: Box<CTUnsignedInt>,
16396    #[cfg(feature = "dml-charts")]
16397    #[serde(rename = "tx")]
16398    #[serde(default, skip_serializing_if = "Option::is_none")]
16399    pub tx: Option<Box<SeriesText>>,
16400    #[cfg(feature = "dml-charts")]
16401    #[serde(rename = "spPr")]
16402    #[serde(default, skip_serializing_if = "Option::is_none")]
16403    pub sp_pr: Option<Box<CTShapeProperties>>,
16404    #[cfg(feature = "dml-charts")]
16405    #[serde(rename = "explosion")]
16406    #[serde(default, skip_serializing_if = "Option::is_none")]
16407    pub explosion: Option<Box<CTUnsignedInt>>,
16408    #[cfg(feature = "dml-charts")]
16409    #[serde(rename = "dPt")]
16410    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16411    pub d_pt: Vec<DataPoint>,
16412    #[cfg(feature = "dml-charts")]
16413    #[serde(rename = "dLbls")]
16414    #[serde(default, skip_serializing_if = "Option::is_none")]
16415    pub d_lbls: Option<Box<DataLabels>>,
16416    #[cfg(feature = "dml-charts")]
16417    #[serde(rename = "cat")]
16418    #[serde(default, skip_serializing_if = "Option::is_none")]
16419    pub cat: Option<Box<AxisDataSource>>,
16420    #[cfg(feature = "dml-charts")]
16421    #[serde(rename = "val")]
16422    #[serde(default, skip_serializing_if = "Option::is_none")]
16423    pub value: Option<Box<NumericDataSource>>,
16424    #[cfg(feature = "dml-charts")]
16425    #[serde(rename = "extLst")]
16426    #[serde(default, skip_serializing_if = "Option::is_none")]
16427    pub ext_lst: Option<Box<ChartExtensionList>>,
16428    /// Unknown child elements captured for roundtrip fidelity.
16429    #[cfg(feature = "extra-children")]
16430    #[serde(skip)]
16431    #[cfg(feature = "extra-children")]
16432    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16433}
16434
16435#[derive(Debug, Clone, Serialize, Deserialize)]
16436pub struct BubbleSeries {
16437    #[cfg(feature = "dml-charts")]
16438    #[serde(rename = "idx")]
16439    pub idx: Box<CTUnsignedInt>,
16440    #[cfg(feature = "dml-charts")]
16441    #[serde(rename = "order")]
16442    pub order: Box<CTUnsignedInt>,
16443    #[cfg(feature = "dml-charts")]
16444    #[serde(rename = "tx")]
16445    #[serde(default, skip_serializing_if = "Option::is_none")]
16446    pub tx: Option<Box<SeriesText>>,
16447    #[cfg(feature = "dml-charts")]
16448    #[serde(rename = "spPr")]
16449    #[serde(default, skip_serializing_if = "Option::is_none")]
16450    pub sp_pr: Option<Box<CTShapeProperties>>,
16451    #[cfg(feature = "dml-charts")]
16452    #[serde(rename = "invertIfNegative")]
16453    #[serde(default, skip_serializing_if = "Option::is_none")]
16454    pub invert_if_negative: Option<Box<CTBoolean>>,
16455    #[cfg(feature = "dml-charts")]
16456    #[serde(rename = "dPt")]
16457    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16458    pub d_pt: Vec<DataPoint>,
16459    #[cfg(feature = "dml-charts")]
16460    #[serde(rename = "dLbls")]
16461    #[serde(default, skip_serializing_if = "Option::is_none")]
16462    pub d_lbls: Option<Box<DataLabels>>,
16463    #[cfg(feature = "dml-charts")]
16464    #[serde(rename = "trendline")]
16465    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16466    pub trendline: Vec<Trendline>,
16467    #[cfg(feature = "dml-charts")]
16468    #[serde(rename = "errBars")]
16469    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16470    pub err_bars: Vec<ErrorBars>,
16471    #[cfg(feature = "dml-charts")]
16472    #[serde(rename = "xVal")]
16473    #[serde(default, skip_serializing_if = "Option::is_none")]
16474    pub x_val: Option<Box<AxisDataSource>>,
16475    #[cfg(feature = "dml-charts")]
16476    #[serde(rename = "yVal")]
16477    #[serde(default, skip_serializing_if = "Option::is_none")]
16478    pub y_val: Option<Box<NumericDataSource>>,
16479    #[cfg(feature = "dml-charts")]
16480    #[serde(rename = "bubbleSize")]
16481    #[serde(default, skip_serializing_if = "Option::is_none")]
16482    pub bubble_size: Option<Box<NumericDataSource>>,
16483    #[cfg(feature = "dml-charts")]
16484    #[serde(rename = "bubble3D")]
16485    #[serde(default, skip_serializing_if = "Option::is_none")]
16486    pub bubble3_d: Option<Box<CTBoolean>>,
16487    #[cfg(feature = "dml-charts")]
16488    #[serde(rename = "extLst")]
16489    #[serde(default, skip_serializing_if = "Option::is_none")]
16490    pub ext_lst: Option<Box<ChartExtensionList>>,
16491    /// Unknown child elements captured for roundtrip fidelity.
16492    #[cfg(feature = "extra-children")]
16493    #[serde(skip)]
16494    #[cfg(feature = "extra-children")]
16495    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16496}
16497
16498#[derive(Debug, Clone, Serialize, Deserialize)]
16499pub struct SurfaceSeries {
16500    #[cfg(feature = "dml-charts")]
16501    #[serde(rename = "idx")]
16502    pub idx: Box<CTUnsignedInt>,
16503    #[cfg(feature = "dml-charts")]
16504    #[serde(rename = "order")]
16505    pub order: Box<CTUnsignedInt>,
16506    #[cfg(feature = "dml-charts")]
16507    #[serde(rename = "tx")]
16508    #[serde(default, skip_serializing_if = "Option::is_none")]
16509    pub tx: Option<Box<SeriesText>>,
16510    #[cfg(feature = "dml-charts")]
16511    #[serde(rename = "spPr")]
16512    #[serde(default, skip_serializing_if = "Option::is_none")]
16513    pub sp_pr: Option<Box<CTShapeProperties>>,
16514    #[cfg(feature = "dml-charts")]
16515    #[serde(rename = "cat")]
16516    #[serde(default, skip_serializing_if = "Option::is_none")]
16517    pub cat: Option<Box<AxisDataSource>>,
16518    #[cfg(feature = "dml-charts")]
16519    #[serde(rename = "val")]
16520    #[serde(default, skip_serializing_if = "Option::is_none")]
16521    pub value: Option<Box<NumericDataSource>>,
16522    #[cfg(feature = "dml-charts")]
16523    #[serde(rename = "extLst")]
16524    #[serde(default, skip_serializing_if = "Option::is_none")]
16525    pub ext_lst: Option<Box<ChartExtensionList>>,
16526    /// Unknown child elements captured for roundtrip fidelity.
16527    #[cfg(feature = "extra-children")]
16528    #[serde(skip)]
16529    #[cfg(feature = "extra-children")]
16530    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16531}
16532
16533#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16534pub struct ChartGrouping {
16535    #[cfg(feature = "dml-charts")]
16536    #[serde(rename = "@val")]
16537    #[serde(default, skip_serializing_if = "Option::is_none")]
16538    pub value: Option<GroupingType>,
16539    /// Unknown attributes captured for roundtrip fidelity.
16540    #[cfg(feature = "extra-attrs")]
16541    #[serde(skip)]
16542    #[cfg(feature = "extra-attrs")]
16543    #[serde(default)]
16544    #[cfg(feature = "extra-attrs")]
16545    pub extra_attrs: std::collections::HashMap<String, String>,
16546}
16547
16548#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16549pub struct ChartLines {
16550    #[cfg(feature = "dml-charts")]
16551    #[serde(rename = "spPr")]
16552    #[serde(default, skip_serializing_if = "Option::is_none")]
16553    pub sp_pr: Option<Box<CTShapeProperties>>,
16554    /// Unknown child elements captured for roundtrip fidelity.
16555    #[cfg(feature = "extra-children")]
16556    #[serde(skip)]
16557    #[cfg(feature = "extra-children")]
16558    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16559}
16560
16561#[derive(Debug, Clone, Serialize, Deserialize)]
16562pub struct EGLineChartShared {
16563    #[serde(rename = "grouping")]
16564    pub grouping: Box<ChartGrouping>,
16565    #[serde(rename = "varyColors")]
16566    #[serde(default, skip_serializing_if = "Option::is_none")]
16567    pub vary_colors: Option<Box<CTBoolean>>,
16568    #[serde(rename = "ser")]
16569    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16570    pub ser: Vec<LineSeries>,
16571    #[serde(rename = "dLbls")]
16572    #[serde(default, skip_serializing_if = "Option::is_none")]
16573    pub d_lbls: Option<Box<DataLabels>>,
16574    #[serde(rename = "dropLines")]
16575    #[serde(default, skip_serializing_if = "Option::is_none")]
16576    pub drop_lines: Option<Box<ChartLines>>,
16577    /// Unknown child elements captured for roundtrip fidelity.
16578    #[cfg(feature = "extra-children")]
16579    #[serde(skip)]
16580    #[cfg(feature = "extra-children")]
16581    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16582}
16583
16584#[derive(Debug, Clone, Serialize, Deserialize)]
16585pub struct LineChart {
16586    #[cfg(feature = "dml-charts")]
16587    #[serde(rename = "grouping")]
16588    pub grouping: Box<ChartGrouping>,
16589    #[cfg(feature = "dml-charts")]
16590    #[serde(rename = "varyColors")]
16591    #[serde(default, skip_serializing_if = "Option::is_none")]
16592    pub vary_colors: Option<Box<CTBoolean>>,
16593    #[cfg(feature = "dml-charts")]
16594    #[serde(rename = "ser")]
16595    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16596    pub ser: Vec<LineSeries>,
16597    #[cfg(feature = "dml-charts")]
16598    #[serde(rename = "dLbls")]
16599    #[serde(default, skip_serializing_if = "Option::is_none")]
16600    pub d_lbls: Option<Box<DataLabels>>,
16601    #[cfg(feature = "dml-charts")]
16602    #[serde(rename = "dropLines")]
16603    #[serde(default, skip_serializing_if = "Option::is_none")]
16604    pub drop_lines: Option<Box<ChartLines>>,
16605    #[cfg(feature = "dml-charts")]
16606    #[serde(rename = "hiLowLines")]
16607    #[serde(default, skip_serializing_if = "Option::is_none")]
16608    pub hi_low_lines: Option<Box<ChartLines>>,
16609    #[cfg(feature = "dml-charts")]
16610    #[serde(rename = "upDownBars")]
16611    #[serde(default, skip_serializing_if = "Option::is_none")]
16612    pub up_down_bars: Option<Box<UpDownBars>>,
16613    #[cfg(feature = "dml-charts")]
16614    #[serde(rename = "marker")]
16615    #[serde(default, skip_serializing_if = "Option::is_none")]
16616    pub marker: Option<Box<CTBoolean>>,
16617    #[cfg(feature = "dml-charts")]
16618    #[serde(rename = "smooth")]
16619    #[serde(default, skip_serializing_if = "Option::is_none")]
16620    pub smooth: Option<Box<CTBoolean>>,
16621    #[cfg(feature = "dml-charts")]
16622    #[serde(rename = "axId")]
16623    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16624    pub ax_id: Vec<CTUnsignedInt>,
16625    #[cfg(feature = "dml-charts")]
16626    #[serde(rename = "extLst")]
16627    #[serde(default, skip_serializing_if = "Option::is_none")]
16628    pub ext_lst: Option<Box<ChartExtensionList>>,
16629    /// Unknown child elements captured for roundtrip fidelity.
16630    #[cfg(feature = "extra-children")]
16631    #[serde(skip)]
16632    #[cfg(feature = "extra-children")]
16633    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16634}
16635
16636#[derive(Debug, Clone, Serialize, Deserialize)]
16637pub struct Line3DChart {
16638    #[cfg(feature = "dml-charts")]
16639    #[serde(rename = "grouping")]
16640    pub grouping: Box<ChartGrouping>,
16641    #[cfg(feature = "dml-charts")]
16642    #[serde(rename = "varyColors")]
16643    #[serde(default, skip_serializing_if = "Option::is_none")]
16644    pub vary_colors: Option<Box<CTBoolean>>,
16645    #[cfg(feature = "dml-charts")]
16646    #[serde(rename = "ser")]
16647    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16648    pub ser: Vec<LineSeries>,
16649    #[cfg(feature = "dml-charts")]
16650    #[serde(rename = "dLbls")]
16651    #[serde(default, skip_serializing_if = "Option::is_none")]
16652    pub d_lbls: Option<Box<DataLabels>>,
16653    #[cfg(feature = "dml-charts")]
16654    #[serde(rename = "dropLines")]
16655    #[serde(default, skip_serializing_if = "Option::is_none")]
16656    pub drop_lines: Option<Box<ChartLines>>,
16657    #[cfg(feature = "dml-charts")]
16658    #[serde(rename = "gapDepth")]
16659    #[serde(default, skip_serializing_if = "Option::is_none")]
16660    pub gap_depth: Option<Box<GapAmount>>,
16661    #[cfg(feature = "dml-charts")]
16662    #[serde(rename = "axId")]
16663    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16664    pub ax_id: Vec<CTUnsignedInt>,
16665    #[cfg(feature = "dml-charts")]
16666    #[serde(rename = "extLst")]
16667    #[serde(default, skip_serializing_if = "Option::is_none")]
16668    pub ext_lst: Option<Box<ChartExtensionList>>,
16669    /// Unknown child elements captured for roundtrip fidelity.
16670    #[cfg(feature = "extra-children")]
16671    #[serde(skip)]
16672    #[cfg(feature = "extra-children")]
16673    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16674}
16675
16676#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16677pub struct StockChart {
16678    #[cfg(feature = "dml-charts")]
16679    #[serde(rename = "ser")]
16680    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16681    pub ser: Vec<LineSeries>,
16682    #[cfg(feature = "dml-charts")]
16683    #[serde(rename = "dLbls")]
16684    #[serde(default, skip_serializing_if = "Option::is_none")]
16685    pub d_lbls: Option<Box<DataLabels>>,
16686    #[cfg(feature = "dml-charts")]
16687    #[serde(rename = "dropLines")]
16688    #[serde(default, skip_serializing_if = "Option::is_none")]
16689    pub drop_lines: Option<Box<ChartLines>>,
16690    #[cfg(feature = "dml-charts")]
16691    #[serde(rename = "hiLowLines")]
16692    #[serde(default, skip_serializing_if = "Option::is_none")]
16693    pub hi_low_lines: Option<Box<ChartLines>>,
16694    #[cfg(feature = "dml-charts")]
16695    #[serde(rename = "upDownBars")]
16696    #[serde(default, skip_serializing_if = "Option::is_none")]
16697    pub up_down_bars: Option<Box<UpDownBars>>,
16698    #[cfg(feature = "dml-charts")]
16699    #[serde(rename = "axId")]
16700    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16701    pub ax_id: Vec<CTUnsignedInt>,
16702    #[cfg(feature = "dml-charts")]
16703    #[serde(rename = "extLst")]
16704    #[serde(default, skip_serializing_if = "Option::is_none")]
16705    pub ext_lst: Option<Box<ChartExtensionList>>,
16706    /// Unknown child elements captured for roundtrip fidelity.
16707    #[cfg(feature = "extra-children")]
16708    #[serde(skip)]
16709    #[cfg(feature = "extra-children")]
16710    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16711}
16712
16713#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16714pub struct ScatterStyle {
16715    #[cfg(feature = "dml-charts")]
16716    #[serde(rename = "@val")]
16717    #[serde(default, skip_serializing_if = "Option::is_none")]
16718    pub value: Option<ScatterStyleType>,
16719    /// Unknown attributes captured for roundtrip fidelity.
16720    #[cfg(feature = "extra-attrs")]
16721    #[serde(skip)]
16722    #[cfg(feature = "extra-attrs")]
16723    #[serde(default)]
16724    #[cfg(feature = "extra-attrs")]
16725    pub extra_attrs: std::collections::HashMap<String, String>,
16726}
16727
16728#[derive(Debug, Clone, Serialize, Deserialize)]
16729pub struct ScatterChart {
16730    #[cfg(feature = "dml-charts")]
16731    #[serde(rename = "scatterStyle")]
16732    pub scatter_style: Box<ScatterStyle>,
16733    #[cfg(feature = "dml-charts")]
16734    #[serde(rename = "varyColors")]
16735    #[serde(default, skip_serializing_if = "Option::is_none")]
16736    pub vary_colors: Option<Box<CTBoolean>>,
16737    #[cfg(feature = "dml-charts")]
16738    #[serde(rename = "ser")]
16739    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16740    pub ser: Vec<ScatterSeries>,
16741    #[cfg(feature = "dml-charts")]
16742    #[serde(rename = "dLbls")]
16743    #[serde(default, skip_serializing_if = "Option::is_none")]
16744    pub d_lbls: Option<Box<DataLabels>>,
16745    #[cfg(feature = "dml-charts")]
16746    #[serde(rename = "axId")]
16747    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16748    pub ax_id: Vec<CTUnsignedInt>,
16749    #[cfg(feature = "dml-charts")]
16750    #[serde(rename = "extLst")]
16751    #[serde(default, skip_serializing_if = "Option::is_none")]
16752    pub ext_lst: Option<Box<ChartExtensionList>>,
16753    /// Unknown child elements captured for roundtrip fidelity.
16754    #[cfg(feature = "extra-children")]
16755    #[serde(skip)]
16756    #[cfg(feature = "extra-children")]
16757    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16758}
16759
16760#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16761pub struct RadarStyle {
16762    #[cfg(feature = "dml-charts")]
16763    #[serde(rename = "@val")]
16764    #[serde(default, skip_serializing_if = "Option::is_none")]
16765    pub value: Option<RadarStyleType>,
16766    /// Unknown attributes captured for roundtrip fidelity.
16767    #[cfg(feature = "extra-attrs")]
16768    #[serde(skip)]
16769    #[cfg(feature = "extra-attrs")]
16770    #[serde(default)]
16771    #[cfg(feature = "extra-attrs")]
16772    pub extra_attrs: std::collections::HashMap<String, String>,
16773}
16774
16775#[derive(Debug, Clone, Serialize, Deserialize)]
16776pub struct RadarChart {
16777    #[cfg(feature = "dml-charts")]
16778    #[serde(rename = "radarStyle")]
16779    pub radar_style: Box<RadarStyle>,
16780    #[cfg(feature = "dml-charts")]
16781    #[serde(rename = "varyColors")]
16782    #[serde(default, skip_serializing_if = "Option::is_none")]
16783    pub vary_colors: Option<Box<CTBoolean>>,
16784    #[cfg(feature = "dml-charts")]
16785    #[serde(rename = "ser")]
16786    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16787    pub ser: Vec<RadarSeries>,
16788    #[cfg(feature = "dml-charts")]
16789    #[serde(rename = "dLbls")]
16790    #[serde(default, skip_serializing_if = "Option::is_none")]
16791    pub d_lbls: Option<Box<DataLabels>>,
16792    #[cfg(feature = "dml-charts")]
16793    #[serde(rename = "axId")]
16794    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16795    pub ax_id: Vec<CTUnsignedInt>,
16796    #[cfg(feature = "dml-charts")]
16797    #[serde(rename = "extLst")]
16798    #[serde(default, skip_serializing_if = "Option::is_none")]
16799    pub ext_lst: Option<Box<ChartExtensionList>>,
16800    /// Unknown child elements captured for roundtrip fidelity.
16801    #[cfg(feature = "extra-children")]
16802    #[serde(skip)]
16803    #[cfg(feature = "extra-children")]
16804    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16805}
16806
16807#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16808pub struct BarGrouping {
16809    #[cfg(feature = "dml-charts")]
16810    #[serde(rename = "@val")]
16811    #[serde(default, skip_serializing_if = "Option::is_none")]
16812    pub value: Option<BarGroupingType>,
16813    /// Unknown attributes captured for roundtrip fidelity.
16814    #[cfg(feature = "extra-attrs")]
16815    #[serde(skip)]
16816    #[cfg(feature = "extra-attrs")]
16817    #[serde(default)]
16818    #[cfg(feature = "extra-attrs")]
16819    pub extra_attrs: std::collections::HashMap<String, String>,
16820}
16821
16822#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16823pub struct BarDirection {
16824    #[cfg(feature = "dml-charts")]
16825    #[serde(rename = "@val")]
16826    #[serde(default, skip_serializing_if = "Option::is_none")]
16827    pub value: Option<BarDirectionType>,
16828    /// Unknown attributes captured for roundtrip fidelity.
16829    #[cfg(feature = "extra-attrs")]
16830    #[serde(skip)]
16831    #[cfg(feature = "extra-attrs")]
16832    #[serde(default)]
16833    #[cfg(feature = "extra-attrs")]
16834    pub extra_attrs: std::collections::HashMap<String, String>,
16835}
16836
16837#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16838pub struct DiagramShape {
16839    #[cfg(feature = "dml-diagrams")]
16840    #[serde(rename = "@val")]
16841    #[serde(default, skip_serializing_if = "Option::is_none")]
16842    pub value: Option<BarShapeType>,
16843    /// Unknown attributes captured for roundtrip fidelity.
16844    #[cfg(feature = "extra-attrs")]
16845    #[serde(skip)]
16846    #[cfg(feature = "extra-attrs")]
16847    #[serde(default)]
16848    #[cfg(feature = "extra-attrs")]
16849    pub extra_attrs: std::collections::HashMap<String, String>,
16850}
16851
16852#[derive(Debug, Clone, Serialize, Deserialize)]
16853pub struct EGBarChartShared {
16854    #[serde(rename = "barDir")]
16855    pub bar_dir: Box<BarDirection>,
16856    #[serde(rename = "grouping")]
16857    #[serde(default, skip_serializing_if = "Option::is_none")]
16858    pub grouping: Option<Box<BarGrouping>>,
16859    #[serde(rename = "varyColors")]
16860    #[serde(default, skip_serializing_if = "Option::is_none")]
16861    pub vary_colors: Option<Box<CTBoolean>>,
16862    #[serde(rename = "ser")]
16863    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16864    pub ser: Vec<BarSeries>,
16865    #[serde(rename = "dLbls")]
16866    #[serde(default, skip_serializing_if = "Option::is_none")]
16867    pub d_lbls: Option<Box<DataLabels>>,
16868    /// Unknown child elements captured for roundtrip fidelity.
16869    #[cfg(feature = "extra-children")]
16870    #[serde(skip)]
16871    #[cfg(feature = "extra-children")]
16872    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16873}
16874
16875#[derive(Debug, Clone, Serialize, Deserialize)]
16876pub struct BarChart {
16877    #[cfg(feature = "dml-charts")]
16878    #[serde(rename = "barDir")]
16879    pub bar_dir: Box<BarDirection>,
16880    #[cfg(feature = "dml-charts")]
16881    #[serde(rename = "grouping")]
16882    #[serde(default, skip_serializing_if = "Option::is_none")]
16883    pub grouping: Option<Box<BarGrouping>>,
16884    #[cfg(feature = "dml-charts")]
16885    #[serde(rename = "varyColors")]
16886    #[serde(default, skip_serializing_if = "Option::is_none")]
16887    pub vary_colors: Option<Box<CTBoolean>>,
16888    #[cfg(feature = "dml-charts")]
16889    #[serde(rename = "ser")]
16890    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16891    pub ser: Vec<BarSeries>,
16892    #[cfg(feature = "dml-charts")]
16893    #[serde(rename = "dLbls")]
16894    #[serde(default, skip_serializing_if = "Option::is_none")]
16895    pub d_lbls: Option<Box<DataLabels>>,
16896    #[cfg(feature = "dml-charts")]
16897    #[serde(rename = "gapWidth")]
16898    #[serde(default, skip_serializing_if = "Option::is_none")]
16899    pub gap_width: Option<Box<GapAmount>>,
16900    #[cfg(feature = "dml-charts")]
16901    #[serde(rename = "overlap")]
16902    #[serde(default, skip_serializing_if = "Option::is_none")]
16903    pub overlap: Option<Box<OverlapAmount>>,
16904    #[cfg(feature = "dml-charts")]
16905    #[serde(rename = "serLines")]
16906    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16907    pub ser_lines: Vec<ChartLines>,
16908    #[cfg(feature = "dml-charts")]
16909    #[serde(rename = "axId")]
16910    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16911    pub ax_id: Vec<CTUnsignedInt>,
16912    #[cfg(feature = "dml-charts")]
16913    #[serde(rename = "extLst")]
16914    #[serde(default, skip_serializing_if = "Option::is_none")]
16915    pub ext_lst: Option<Box<ChartExtensionList>>,
16916    /// Unknown child elements captured for roundtrip fidelity.
16917    #[cfg(feature = "extra-children")]
16918    #[serde(skip)]
16919    #[cfg(feature = "extra-children")]
16920    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16921}
16922
16923#[derive(Debug, Clone, Serialize, Deserialize)]
16924pub struct Bar3DChart {
16925    #[cfg(feature = "dml-charts")]
16926    #[serde(rename = "barDir")]
16927    pub bar_dir: Box<BarDirection>,
16928    #[cfg(feature = "dml-charts")]
16929    #[serde(rename = "grouping")]
16930    #[serde(default, skip_serializing_if = "Option::is_none")]
16931    pub grouping: Option<Box<BarGrouping>>,
16932    #[cfg(feature = "dml-charts")]
16933    #[serde(rename = "varyColors")]
16934    #[serde(default, skip_serializing_if = "Option::is_none")]
16935    pub vary_colors: Option<Box<CTBoolean>>,
16936    #[cfg(feature = "dml-charts")]
16937    #[serde(rename = "ser")]
16938    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16939    pub ser: Vec<BarSeries>,
16940    #[cfg(feature = "dml-charts")]
16941    #[serde(rename = "dLbls")]
16942    #[serde(default, skip_serializing_if = "Option::is_none")]
16943    pub d_lbls: Option<Box<DataLabels>>,
16944    #[cfg(feature = "dml-charts")]
16945    #[serde(rename = "gapWidth")]
16946    #[serde(default, skip_serializing_if = "Option::is_none")]
16947    pub gap_width: Option<Box<GapAmount>>,
16948    #[cfg(feature = "dml-charts")]
16949    #[serde(rename = "gapDepth")]
16950    #[serde(default, skip_serializing_if = "Option::is_none")]
16951    pub gap_depth: Option<Box<GapAmount>>,
16952    #[cfg(feature = "dml-charts")]
16953    #[serde(rename = "shape")]
16954    #[serde(default, skip_serializing_if = "Option::is_none")]
16955    pub shape: Option<Box<DiagramShape>>,
16956    #[cfg(feature = "dml-charts")]
16957    #[serde(rename = "axId")]
16958    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16959    pub ax_id: Vec<CTUnsignedInt>,
16960    #[cfg(feature = "dml-charts")]
16961    #[serde(rename = "extLst")]
16962    #[serde(default, skip_serializing_if = "Option::is_none")]
16963    pub ext_lst: Option<Box<ChartExtensionList>>,
16964    /// Unknown child elements captured for roundtrip fidelity.
16965    #[cfg(feature = "extra-children")]
16966    #[serde(skip)]
16967    #[cfg(feature = "extra-children")]
16968    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16969}
16970
16971#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16972pub struct EGAreaChartShared {
16973    #[serde(rename = "grouping")]
16974    #[serde(default, skip_serializing_if = "Option::is_none")]
16975    pub grouping: Option<Box<ChartGrouping>>,
16976    #[serde(rename = "varyColors")]
16977    #[serde(default, skip_serializing_if = "Option::is_none")]
16978    pub vary_colors: Option<Box<CTBoolean>>,
16979    #[serde(rename = "ser")]
16980    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16981    pub ser: Vec<AreaSeries>,
16982    #[serde(rename = "dLbls")]
16983    #[serde(default, skip_serializing_if = "Option::is_none")]
16984    pub d_lbls: Option<Box<DataLabels>>,
16985    #[serde(rename = "dropLines")]
16986    #[serde(default, skip_serializing_if = "Option::is_none")]
16987    pub drop_lines: Option<Box<ChartLines>>,
16988    /// Unknown child elements captured for roundtrip fidelity.
16989    #[cfg(feature = "extra-children")]
16990    #[serde(skip)]
16991    #[cfg(feature = "extra-children")]
16992    pub extra_children: Vec<ooxml_xml::PositionedNode>,
16993}
16994
16995#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16996pub struct AreaChart {
16997    #[cfg(feature = "dml-charts")]
16998    #[serde(rename = "grouping")]
16999    #[serde(default, skip_serializing_if = "Option::is_none")]
17000    pub grouping: Option<Box<ChartGrouping>>,
17001    #[cfg(feature = "dml-charts")]
17002    #[serde(rename = "varyColors")]
17003    #[serde(default, skip_serializing_if = "Option::is_none")]
17004    pub vary_colors: Option<Box<CTBoolean>>,
17005    #[cfg(feature = "dml-charts")]
17006    #[serde(rename = "ser")]
17007    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17008    pub ser: Vec<AreaSeries>,
17009    #[cfg(feature = "dml-charts")]
17010    #[serde(rename = "dLbls")]
17011    #[serde(default, skip_serializing_if = "Option::is_none")]
17012    pub d_lbls: Option<Box<DataLabels>>,
17013    #[cfg(feature = "dml-charts")]
17014    #[serde(rename = "dropLines")]
17015    #[serde(default, skip_serializing_if = "Option::is_none")]
17016    pub drop_lines: Option<Box<ChartLines>>,
17017    #[cfg(feature = "dml-charts")]
17018    #[serde(rename = "axId")]
17019    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17020    pub ax_id: Vec<CTUnsignedInt>,
17021    #[cfg(feature = "dml-charts")]
17022    #[serde(rename = "extLst")]
17023    #[serde(default, skip_serializing_if = "Option::is_none")]
17024    pub ext_lst: Option<Box<ChartExtensionList>>,
17025    /// Unknown child elements captured for roundtrip fidelity.
17026    #[cfg(feature = "extra-children")]
17027    #[serde(skip)]
17028    #[cfg(feature = "extra-children")]
17029    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17030}
17031
17032#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17033pub struct Area3DChart {
17034    #[cfg(feature = "dml-charts")]
17035    #[serde(rename = "grouping")]
17036    #[serde(default, skip_serializing_if = "Option::is_none")]
17037    pub grouping: Option<Box<ChartGrouping>>,
17038    #[cfg(feature = "dml-charts")]
17039    #[serde(rename = "varyColors")]
17040    #[serde(default, skip_serializing_if = "Option::is_none")]
17041    pub vary_colors: Option<Box<CTBoolean>>,
17042    #[cfg(feature = "dml-charts")]
17043    #[serde(rename = "ser")]
17044    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17045    pub ser: Vec<AreaSeries>,
17046    #[cfg(feature = "dml-charts")]
17047    #[serde(rename = "dLbls")]
17048    #[serde(default, skip_serializing_if = "Option::is_none")]
17049    pub d_lbls: Option<Box<DataLabels>>,
17050    #[cfg(feature = "dml-charts")]
17051    #[serde(rename = "dropLines")]
17052    #[serde(default, skip_serializing_if = "Option::is_none")]
17053    pub drop_lines: Option<Box<ChartLines>>,
17054    #[cfg(feature = "dml-charts")]
17055    #[serde(rename = "gapDepth")]
17056    #[serde(default, skip_serializing_if = "Option::is_none")]
17057    pub gap_depth: Option<Box<GapAmount>>,
17058    #[cfg(feature = "dml-charts")]
17059    #[serde(rename = "axId")]
17060    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17061    pub ax_id: Vec<CTUnsignedInt>,
17062    #[cfg(feature = "dml-charts")]
17063    #[serde(rename = "extLst")]
17064    #[serde(default, skip_serializing_if = "Option::is_none")]
17065    pub ext_lst: Option<Box<ChartExtensionList>>,
17066    /// Unknown child elements captured for roundtrip fidelity.
17067    #[cfg(feature = "extra-children")]
17068    #[serde(skip)]
17069    #[cfg(feature = "extra-children")]
17070    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17071}
17072
17073#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17074pub struct EGPieChartShared {
17075    #[serde(rename = "varyColors")]
17076    #[serde(default, skip_serializing_if = "Option::is_none")]
17077    pub vary_colors: Option<Box<CTBoolean>>,
17078    #[serde(rename = "ser")]
17079    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17080    pub ser: Vec<PieSeries>,
17081    #[serde(rename = "dLbls")]
17082    #[serde(default, skip_serializing_if = "Option::is_none")]
17083    pub d_lbls: Option<Box<DataLabels>>,
17084    /// Unknown child elements captured for roundtrip fidelity.
17085    #[cfg(feature = "extra-children")]
17086    #[serde(skip)]
17087    #[cfg(feature = "extra-children")]
17088    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17089}
17090
17091#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17092pub struct PieChart {
17093    #[cfg(feature = "dml-charts")]
17094    #[serde(rename = "varyColors")]
17095    #[serde(default, skip_serializing_if = "Option::is_none")]
17096    pub vary_colors: Option<Box<CTBoolean>>,
17097    #[cfg(feature = "dml-charts")]
17098    #[serde(rename = "ser")]
17099    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17100    pub ser: Vec<PieSeries>,
17101    #[cfg(feature = "dml-charts")]
17102    #[serde(rename = "dLbls")]
17103    #[serde(default, skip_serializing_if = "Option::is_none")]
17104    pub d_lbls: Option<Box<DataLabels>>,
17105    #[cfg(feature = "dml-charts")]
17106    #[serde(rename = "firstSliceAng")]
17107    #[serde(default, skip_serializing_if = "Option::is_none")]
17108    pub first_slice_ang: Option<Box<FirstSliceAngle>>,
17109    #[cfg(feature = "dml-charts")]
17110    #[serde(rename = "extLst")]
17111    #[serde(default, skip_serializing_if = "Option::is_none")]
17112    pub ext_lst: Option<Box<ChartExtensionList>>,
17113    /// Unknown child elements captured for roundtrip fidelity.
17114    #[cfg(feature = "extra-children")]
17115    #[serde(skip)]
17116    #[cfg(feature = "extra-children")]
17117    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17118}
17119
17120#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17121pub struct Pie3DChart {
17122    #[cfg(feature = "dml-charts")]
17123    #[serde(rename = "varyColors")]
17124    #[serde(default, skip_serializing_if = "Option::is_none")]
17125    pub vary_colors: Option<Box<CTBoolean>>,
17126    #[cfg(feature = "dml-charts")]
17127    #[serde(rename = "ser")]
17128    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17129    pub ser: Vec<PieSeries>,
17130    #[cfg(feature = "dml-charts")]
17131    #[serde(rename = "dLbls")]
17132    #[serde(default, skip_serializing_if = "Option::is_none")]
17133    pub d_lbls: Option<Box<DataLabels>>,
17134    #[cfg(feature = "dml-charts")]
17135    #[serde(rename = "extLst")]
17136    #[serde(default, skip_serializing_if = "Option::is_none")]
17137    pub ext_lst: Option<Box<ChartExtensionList>>,
17138    /// Unknown child elements captured for roundtrip fidelity.
17139    #[cfg(feature = "extra-children")]
17140    #[serde(skip)]
17141    #[cfg(feature = "extra-children")]
17142    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17143}
17144
17145#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17146pub struct DoughnutChart {
17147    #[cfg(feature = "dml-charts")]
17148    #[serde(rename = "varyColors")]
17149    #[serde(default, skip_serializing_if = "Option::is_none")]
17150    pub vary_colors: Option<Box<CTBoolean>>,
17151    #[cfg(feature = "dml-charts")]
17152    #[serde(rename = "ser")]
17153    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17154    pub ser: Vec<PieSeries>,
17155    #[cfg(feature = "dml-charts")]
17156    #[serde(rename = "dLbls")]
17157    #[serde(default, skip_serializing_if = "Option::is_none")]
17158    pub d_lbls: Option<Box<DataLabels>>,
17159    #[cfg(feature = "dml-charts")]
17160    #[serde(rename = "firstSliceAng")]
17161    #[serde(default, skip_serializing_if = "Option::is_none")]
17162    pub first_slice_ang: Option<Box<FirstSliceAngle>>,
17163    #[cfg(feature = "dml-charts")]
17164    #[serde(rename = "holeSize")]
17165    #[serde(default, skip_serializing_if = "Option::is_none")]
17166    pub hole_size: Option<Box<HoleSize>>,
17167    #[cfg(feature = "dml-charts")]
17168    #[serde(rename = "extLst")]
17169    #[serde(default, skip_serializing_if = "Option::is_none")]
17170    pub ext_lst: Option<Box<ChartExtensionList>>,
17171    /// Unknown child elements captured for roundtrip fidelity.
17172    #[cfg(feature = "extra-children")]
17173    #[serde(skip)]
17174    #[cfg(feature = "extra-children")]
17175    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17176}
17177
17178#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17179pub struct OfPieType {
17180    #[cfg(feature = "dml-charts")]
17181    #[serde(rename = "@val")]
17182    #[serde(default, skip_serializing_if = "Option::is_none")]
17183    pub value: Option<OfPieTypeValue>,
17184    /// Unknown attributes captured for roundtrip fidelity.
17185    #[cfg(feature = "extra-attrs")]
17186    #[serde(skip)]
17187    #[cfg(feature = "extra-attrs")]
17188    #[serde(default)]
17189    #[cfg(feature = "extra-attrs")]
17190    pub extra_attrs: std::collections::HashMap<String, String>,
17191}
17192
17193#[derive(Debug, Clone, Serialize, Deserialize)]
17194pub struct OfPieChart {
17195    #[cfg(feature = "dml-charts")]
17196    #[serde(rename = "ofPieType")]
17197    pub of_pie_type: Box<OfPieType>,
17198    #[cfg(feature = "dml-charts")]
17199    #[serde(rename = "varyColors")]
17200    #[serde(default, skip_serializing_if = "Option::is_none")]
17201    pub vary_colors: Option<Box<CTBoolean>>,
17202    #[cfg(feature = "dml-charts")]
17203    #[serde(rename = "ser")]
17204    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17205    pub ser: Vec<PieSeries>,
17206    #[cfg(feature = "dml-charts")]
17207    #[serde(rename = "dLbls")]
17208    #[serde(default, skip_serializing_if = "Option::is_none")]
17209    pub d_lbls: Option<Box<DataLabels>>,
17210    #[cfg(feature = "dml-charts")]
17211    #[serde(rename = "gapWidth")]
17212    #[serde(default, skip_serializing_if = "Option::is_none")]
17213    pub gap_width: Option<Box<GapAmount>>,
17214    #[cfg(feature = "dml-charts")]
17215    #[serde(rename = "splitType")]
17216    #[serde(default, skip_serializing_if = "Option::is_none")]
17217    pub split_type: Option<Box<SplitType>>,
17218    #[cfg(feature = "dml-charts")]
17219    #[serde(rename = "splitPos")]
17220    #[serde(default, skip_serializing_if = "Option::is_none")]
17221    pub split_pos: Option<Box<CTDouble>>,
17222    #[cfg(feature = "dml-charts")]
17223    #[serde(rename = "custSplit")]
17224    #[serde(default, skip_serializing_if = "Option::is_none")]
17225    pub cust_split: Option<Box<CustomSplit>>,
17226    #[cfg(feature = "dml-charts")]
17227    #[serde(rename = "secondPieSize")]
17228    #[serde(default, skip_serializing_if = "Option::is_none")]
17229    pub second_pie_size: Option<Box<SecondPieSize>>,
17230    #[cfg(feature = "dml-charts")]
17231    #[serde(rename = "serLines")]
17232    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17233    pub ser_lines: Vec<ChartLines>,
17234    #[cfg(feature = "dml-charts")]
17235    #[serde(rename = "extLst")]
17236    #[serde(default, skip_serializing_if = "Option::is_none")]
17237    pub ext_lst: Option<Box<ChartExtensionList>>,
17238    /// Unknown child elements captured for roundtrip fidelity.
17239    #[cfg(feature = "extra-children")]
17240    #[serde(skip)]
17241    #[cfg(feature = "extra-children")]
17242    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17243}
17244
17245#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17246pub struct BubbleChart {
17247    #[cfg(feature = "dml-charts")]
17248    #[serde(rename = "varyColors")]
17249    #[serde(default, skip_serializing_if = "Option::is_none")]
17250    pub vary_colors: Option<Box<CTBoolean>>,
17251    #[cfg(feature = "dml-charts")]
17252    #[serde(rename = "ser")]
17253    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17254    pub ser: Vec<BubbleSeries>,
17255    #[cfg(feature = "dml-charts")]
17256    #[serde(rename = "dLbls")]
17257    #[serde(default, skip_serializing_if = "Option::is_none")]
17258    pub d_lbls: Option<Box<DataLabels>>,
17259    #[cfg(feature = "dml-charts")]
17260    #[serde(rename = "bubble3D")]
17261    #[serde(default, skip_serializing_if = "Option::is_none")]
17262    pub bubble3_d: Option<Box<CTBoolean>>,
17263    #[cfg(feature = "dml-charts")]
17264    #[serde(rename = "bubbleScale")]
17265    #[serde(default, skip_serializing_if = "Option::is_none")]
17266    pub bubble_scale: Option<Box<BubbleScale>>,
17267    #[cfg(feature = "dml-charts")]
17268    #[serde(rename = "showNegBubbles")]
17269    #[serde(default, skip_serializing_if = "Option::is_none")]
17270    pub show_neg_bubbles: Option<Box<CTBoolean>>,
17271    #[cfg(feature = "dml-charts")]
17272    #[serde(rename = "sizeRepresents")]
17273    #[serde(default, skip_serializing_if = "Option::is_none")]
17274    pub size_represents: Option<Box<SizeRepresents>>,
17275    #[cfg(feature = "dml-charts")]
17276    #[serde(rename = "axId")]
17277    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17278    pub ax_id: Vec<CTUnsignedInt>,
17279    #[cfg(feature = "dml-charts")]
17280    #[serde(rename = "extLst")]
17281    #[serde(default, skip_serializing_if = "Option::is_none")]
17282    pub ext_lst: Option<Box<ChartExtensionList>>,
17283    /// Unknown child elements captured for roundtrip fidelity.
17284    #[cfg(feature = "extra-children")]
17285    #[serde(skip)]
17286    #[cfg(feature = "extra-children")]
17287    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17288}
17289
17290#[derive(Debug, Clone, Serialize, Deserialize)]
17291pub struct BandFormat {
17292    #[cfg(feature = "dml-charts")]
17293    #[serde(rename = "idx")]
17294    pub idx: Box<CTUnsignedInt>,
17295    #[cfg(feature = "dml-charts")]
17296    #[serde(rename = "spPr")]
17297    #[serde(default, skip_serializing_if = "Option::is_none")]
17298    pub sp_pr: Option<Box<CTShapeProperties>>,
17299    /// Unknown child elements captured for roundtrip fidelity.
17300    #[cfg(feature = "extra-children")]
17301    #[serde(skip)]
17302    #[cfg(feature = "extra-children")]
17303    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17304}
17305
17306#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17307pub struct BandFormats {
17308    #[cfg(feature = "dml-charts")]
17309    #[serde(rename = "bandFmt")]
17310    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17311    pub band_fmt: Vec<BandFormat>,
17312    /// Unknown child elements captured for roundtrip fidelity.
17313    #[cfg(feature = "extra-children")]
17314    #[serde(skip)]
17315    #[cfg(feature = "extra-children")]
17316    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17317}
17318
17319#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17320pub struct EGSurfaceChartShared {
17321    #[serde(rename = "wireframe")]
17322    #[serde(default, skip_serializing_if = "Option::is_none")]
17323    pub wireframe: Option<Box<CTBoolean>>,
17324    #[serde(rename = "ser")]
17325    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17326    pub ser: Vec<SurfaceSeries>,
17327    #[serde(rename = "bandFmts")]
17328    #[serde(default, skip_serializing_if = "Option::is_none")]
17329    pub band_fmts: Option<Box<BandFormats>>,
17330    /// Unknown child elements captured for roundtrip fidelity.
17331    #[cfg(feature = "extra-children")]
17332    #[serde(skip)]
17333    #[cfg(feature = "extra-children")]
17334    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17335}
17336
17337#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17338pub struct SurfaceChart {
17339    #[cfg(feature = "dml-charts")]
17340    #[serde(rename = "wireframe")]
17341    #[serde(default, skip_serializing_if = "Option::is_none")]
17342    pub wireframe: Option<Box<CTBoolean>>,
17343    #[cfg(feature = "dml-charts")]
17344    #[serde(rename = "ser")]
17345    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17346    pub ser: Vec<SurfaceSeries>,
17347    #[cfg(feature = "dml-charts")]
17348    #[serde(rename = "bandFmts")]
17349    #[serde(default, skip_serializing_if = "Option::is_none")]
17350    pub band_fmts: Option<Box<BandFormats>>,
17351    #[cfg(feature = "dml-charts")]
17352    #[serde(rename = "axId")]
17353    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17354    pub ax_id: Vec<CTUnsignedInt>,
17355    #[cfg(feature = "dml-charts")]
17356    #[serde(rename = "extLst")]
17357    #[serde(default, skip_serializing_if = "Option::is_none")]
17358    pub ext_lst: Option<Box<ChartExtensionList>>,
17359    /// Unknown child elements captured for roundtrip fidelity.
17360    #[cfg(feature = "extra-children")]
17361    #[serde(skip)]
17362    #[cfg(feature = "extra-children")]
17363    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17364}
17365
17366#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17367pub struct Surface3DChart {
17368    #[cfg(feature = "dml-charts")]
17369    #[serde(rename = "wireframe")]
17370    #[serde(default, skip_serializing_if = "Option::is_none")]
17371    pub wireframe: Option<Box<CTBoolean>>,
17372    #[cfg(feature = "dml-charts")]
17373    #[serde(rename = "ser")]
17374    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17375    pub ser: Vec<SurfaceSeries>,
17376    #[cfg(feature = "dml-charts")]
17377    #[serde(rename = "bandFmts")]
17378    #[serde(default, skip_serializing_if = "Option::is_none")]
17379    pub band_fmts: Option<Box<BandFormats>>,
17380    #[cfg(feature = "dml-charts")]
17381    #[serde(rename = "axId")]
17382    #[serde(default, skip_serializing_if = "Vec::is_empty")]
17383    pub ax_id: Vec<CTUnsignedInt>,
17384    #[cfg(feature = "dml-charts")]
17385    #[serde(rename = "extLst")]
17386    #[serde(default, skip_serializing_if = "Option::is_none")]
17387    pub ext_lst: Option<Box<ChartExtensionList>>,
17388    /// Unknown child elements captured for roundtrip fidelity.
17389    #[cfg(feature = "extra-children")]
17390    #[serde(skip)]
17391    #[cfg(feature = "extra-children")]
17392    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17393}
17394
17395#[derive(Debug, Clone, Serialize, Deserialize)]
17396pub struct AxisPosition {
17397    #[cfg(feature = "dml-charts")]
17398    #[serde(rename = "@val")]
17399    pub value: AxisPositionType,
17400    /// Unknown attributes captured for roundtrip fidelity.
17401    #[cfg(feature = "extra-attrs")]
17402    #[serde(skip)]
17403    #[cfg(feature = "extra-attrs")]
17404    #[serde(default)]
17405    #[cfg(feature = "extra-attrs")]
17406    pub extra_attrs: std::collections::HashMap<String, String>,
17407}
17408
17409#[derive(Debug, Clone, Serialize, Deserialize)]
17410pub struct AxisCrosses {
17411    #[cfg(feature = "dml-charts")]
17412    #[serde(rename = "@val")]
17413    pub value: AxisCrossesType,
17414    /// Unknown attributes captured for roundtrip fidelity.
17415    #[cfg(feature = "extra-attrs")]
17416    #[serde(skip)]
17417    #[cfg(feature = "extra-attrs")]
17418    #[serde(default)]
17419    #[cfg(feature = "extra-attrs")]
17420    pub extra_attrs: std::collections::HashMap<String, String>,
17421}
17422
17423#[derive(Debug, Clone, Serialize, Deserialize)]
17424pub struct CrossBetween {
17425    #[cfg(feature = "dml-charts")]
17426    #[serde(rename = "@val")]
17427    pub value: CrossBetweenType,
17428    /// Unknown attributes captured for roundtrip fidelity.
17429    #[cfg(feature = "extra-attrs")]
17430    #[serde(skip)]
17431    #[cfg(feature = "extra-attrs")]
17432    #[serde(default)]
17433    #[cfg(feature = "extra-attrs")]
17434    pub extra_attrs: std::collections::HashMap<String, String>,
17435}
17436
17437#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17438pub struct TickMark {
17439    #[cfg(feature = "dml-charts")]
17440    #[serde(rename = "@val")]
17441    #[serde(default, skip_serializing_if = "Option::is_none")]
17442    pub value: Option<TickMarkType>,
17443    /// Unknown attributes captured for roundtrip fidelity.
17444    #[cfg(feature = "extra-attrs")]
17445    #[serde(skip)]
17446    #[cfg(feature = "extra-attrs")]
17447    #[serde(default)]
17448    #[cfg(feature = "extra-attrs")]
17449    pub extra_attrs: std::collections::HashMap<String, String>,
17450}
17451
17452#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17453pub struct TickLabelPosition {
17454    #[cfg(feature = "dml-charts")]
17455    #[serde(rename = "@val")]
17456    #[serde(default, skip_serializing_if = "Option::is_none")]
17457    pub value: Option<TickLabelPositionType>,
17458    /// Unknown attributes captured for roundtrip fidelity.
17459    #[cfg(feature = "extra-attrs")]
17460    #[serde(skip)]
17461    #[cfg(feature = "extra-attrs")]
17462    #[serde(default)]
17463    #[cfg(feature = "extra-attrs")]
17464    pub extra_attrs: std::collections::HashMap<String, String>,
17465}
17466
17467#[derive(Debug, Clone, Serialize, Deserialize)]
17468pub struct AxisSkip {
17469    #[cfg(feature = "dml-charts")]
17470    #[serde(rename = "@val")]
17471    pub value: AxisSkipValue,
17472    /// Unknown attributes captured for roundtrip fidelity.
17473    #[cfg(feature = "extra-attrs")]
17474    #[serde(skip)]
17475    #[cfg(feature = "extra-attrs")]
17476    #[serde(default)]
17477    #[cfg(feature = "extra-attrs")]
17478    pub extra_attrs: std::collections::HashMap<String, String>,
17479}
17480
17481#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17482pub struct TimeUnit {
17483    #[cfg(feature = "dml-charts")]
17484    #[serde(rename = "@val")]
17485    #[serde(default, skip_serializing_if = "Option::is_none")]
17486    pub value: Option<TimeUnitType>,
17487    /// Unknown attributes captured for roundtrip fidelity.
17488    #[cfg(feature = "extra-attrs")]
17489    #[serde(skip)]
17490    #[cfg(feature = "extra-attrs")]
17491    #[serde(default)]
17492    #[cfg(feature = "extra-attrs")]
17493    pub extra_attrs: std::collections::HashMap<String, String>,
17494}
17495
17496#[derive(Debug, Clone, Serialize, Deserialize)]
17497pub struct AxisUnit {
17498    #[cfg(feature = "dml-charts")]
17499    #[serde(rename = "@val")]
17500    pub value: AxisUnitValue,
17501    /// Unknown attributes captured for roundtrip fidelity.
17502    #[cfg(feature = "extra-attrs")]
17503    #[serde(skip)]
17504    #[cfg(feature = "extra-attrs")]
17505    #[serde(default)]
17506    #[cfg(feature = "extra-attrs")]
17507    pub extra_attrs: std::collections::HashMap<String, String>,
17508}
17509
17510#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17511pub struct BuiltInUnit {
17512    #[cfg(feature = "dml-charts")]
17513    #[serde(rename = "@val")]
17514    #[serde(default, skip_serializing_if = "Option::is_none")]
17515    pub value: Option<BuiltInUnitType>,
17516    /// Unknown attributes captured for roundtrip fidelity.
17517    #[cfg(feature = "extra-attrs")]
17518    #[serde(skip)]
17519    #[cfg(feature = "extra-attrs")]
17520    #[serde(default)]
17521    #[cfg(feature = "extra-attrs")]
17522    pub extra_attrs: std::collections::HashMap<String, String>,
17523}
17524
17525#[derive(Debug, Clone, Serialize, Deserialize)]
17526pub struct ChartPictureFormat {
17527    #[cfg(feature = "dml-charts")]
17528    #[serde(rename = "@val")]
17529    pub value: PictureFormatType,
17530    /// Unknown attributes captured for roundtrip fidelity.
17531    #[cfg(feature = "extra-attrs")]
17532    #[serde(skip)]
17533    #[cfg(feature = "extra-attrs")]
17534    #[serde(default)]
17535    #[cfg(feature = "extra-attrs")]
17536    pub extra_attrs: std::collections::HashMap<String, String>,
17537}
17538
17539#[derive(Debug, Clone, Serialize, Deserialize)]
17540pub struct PictureStackUnit {
17541    #[cfg(feature = "dml-charts")]
17542    #[serde(rename = "@val")]
17543    pub value: PictureStackUnitValue,
17544    /// Unknown attributes captured for roundtrip fidelity.
17545    #[cfg(feature = "extra-attrs")]
17546    #[serde(skip)]
17547    #[cfg(feature = "extra-attrs")]
17548    #[serde(default)]
17549    #[cfg(feature = "extra-attrs")]
17550    pub extra_attrs: std::collections::HashMap<String, String>,
17551}
17552
17553#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17554pub struct PictureOptions {
17555    #[cfg(feature = "dml-charts")]
17556    #[serde(rename = "applyToFront")]
17557    #[serde(default, skip_serializing_if = "Option::is_none")]
17558    pub apply_to_front: Option<Box<CTBoolean>>,
17559    #[cfg(feature = "dml-charts")]
17560    #[serde(rename = "applyToSides")]
17561    #[serde(default, skip_serializing_if = "Option::is_none")]
17562    pub apply_to_sides: Option<Box<CTBoolean>>,
17563    #[cfg(feature = "dml-charts")]
17564    #[serde(rename = "applyToEnd")]
17565    #[serde(default, skip_serializing_if = "Option::is_none")]
17566    pub apply_to_end: Option<Box<CTBoolean>>,
17567    #[cfg(feature = "dml-charts")]
17568    #[serde(rename = "pictureFormat")]
17569    #[serde(default, skip_serializing_if = "Option::is_none")]
17570    pub picture_format: Option<Box<ChartPictureFormat>>,
17571    #[cfg(feature = "dml-charts")]
17572    #[serde(rename = "pictureStackUnit")]
17573    #[serde(default, skip_serializing_if = "Option::is_none")]
17574    pub picture_stack_unit: Option<Box<PictureStackUnit>>,
17575    /// Unknown child elements captured for roundtrip fidelity.
17576    #[cfg(feature = "extra-children")]
17577    #[serde(skip)]
17578    #[cfg(feature = "extra-children")]
17579    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17580}
17581
17582#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17583pub struct DisplayUnitsLabel {
17584    #[cfg(feature = "dml-charts")]
17585    #[serde(rename = "layout")]
17586    #[serde(default, skip_serializing_if = "Option::is_none")]
17587    pub layout: Option<Box<ChartLayout>>,
17588    #[cfg(feature = "dml-charts")]
17589    #[serde(rename = "tx")]
17590    #[serde(default, skip_serializing_if = "Option::is_none")]
17591    pub tx: Option<Box<ChartText>>,
17592    #[cfg(feature = "dml-charts")]
17593    #[serde(rename = "spPr")]
17594    #[serde(default, skip_serializing_if = "Option::is_none")]
17595    pub sp_pr: Option<Box<CTShapeProperties>>,
17596    #[cfg(feature = "dml-charts")]
17597    #[serde(rename = "txPr")]
17598    #[serde(default, skip_serializing_if = "Option::is_none")]
17599    pub tx_pr: Option<Box<TextBody>>,
17600    /// Unknown child elements captured for roundtrip fidelity.
17601    #[cfg(feature = "extra-children")]
17602    #[serde(skip)]
17603    #[cfg(feature = "extra-children")]
17604    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17605}
17606
17607#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17608pub struct DisplayUnits {
17609    #[cfg(feature = "dml-charts")]
17610    #[serde(rename = "custUnit")]
17611    #[serde(default, skip_serializing_if = "Option::is_none")]
17612    pub cust_unit: Option<Box<CTDouble>>,
17613    #[cfg(feature = "dml-charts")]
17614    #[serde(rename = "builtInUnit")]
17615    #[serde(default, skip_serializing_if = "Option::is_none")]
17616    pub built_in_unit: Option<Box<BuiltInUnit>>,
17617    #[cfg(feature = "dml-charts")]
17618    #[serde(rename = "dispUnitsLbl")]
17619    #[serde(default, skip_serializing_if = "Option::is_none")]
17620    pub disp_units_lbl: Option<Box<DisplayUnitsLabel>>,
17621    #[cfg(feature = "dml-charts")]
17622    #[serde(rename = "extLst")]
17623    #[serde(default, skip_serializing_if = "Option::is_none")]
17624    pub ext_lst: Option<Box<ChartExtensionList>>,
17625    /// Unknown child elements captured for roundtrip fidelity.
17626    #[cfg(feature = "extra-children")]
17627    #[serde(skip)]
17628    #[cfg(feature = "extra-children")]
17629    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17630}
17631
17632#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17633pub struct AxisOrientation {
17634    #[cfg(feature = "dml-charts")]
17635    #[serde(rename = "@val")]
17636    #[serde(default, skip_serializing_if = "Option::is_none")]
17637    pub value: Option<AxisOrientationType>,
17638    /// Unknown attributes captured for roundtrip fidelity.
17639    #[cfg(feature = "extra-attrs")]
17640    #[serde(skip)]
17641    #[cfg(feature = "extra-attrs")]
17642    #[serde(default)]
17643    #[cfg(feature = "extra-attrs")]
17644    pub extra_attrs: std::collections::HashMap<String, String>,
17645}
17646
17647#[derive(Debug, Clone, Serialize, Deserialize)]
17648pub struct LogBase {
17649    #[cfg(feature = "dml-charts")]
17650    #[serde(rename = "@val")]
17651    pub value: LogBaseValue,
17652    /// Unknown attributes captured for roundtrip fidelity.
17653    #[cfg(feature = "extra-attrs")]
17654    #[serde(skip)]
17655    #[cfg(feature = "extra-attrs")]
17656    #[serde(default)]
17657    #[cfg(feature = "extra-attrs")]
17658    pub extra_attrs: std::collections::HashMap<String, String>,
17659}
17660
17661#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17662pub struct AxisScaling {
17663    #[cfg(feature = "dml-charts")]
17664    #[serde(rename = "logBase")]
17665    #[serde(default, skip_serializing_if = "Option::is_none")]
17666    pub log_base: Option<Box<LogBase>>,
17667    #[cfg(feature = "dml-charts")]
17668    #[serde(rename = "orientation")]
17669    #[serde(default, skip_serializing_if = "Option::is_none")]
17670    pub orientation: Option<Box<AxisOrientation>>,
17671    #[cfg(feature = "dml-charts")]
17672    #[serde(rename = "max")]
17673    #[serde(default, skip_serializing_if = "Option::is_none")]
17674    pub max: Option<Box<CTDouble>>,
17675    #[cfg(feature = "dml-charts")]
17676    #[serde(rename = "min")]
17677    #[serde(default, skip_serializing_if = "Option::is_none")]
17678    pub min: Option<Box<CTDouble>>,
17679    #[cfg(feature = "dml-charts")]
17680    #[serde(rename = "extLst")]
17681    #[serde(default, skip_serializing_if = "Option::is_none")]
17682    pub ext_lst: Option<Box<ChartExtensionList>>,
17683    /// Unknown child elements captured for roundtrip fidelity.
17684    #[cfg(feature = "extra-children")]
17685    #[serde(skip)]
17686    #[cfg(feature = "extra-children")]
17687    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17688}
17689
17690#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17691pub struct LabelOffset {
17692    #[cfg(feature = "dml-charts")]
17693    #[serde(rename = "@val")]
17694    #[serde(default, skip_serializing_if = "Option::is_none")]
17695    pub value: Option<LabelOffsetValue>,
17696    /// Unknown attributes captured for roundtrip fidelity.
17697    #[cfg(feature = "extra-attrs")]
17698    #[serde(skip)]
17699    #[cfg(feature = "extra-attrs")]
17700    #[serde(default)]
17701    #[cfg(feature = "extra-attrs")]
17702    pub extra_attrs: std::collections::HashMap<String, String>,
17703}
17704
17705#[derive(Debug, Clone, Serialize, Deserialize)]
17706pub struct EGAxShared {
17707    #[serde(rename = "axId")]
17708    pub ax_id: Box<CTUnsignedInt>,
17709    #[serde(rename = "scaling")]
17710    pub scaling: Box<AxisScaling>,
17711    #[serde(rename = "delete")]
17712    #[serde(default, skip_serializing_if = "Option::is_none")]
17713    pub delete: Option<Box<CTBoolean>>,
17714    #[serde(rename = "axPos")]
17715    pub ax_pos: Box<AxisPosition>,
17716    #[serde(rename = "majorGridlines")]
17717    #[serde(default, skip_serializing_if = "Option::is_none")]
17718    pub major_gridlines: Option<Box<ChartLines>>,
17719    #[serde(rename = "minorGridlines")]
17720    #[serde(default, skip_serializing_if = "Option::is_none")]
17721    pub minor_gridlines: Option<Box<ChartLines>>,
17722    #[serde(rename = "title")]
17723    #[serde(default, skip_serializing_if = "Option::is_none")]
17724    pub title: Option<Box<ChartTitle>>,
17725    #[serde(rename = "numFmt")]
17726    #[serde(default, skip_serializing_if = "Option::is_none")]
17727    pub num_fmt: Option<Box<ChartNumFmt>>,
17728    #[serde(rename = "majorTickMark")]
17729    #[serde(default, skip_serializing_if = "Option::is_none")]
17730    pub major_tick_mark: Option<Box<TickMark>>,
17731    #[serde(rename = "minorTickMark")]
17732    #[serde(default, skip_serializing_if = "Option::is_none")]
17733    pub minor_tick_mark: Option<Box<TickMark>>,
17734    #[serde(rename = "tickLblPos")]
17735    #[serde(default, skip_serializing_if = "Option::is_none")]
17736    pub tick_lbl_pos: Option<Box<TickLabelPosition>>,
17737    #[serde(rename = "spPr")]
17738    #[serde(default, skip_serializing_if = "Option::is_none")]
17739    pub sp_pr: Option<Box<CTShapeProperties>>,
17740    #[serde(rename = "txPr")]
17741    #[serde(default, skip_serializing_if = "Option::is_none")]
17742    pub tx_pr: Option<Box<TextBody>>,
17743    #[serde(rename = "crossAx")]
17744    pub cross_ax: Box<CTUnsignedInt>,
17745    #[serde(rename = "crosses")]
17746    #[serde(default, skip_serializing_if = "Option::is_none")]
17747    pub crosses: Option<Box<AxisCrosses>>,
17748    #[serde(rename = "crossesAt")]
17749    #[serde(default, skip_serializing_if = "Option::is_none")]
17750    pub crosses_at: Option<Box<CTDouble>>,
17751    /// Unknown child elements captured for roundtrip fidelity.
17752    #[cfg(feature = "extra-children")]
17753    #[serde(skip)]
17754    #[cfg(feature = "extra-children")]
17755    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17756}
17757
17758#[derive(Debug, Clone, Serialize, Deserialize)]
17759pub struct CategoryAxis {
17760    #[cfg(feature = "dml-charts")]
17761    #[serde(rename = "axId")]
17762    pub ax_id: Box<CTUnsignedInt>,
17763    #[cfg(feature = "dml-charts")]
17764    #[serde(rename = "scaling")]
17765    pub scaling: Box<AxisScaling>,
17766    #[cfg(feature = "dml-charts")]
17767    #[serde(rename = "delete")]
17768    #[serde(default, skip_serializing_if = "Option::is_none")]
17769    pub delete: Option<Box<CTBoolean>>,
17770    #[cfg(feature = "dml-charts")]
17771    #[serde(rename = "axPos")]
17772    pub ax_pos: Box<AxisPosition>,
17773    #[cfg(feature = "dml-charts")]
17774    #[serde(rename = "majorGridlines")]
17775    #[serde(default, skip_serializing_if = "Option::is_none")]
17776    pub major_gridlines: Option<Box<ChartLines>>,
17777    #[cfg(feature = "dml-charts")]
17778    #[serde(rename = "minorGridlines")]
17779    #[serde(default, skip_serializing_if = "Option::is_none")]
17780    pub minor_gridlines: Option<Box<ChartLines>>,
17781    #[cfg(feature = "dml-charts")]
17782    #[serde(rename = "title")]
17783    #[serde(default, skip_serializing_if = "Option::is_none")]
17784    pub title: Option<Box<ChartTitle>>,
17785    #[cfg(feature = "dml-charts")]
17786    #[serde(rename = "numFmt")]
17787    #[serde(default, skip_serializing_if = "Option::is_none")]
17788    pub num_fmt: Option<Box<ChartNumFmt>>,
17789    #[cfg(feature = "dml-charts")]
17790    #[serde(rename = "majorTickMark")]
17791    #[serde(default, skip_serializing_if = "Option::is_none")]
17792    pub major_tick_mark: Option<Box<TickMark>>,
17793    #[cfg(feature = "dml-charts")]
17794    #[serde(rename = "minorTickMark")]
17795    #[serde(default, skip_serializing_if = "Option::is_none")]
17796    pub minor_tick_mark: Option<Box<TickMark>>,
17797    #[cfg(feature = "dml-charts")]
17798    #[serde(rename = "tickLblPos")]
17799    #[serde(default, skip_serializing_if = "Option::is_none")]
17800    pub tick_lbl_pos: Option<Box<TickLabelPosition>>,
17801    #[cfg(feature = "dml-charts")]
17802    #[serde(rename = "spPr")]
17803    #[serde(default, skip_serializing_if = "Option::is_none")]
17804    pub sp_pr: Option<Box<CTShapeProperties>>,
17805    #[cfg(feature = "dml-charts")]
17806    #[serde(rename = "txPr")]
17807    #[serde(default, skip_serializing_if = "Option::is_none")]
17808    pub tx_pr: Option<Box<TextBody>>,
17809    #[cfg(feature = "dml-charts")]
17810    #[serde(rename = "crossAx")]
17811    pub cross_ax: Box<CTUnsignedInt>,
17812    #[cfg(feature = "dml-charts")]
17813    #[serde(rename = "crosses")]
17814    #[serde(default, skip_serializing_if = "Option::is_none")]
17815    pub crosses: Option<Box<AxisCrosses>>,
17816    #[cfg(feature = "dml-charts")]
17817    #[serde(rename = "crossesAt")]
17818    #[serde(default, skip_serializing_if = "Option::is_none")]
17819    pub crosses_at: Option<Box<CTDouble>>,
17820    #[cfg(feature = "dml-charts")]
17821    #[serde(rename = "auto")]
17822    #[serde(default, skip_serializing_if = "Option::is_none")]
17823    pub auto: Option<Box<CTBoolean>>,
17824    #[cfg(feature = "dml-charts")]
17825    #[serde(rename = "lblAlgn")]
17826    #[serde(default, skip_serializing_if = "Option::is_none")]
17827    pub lbl_algn: Option<Box<LabelAlignment>>,
17828    #[cfg(feature = "dml-charts")]
17829    #[serde(rename = "lblOffset")]
17830    #[serde(default, skip_serializing_if = "Option::is_none")]
17831    pub lbl_offset: Option<Box<LabelOffset>>,
17832    #[cfg(feature = "dml-charts")]
17833    #[serde(rename = "tickLblSkip")]
17834    #[serde(default, skip_serializing_if = "Option::is_none")]
17835    pub tick_lbl_skip: Option<Box<AxisSkip>>,
17836    #[cfg(feature = "dml-charts")]
17837    #[serde(rename = "tickMarkSkip")]
17838    #[serde(default, skip_serializing_if = "Option::is_none")]
17839    pub tick_mark_skip: Option<Box<AxisSkip>>,
17840    #[cfg(feature = "dml-charts")]
17841    #[serde(rename = "noMultiLvlLbl")]
17842    #[serde(default, skip_serializing_if = "Option::is_none")]
17843    pub no_multi_lvl_lbl: Option<Box<CTBoolean>>,
17844    #[cfg(feature = "dml-charts")]
17845    #[serde(rename = "extLst")]
17846    #[serde(default, skip_serializing_if = "Option::is_none")]
17847    pub ext_lst: Option<Box<ChartExtensionList>>,
17848    /// Unknown child elements captured for roundtrip fidelity.
17849    #[cfg(feature = "extra-children")]
17850    #[serde(skip)]
17851    #[cfg(feature = "extra-children")]
17852    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17853}
17854
17855#[derive(Debug, Clone, Serialize, Deserialize)]
17856pub struct DateAxis {
17857    #[cfg(feature = "dml-charts")]
17858    #[serde(rename = "axId")]
17859    pub ax_id: Box<CTUnsignedInt>,
17860    #[cfg(feature = "dml-charts")]
17861    #[serde(rename = "scaling")]
17862    pub scaling: Box<AxisScaling>,
17863    #[cfg(feature = "dml-charts")]
17864    #[serde(rename = "delete")]
17865    #[serde(default, skip_serializing_if = "Option::is_none")]
17866    pub delete: Option<Box<CTBoolean>>,
17867    #[cfg(feature = "dml-charts")]
17868    #[serde(rename = "axPos")]
17869    pub ax_pos: Box<AxisPosition>,
17870    #[cfg(feature = "dml-charts")]
17871    #[serde(rename = "majorGridlines")]
17872    #[serde(default, skip_serializing_if = "Option::is_none")]
17873    pub major_gridlines: Option<Box<ChartLines>>,
17874    #[cfg(feature = "dml-charts")]
17875    #[serde(rename = "minorGridlines")]
17876    #[serde(default, skip_serializing_if = "Option::is_none")]
17877    pub minor_gridlines: Option<Box<ChartLines>>,
17878    #[cfg(feature = "dml-charts")]
17879    #[serde(rename = "title")]
17880    #[serde(default, skip_serializing_if = "Option::is_none")]
17881    pub title: Option<Box<ChartTitle>>,
17882    #[cfg(feature = "dml-charts")]
17883    #[serde(rename = "numFmt")]
17884    #[serde(default, skip_serializing_if = "Option::is_none")]
17885    pub num_fmt: Option<Box<ChartNumFmt>>,
17886    #[cfg(feature = "dml-charts")]
17887    #[serde(rename = "majorTickMark")]
17888    #[serde(default, skip_serializing_if = "Option::is_none")]
17889    pub major_tick_mark: Option<Box<TickMark>>,
17890    #[cfg(feature = "dml-charts")]
17891    #[serde(rename = "minorTickMark")]
17892    #[serde(default, skip_serializing_if = "Option::is_none")]
17893    pub minor_tick_mark: Option<Box<TickMark>>,
17894    #[cfg(feature = "dml-charts")]
17895    #[serde(rename = "tickLblPos")]
17896    #[serde(default, skip_serializing_if = "Option::is_none")]
17897    pub tick_lbl_pos: Option<Box<TickLabelPosition>>,
17898    #[cfg(feature = "dml-charts")]
17899    #[serde(rename = "spPr")]
17900    #[serde(default, skip_serializing_if = "Option::is_none")]
17901    pub sp_pr: Option<Box<CTShapeProperties>>,
17902    #[cfg(feature = "dml-charts")]
17903    #[serde(rename = "txPr")]
17904    #[serde(default, skip_serializing_if = "Option::is_none")]
17905    pub tx_pr: Option<Box<TextBody>>,
17906    #[cfg(feature = "dml-charts")]
17907    #[serde(rename = "crossAx")]
17908    pub cross_ax: Box<CTUnsignedInt>,
17909    #[cfg(feature = "dml-charts")]
17910    #[serde(rename = "crosses")]
17911    #[serde(default, skip_serializing_if = "Option::is_none")]
17912    pub crosses: Option<Box<AxisCrosses>>,
17913    #[cfg(feature = "dml-charts")]
17914    #[serde(rename = "crossesAt")]
17915    #[serde(default, skip_serializing_if = "Option::is_none")]
17916    pub crosses_at: Option<Box<CTDouble>>,
17917    #[cfg(feature = "dml-charts")]
17918    #[serde(rename = "auto")]
17919    #[serde(default, skip_serializing_if = "Option::is_none")]
17920    pub auto: Option<Box<CTBoolean>>,
17921    #[cfg(feature = "dml-charts")]
17922    #[serde(rename = "lblOffset")]
17923    #[serde(default, skip_serializing_if = "Option::is_none")]
17924    pub lbl_offset: Option<Box<LabelOffset>>,
17925    #[cfg(feature = "dml-charts")]
17926    #[serde(rename = "baseTimeUnit")]
17927    #[serde(default, skip_serializing_if = "Option::is_none")]
17928    pub base_time_unit: Option<Box<TimeUnit>>,
17929    #[cfg(feature = "dml-charts")]
17930    #[serde(rename = "majorUnit")]
17931    #[serde(default, skip_serializing_if = "Option::is_none")]
17932    pub major_unit: Option<Box<AxisUnit>>,
17933    #[cfg(feature = "dml-charts")]
17934    #[serde(rename = "majorTimeUnit")]
17935    #[serde(default, skip_serializing_if = "Option::is_none")]
17936    pub major_time_unit: Option<Box<TimeUnit>>,
17937    #[cfg(feature = "dml-charts")]
17938    #[serde(rename = "minorUnit")]
17939    #[serde(default, skip_serializing_if = "Option::is_none")]
17940    pub minor_unit: Option<Box<AxisUnit>>,
17941    #[cfg(feature = "dml-charts")]
17942    #[serde(rename = "minorTimeUnit")]
17943    #[serde(default, skip_serializing_if = "Option::is_none")]
17944    pub minor_time_unit: Option<Box<TimeUnit>>,
17945    #[cfg(feature = "dml-charts")]
17946    #[serde(rename = "extLst")]
17947    #[serde(default, skip_serializing_if = "Option::is_none")]
17948    pub ext_lst: Option<Box<ChartExtensionList>>,
17949    /// Unknown child elements captured for roundtrip fidelity.
17950    #[cfg(feature = "extra-children")]
17951    #[serde(skip)]
17952    #[cfg(feature = "extra-children")]
17953    pub extra_children: Vec<ooxml_xml::PositionedNode>,
17954}
17955
17956#[derive(Debug, Clone, Serialize, Deserialize)]
17957pub struct SeriesAxis {
17958    #[cfg(feature = "dml-charts")]
17959    #[serde(rename = "axId")]
17960    pub ax_id: Box<CTUnsignedInt>,
17961    #[cfg(feature = "dml-charts")]
17962    #[serde(rename = "scaling")]
17963    pub scaling: Box<AxisScaling>,
17964    #[cfg(feature = "dml-charts")]
17965    #[serde(rename = "delete")]
17966    #[serde(default, skip_serializing_if = "Option::is_none")]
17967    pub delete: Option<Box<CTBoolean>>,
17968    #[cfg(feature = "dml-charts")]
17969    #[serde(rename = "axPos")]
17970    pub ax_pos: Box<AxisPosition>,
17971    #[cfg(feature = "dml-charts")]
17972    #[serde(rename = "majorGridlines")]
17973    #[serde(default, skip_serializing_if = "Option::is_none")]
17974    pub major_gridlines: Option<Box<ChartLines>>,
17975    #[cfg(feature = "dml-charts")]
17976    #[serde(rename = "minorGridlines")]
17977    #[serde(default, skip_serializing_if = "Option::is_none")]
17978    pub minor_gridlines: Option<Box<ChartLines>>,
17979    #[cfg(feature = "dml-charts")]
17980    #[serde(rename = "title")]
17981    #[serde(default, skip_serializing_if = "Option::is_none")]
17982    pub title: Option<Box<ChartTitle>>,
17983    #[cfg(feature = "dml-charts")]
17984    #[serde(rename = "numFmt")]
17985    #[serde(default, skip_serializing_if = "Option::is_none")]
17986    pub num_fmt: Option<Box<ChartNumFmt>>,
17987    #[cfg(feature = "dml-charts")]
17988    #[serde(rename = "majorTickMark")]
17989    #[serde(default, skip_serializing_if = "Option::is_none")]
17990    pub major_tick_mark: Option<Box<TickMark>>,
17991    #[cfg(feature = "dml-charts")]
17992    #[serde(rename = "minorTickMark")]
17993    #[serde(default, skip_serializing_if = "Option::is_none")]
17994    pub minor_tick_mark: Option<Box<TickMark>>,
17995    #[cfg(feature = "dml-charts")]
17996    #[serde(rename = "tickLblPos")]
17997    #[serde(default, skip_serializing_if = "Option::is_none")]
17998    pub tick_lbl_pos: Option<Box<TickLabelPosition>>,
17999    #[cfg(feature = "dml-charts")]
18000    #[serde(rename = "spPr")]
18001    #[serde(default, skip_serializing_if = "Option::is_none")]
18002    pub sp_pr: Option<Box<CTShapeProperties>>,
18003    #[cfg(feature = "dml-charts")]
18004    #[serde(rename = "txPr")]
18005    #[serde(default, skip_serializing_if = "Option::is_none")]
18006    pub tx_pr: Option<Box<TextBody>>,
18007    #[cfg(feature = "dml-charts")]
18008    #[serde(rename = "crossAx")]
18009    pub cross_ax: Box<CTUnsignedInt>,
18010    #[cfg(feature = "dml-charts")]
18011    #[serde(rename = "crosses")]
18012    #[serde(default, skip_serializing_if = "Option::is_none")]
18013    pub crosses: Option<Box<AxisCrosses>>,
18014    #[cfg(feature = "dml-charts")]
18015    #[serde(rename = "crossesAt")]
18016    #[serde(default, skip_serializing_if = "Option::is_none")]
18017    pub crosses_at: Option<Box<CTDouble>>,
18018    #[cfg(feature = "dml-charts")]
18019    #[serde(rename = "tickLblSkip")]
18020    #[serde(default, skip_serializing_if = "Option::is_none")]
18021    pub tick_lbl_skip: Option<Box<AxisSkip>>,
18022    #[cfg(feature = "dml-charts")]
18023    #[serde(rename = "tickMarkSkip")]
18024    #[serde(default, skip_serializing_if = "Option::is_none")]
18025    pub tick_mark_skip: Option<Box<AxisSkip>>,
18026    #[cfg(feature = "dml-charts")]
18027    #[serde(rename = "extLst")]
18028    #[serde(default, skip_serializing_if = "Option::is_none")]
18029    pub ext_lst: Option<Box<ChartExtensionList>>,
18030    /// Unknown child elements captured for roundtrip fidelity.
18031    #[cfg(feature = "extra-children")]
18032    #[serde(skip)]
18033    #[cfg(feature = "extra-children")]
18034    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18035}
18036
18037#[derive(Debug, Clone, Serialize, Deserialize)]
18038pub struct ValueAxis {
18039    #[cfg(feature = "dml-charts")]
18040    #[serde(rename = "axId")]
18041    pub ax_id: Box<CTUnsignedInt>,
18042    #[cfg(feature = "dml-charts")]
18043    #[serde(rename = "scaling")]
18044    pub scaling: Box<AxisScaling>,
18045    #[cfg(feature = "dml-charts")]
18046    #[serde(rename = "delete")]
18047    #[serde(default, skip_serializing_if = "Option::is_none")]
18048    pub delete: Option<Box<CTBoolean>>,
18049    #[cfg(feature = "dml-charts")]
18050    #[serde(rename = "axPos")]
18051    pub ax_pos: Box<AxisPosition>,
18052    #[cfg(feature = "dml-charts")]
18053    #[serde(rename = "majorGridlines")]
18054    #[serde(default, skip_serializing_if = "Option::is_none")]
18055    pub major_gridlines: Option<Box<ChartLines>>,
18056    #[cfg(feature = "dml-charts")]
18057    #[serde(rename = "minorGridlines")]
18058    #[serde(default, skip_serializing_if = "Option::is_none")]
18059    pub minor_gridlines: Option<Box<ChartLines>>,
18060    #[cfg(feature = "dml-charts")]
18061    #[serde(rename = "title")]
18062    #[serde(default, skip_serializing_if = "Option::is_none")]
18063    pub title: Option<Box<ChartTitle>>,
18064    #[cfg(feature = "dml-charts")]
18065    #[serde(rename = "numFmt")]
18066    #[serde(default, skip_serializing_if = "Option::is_none")]
18067    pub num_fmt: Option<Box<ChartNumFmt>>,
18068    #[cfg(feature = "dml-charts")]
18069    #[serde(rename = "majorTickMark")]
18070    #[serde(default, skip_serializing_if = "Option::is_none")]
18071    pub major_tick_mark: Option<Box<TickMark>>,
18072    #[cfg(feature = "dml-charts")]
18073    #[serde(rename = "minorTickMark")]
18074    #[serde(default, skip_serializing_if = "Option::is_none")]
18075    pub minor_tick_mark: Option<Box<TickMark>>,
18076    #[cfg(feature = "dml-charts")]
18077    #[serde(rename = "tickLblPos")]
18078    #[serde(default, skip_serializing_if = "Option::is_none")]
18079    pub tick_lbl_pos: Option<Box<TickLabelPosition>>,
18080    #[cfg(feature = "dml-charts")]
18081    #[serde(rename = "spPr")]
18082    #[serde(default, skip_serializing_if = "Option::is_none")]
18083    pub sp_pr: Option<Box<CTShapeProperties>>,
18084    #[cfg(feature = "dml-charts")]
18085    #[serde(rename = "txPr")]
18086    #[serde(default, skip_serializing_if = "Option::is_none")]
18087    pub tx_pr: Option<Box<TextBody>>,
18088    #[cfg(feature = "dml-charts")]
18089    #[serde(rename = "crossAx")]
18090    pub cross_ax: Box<CTUnsignedInt>,
18091    #[cfg(feature = "dml-charts")]
18092    #[serde(rename = "crosses")]
18093    #[serde(default, skip_serializing_if = "Option::is_none")]
18094    pub crosses: Option<Box<AxisCrosses>>,
18095    #[cfg(feature = "dml-charts")]
18096    #[serde(rename = "crossesAt")]
18097    #[serde(default, skip_serializing_if = "Option::is_none")]
18098    pub crosses_at: Option<Box<CTDouble>>,
18099    #[cfg(feature = "dml-charts")]
18100    #[serde(rename = "crossBetween")]
18101    #[serde(default, skip_serializing_if = "Option::is_none")]
18102    pub cross_between: Option<Box<CrossBetween>>,
18103    #[cfg(feature = "dml-charts")]
18104    #[serde(rename = "majorUnit")]
18105    #[serde(default, skip_serializing_if = "Option::is_none")]
18106    pub major_unit: Option<Box<AxisUnit>>,
18107    #[cfg(feature = "dml-charts")]
18108    #[serde(rename = "minorUnit")]
18109    #[serde(default, skip_serializing_if = "Option::is_none")]
18110    pub minor_unit: Option<Box<AxisUnit>>,
18111    #[cfg(feature = "dml-charts")]
18112    #[serde(rename = "dispUnits")]
18113    #[serde(default, skip_serializing_if = "Option::is_none")]
18114    pub disp_units: Option<Box<DisplayUnits>>,
18115    #[cfg(feature = "dml-charts")]
18116    #[serde(rename = "extLst")]
18117    #[serde(default, skip_serializing_if = "Option::is_none")]
18118    pub ext_lst: Option<Box<ChartExtensionList>>,
18119    /// Unknown child elements captured for roundtrip fidelity.
18120    #[cfg(feature = "extra-children")]
18121    #[serde(skip)]
18122    #[cfg(feature = "extra-children")]
18123    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18124}
18125
18126#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18127pub struct PlotArea {
18128    #[cfg(feature = "dml-charts")]
18129    #[serde(rename = "layout")]
18130    #[serde(default, skip_serializing_if = "Option::is_none")]
18131    pub layout: Option<Box<ChartLayout>>,
18132    #[cfg(feature = "dml-charts")]
18133    #[serde(rename = "areaChart")]
18134    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18135    pub area_chart: Vec<AreaChart>,
18136    #[cfg(feature = "dml-charts")]
18137    #[serde(rename = "area3DChart")]
18138    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18139    pub area3_d_chart: Vec<Area3DChart>,
18140    #[cfg(feature = "dml-charts")]
18141    #[serde(rename = "lineChart")]
18142    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18143    pub line_chart: Vec<LineChart>,
18144    #[cfg(feature = "dml-charts")]
18145    #[serde(rename = "line3DChart")]
18146    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18147    pub line3_d_chart: Vec<Line3DChart>,
18148    #[cfg(feature = "dml-charts")]
18149    #[serde(rename = "stockChart")]
18150    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18151    pub stock_chart: Vec<StockChart>,
18152    #[cfg(feature = "dml-charts")]
18153    #[serde(rename = "radarChart")]
18154    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18155    pub radar_chart: Vec<RadarChart>,
18156    #[cfg(feature = "dml-charts")]
18157    #[serde(rename = "scatterChart")]
18158    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18159    pub scatter_chart: Vec<ScatterChart>,
18160    #[cfg(feature = "dml-charts")]
18161    #[serde(rename = "pieChart")]
18162    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18163    pub pie_chart: Vec<PieChart>,
18164    #[cfg(feature = "dml-charts")]
18165    #[serde(rename = "pie3DChart")]
18166    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18167    pub pie3_d_chart: Vec<Pie3DChart>,
18168    #[cfg(feature = "dml-charts")]
18169    #[serde(rename = "doughnutChart")]
18170    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18171    pub doughnut_chart: Vec<DoughnutChart>,
18172    #[cfg(feature = "dml-charts")]
18173    #[serde(rename = "barChart")]
18174    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18175    pub bar_chart: Vec<BarChart>,
18176    #[cfg(feature = "dml-charts")]
18177    #[serde(rename = "bar3DChart")]
18178    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18179    pub bar3_d_chart: Vec<Bar3DChart>,
18180    #[cfg(feature = "dml-charts")]
18181    #[serde(rename = "ofPieChart")]
18182    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18183    pub of_pie_chart: Vec<OfPieChart>,
18184    #[cfg(feature = "dml-charts")]
18185    #[serde(rename = "surfaceChart")]
18186    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18187    pub surface_chart: Vec<SurfaceChart>,
18188    #[cfg(feature = "dml-charts")]
18189    #[serde(rename = "surface3DChart")]
18190    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18191    pub surface3_d_chart: Vec<Surface3DChart>,
18192    #[cfg(feature = "dml-charts")]
18193    #[serde(rename = "bubbleChart")]
18194    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18195    pub bubble_chart: Vec<BubbleChart>,
18196    #[cfg(feature = "dml-charts")]
18197    #[serde(rename = "valAx")]
18198    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18199    pub val_ax: Vec<ValueAxis>,
18200    #[cfg(feature = "dml-charts")]
18201    #[serde(rename = "catAx")]
18202    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18203    pub cat_ax: Vec<CategoryAxis>,
18204    #[cfg(feature = "dml-charts")]
18205    #[serde(rename = "dateAx")]
18206    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18207    pub date_ax: Vec<DateAxis>,
18208    #[cfg(feature = "dml-charts")]
18209    #[serde(rename = "serAx")]
18210    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18211    pub ser_ax: Vec<SeriesAxis>,
18212    #[cfg(feature = "dml-charts")]
18213    #[serde(rename = "dTable")]
18214    #[serde(default, skip_serializing_if = "Option::is_none")]
18215    pub d_table: Option<Box<DataTable>>,
18216    #[cfg(feature = "dml-charts")]
18217    #[serde(rename = "spPr")]
18218    #[serde(default, skip_serializing_if = "Option::is_none")]
18219    pub sp_pr: Option<Box<CTShapeProperties>>,
18220    #[cfg(feature = "dml-charts")]
18221    #[serde(rename = "extLst")]
18222    #[serde(default, skip_serializing_if = "Option::is_none")]
18223    pub ext_lst: Option<Box<ChartExtensionList>>,
18224    /// Unknown child elements captured for roundtrip fidelity.
18225    #[cfg(feature = "extra-children")]
18226    #[serde(skip)]
18227    #[cfg(feature = "extra-children")]
18228    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18229}
18230
18231#[derive(Debug, Clone, Serialize, Deserialize)]
18232pub struct PivotFormat {
18233    #[cfg(feature = "dml-charts")]
18234    #[serde(rename = "idx")]
18235    pub idx: Box<CTUnsignedInt>,
18236    #[cfg(feature = "dml-charts")]
18237    #[serde(rename = "spPr")]
18238    #[serde(default, skip_serializing_if = "Option::is_none")]
18239    pub sp_pr: Option<Box<CTShapeProperties>>,
18240    #[cfg(feature = "dml-charts")]
18241    #[serde(rename = "txPr")]
18242    #[serde(default, skip_serializing_if = "Option::is_none")]
18243    pub tx_pr: Option<Box<TextBody>>,
18244    #[cfg(feature = "dml-charts")]
18245    #[serde(rename = "marker")]
18246    #[serde(default, skip_serializing_if = "Option::is_none")]
18247    pub marker: Option<Box<ChartMarker>>,
18248    #[cfg(feature = "dml-charts")]
18249    #[serde(rename = "dLbl")]
18250    #[serde(default, skip_serializing_if = "Option::is_none")]
18251    pub d_lbl: Option<Box<DataLabel>>,
18252    #[cfg(feature = "dml-charts")]
18253    #[serde(rename = "extLst")]
18254    #[serde(default, skip_serializing_if = "Option::is_none")]
18255    pub ext_lst: Option<Box<ChartExtensionList>>,
18256    /// Unknown child elements captured for roundtrip fidelity.
18257    #[cfg(feature = "extra-children")]
18258    #[serde(skip)]
18259    #[cfg(feature = "extra-children")]
18260    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18261}
18262
18263#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18264pub struct PivotFormats {
18265    #[cfg(feature = "dml-charts")]
18266    #[serde(rename = "pivotFmt")]
18267    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18268    pub pivot_fmt: Vec<PivotFormat>,
18269    /// Unknown child elements captured for roundtrip fidelity.
18270    #[cfg(feature = "extra-children")]
18271    #[serde(skip)]
18272    #[cfg(feature = "extra-children")]
18273    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18274}
18275
18276#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18277pub struct LegendPosition {
18278    #[cfg(feature = "dml-charts")]
18279    #[serde(rename = "@val")]
18280    #[serde(default, skip_serializing_if = "Option::is_none")]
18281    pub value: Option<LegendPositionType>,
18282    /// Unknown attributes captured for roundtrip fidelity.
18283    #[cfg(feature = "extra-attrs")]
18284    #[serde(skip)]
18285    #[cfg(feature = "extra-attrs")]
18286    #[serde(default)]
18287    #[cfg(feature = "extra-attrs")]
18288    pub extra_attrs: std::collections::HashMap<String, String>,
18289}
18290
18291#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18292pub struct EGLegendEntryData {
18293    #[serde(rename = "txPr")]
18294    #[serde(default, skip_serializing_if = "Option::is_none")]
18295    pub tx_pr: Option<Box<TextBody>>,
18296    /// Unknown child elements captured for roundtrip fidelity.
18297    #[cfg(feature = "extra-children")]
18298    #[serde(skip)]
18299    #[cfg(feature = "extra-children")]
18300    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18301}
18302
18303#[derive(Debug, Clone, Serialize, Deserialize)]
18304pub struct LegendEntry {
18305    #[cfg(feature = "dml-charts")]
18306    #[serde(rename = "idx")]
18307    pub idx: Box<CTUnsignedInt>,
18308    #[cfg(feature = "dml-charts")]
18309    #[serde(rename = "delete")]
18310    #[serde(default, skip_serializing_if = "Option::is_none")]
18311    pub delete: Option<Box<CTBoolean>>,
18312    #[cfg(feature = "dml-charts")]
18313    #[serde(rename = "txPr")]
18314    #[serde(default, skip_serializing_if = "Option::is_none")]
18315    pub tx_pr: Option<Box<TextBody>>,
18316    #[cfg(feature = "dml-charts")]
18317    #[serde(rename = "extLst")]
18318    #[serde(default, skip_serializing_if = "Option::is_none")]
18319    pub ext_lst: Option<Box<ChartExtensionList>>,
18320    /// Unknown child elements captured for roundtrip fidelity.
18321    #[cfg(feature = "extra-children")]
18322    #[serde(skip)]
18323    #[cfg(feature = "extra-children")]
18324    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18325}
18326
18327#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18328pub struct Legend {
18329    #[cfg(feature = "dml-charts")]
18330    #[serde(rename = "legendPos")]
18331    #[serde(default, skip_serializing_if = "Option::is_none")]
18332    pub legend_pos: Option<Box<LegendPosition>>,
18333    #[cfg(feature = "dml-charts")]
18334    #[serde(rename = "legendEntry")]
18335    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18336    pub legend_entry: Vec<LegendEntry>,
18337    #[cfg(feature = "dml-charts")]
18338    #[serde(rename = "layout")]
18339    #[serde(default, skip_serializing_if = "Option::is_none")]
18340    pub layout: Option<Box<ChartLayout>>,
18341    #[cfg(feature = "dml-charts")]
18342    #[serde(rename = "overlay")]
18343    #[serde(default, skip_serializing_if = "Option::is_none")]
18344    pub overlay: Option<Box<CTBoolean>>,
18345    #[cfg(feature = "dml-charts")]
18346    #[serde(rename = "spPr")]
18347    #[serde(default, skip_serializing_if = "Option::is_none")]
18348    pub sp_pr: Option<Box<CTShapeProperties>>,
18349    #[cfg(feature = "dml-charts")]
18350    #[serde(rename = "txPr")]
18351    #[serde(default, skip_serializing_if = "Option::is_none")]
18352    pub tx_pr: Option<Box<TextBody>>,
18353    #[cfg(feature = "dml-charts")]
18354    #[serde(rename = "extLst")]
18355    #[serde(default, skip_serializing_if = "Option::is_none")]
18356    pub ext_lst: Option<Box<ChartExtensionList>>,
18357    /// Unknown child elements captured for roundtrip fidelity.
18358    #[cfg(feature = "extra-children")]
18359    #[serde(skip)]
18360    #[cfg(feature = "extra-children")]
18361    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18362}
18363
18364#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18365pub struct DisplayBlanksAs {
18366    #[cfg(feature = "dml-charts")]
18367    #[serde(rename = "@val")]
18368    #[serde(default, skip_serializing_if = "Option::is_none")]
18369    pub value: Option<DisplayBlanksAsType>,
18370    /// Unknown attributes captured for roundtrip fidelity.
18371    #[cfg(feature = "extra-attrs")]
18372    #[serde(skip)]
18373    #[cfg(feature = "extra-attrs")]
18374    #[serde(default)]
18375    #[cfg(feature = "extra-attrs")]
18376    pub extra_attrs: std::collections::HashMap<String, String>,
18377}
18378
18379#[derive(Debug, Clone, Serialize, Deserialize)]
18380pub struct Chart {
18381    #[cfg(feature = "dml-charts")]
18382    #[serde(rename = "title")]
18383    #[serde(default, skip_serializing_if = "Option::is_none")]
18384    pub title: Option<Box<ChartTitle>>,
18385    #[cfg(feature = "dml-charts")]
18386    #[serde(rename = "autoTitleDeleted")]
18387    #[serde(default, skip_serializing_if = "Option::is_none")]
18388    pub auto_title_deleted: Option<Box<CTBoolean>>,
18389    #[cfg(feature = "dml-charts")]
18390    #[serde(rename = "pivotFmts")]
18391    #[serde(default, skip_serializing_if = "Option::is_none")]
18392    pub pivot_fmts: Option<Box<PivotFormats>>,
18393    #[cfg(feature = "dml-charts")]
18394    #[serde(rename = "view3D")]
18395    #[serde(default, skip_serializing_if = "Option::is_none")]
18396    pub view3_d: Option<Box<View3D>>,
18397    #[cfg(feature = "dml-charts")]
18398    #[serde(rename = "floor")]
18399    #[serde(default, skip_serializing_if = "Option::is_none")]
18400    pub floor: Option<Box<ChartSurface>>,
18401    #[cfg(feature = "dml-charts")]
18402    #[serde(rename = "sideWall")]
18403    #[serde(default, skip_serializing_if = "Option::is_none")]
18404    pub side_wall: Option<Box<ChartSurface>>,
18405    #[cfg(feature = "dml-charts")]
18406    #[serde(rename = "backWall")]
18407    #[serde(default, skip_serializing_if = "Option::is_none")]
18408    pub back_wall: Option<Box<ChartSurface>>,
18409    #[cfg(feature = "dml-charts")]
18410    #[serde(rename = "plotArea")]
18411    pub plot_area: Box<PlotArea>,
18412    #[cfg(feature = "dml-charts")]
18413    #[serde(rename = "legend")]
18414    #[serde(default, skip_serializing_if = "Option::is_none")]
18415    pub legend: Option<Box<Legend>>,
18416    #[cfg(feature = "dml-charts")]
18417    #[serde(rename = "plotVisOnly")]
18418    #[serde(default, skip_serializing_if = "Option::is_none")]
18419    pub plot_vis_only: Option<Box<CTBoolean>>,
18420    #[cfg(feature = "dml-charts")]
18421    #[serde(rename = "dispBlanksAs")]
18422    #[serde(default, skip_serializing_if = "Option::is_none")]
18423    pub disp_blanks_as: Option<Box<DisplayBlanksAs>>,
18424    #[cfg(feature = "dml-charts")]
18425    #[serde(rename = "showDLblsOverMax")]
18426    #[serde(default, skip_serializing_if = "Option::is_none")]
18427    pub show_d_lbls_over_max: Option<Box<CTBoolean>>,
18428    #[cfg(feature = "dml-charts")]
18429    #[serde(rename = "extLst")]
18430    #[serde(default, skip_serializing_if = "Option::is_none")]
18431    pub ext_lst: Option<Box<ChartExtensionList>>,
18432    /// Unknown child elements captured for roundtrip fidelity.
18433    #[cfg(feature = "extra-children")]
18434    #[serde(skip)]
18435    #[cfg(feature = "extra-children")]
18436    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18437}
18438
18439#[derive(Debug, Clone, Serialize, Deserialize)]
18440pub struct ChartStyle {
18441    #[cfg(feature = "dml-charts")]
18442    #[serde(rename = "@val")]
18443    pub value: ChartStyleValue,
18444    /// Unknown attributes captured for roundtrip fidelity.
18445    #[cfg(feature = "extra-attrs")]
18446    #[serde(skip)]
18447    #[cfg(feature = "extra-attrs")]
18448    #[serde(default)]
18449    #[cfg(feature = "extra-attrs")]
18450    pub extra_attrs: std::collections::HashMap<String, String>,
18451}
18452
18453#[derive(Debug, Clone, Serialize, Deserialize)]
18454pub struct PivotSource {
18455    #[cfg(feature = "dml-charts")]
18456    #[serde(rename = "name")]
18457    pub name: XmlString,
18458    #[cfg(feature = "dml-charts")]
18459    #[serde(rename = "fmtId")]
18460    pub fmt_id: Box<CTUnsignedInt>,
18461    #[cfg(feature = "dml-charts")]
18462    #[serde(rename = "extLst")]
18463    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18464    pub ext_lst: Vec<ChartExtensionList>,
18465    /// Unknown child elements captured for roundtrip fidelity.
18466    #[cfg(feature = "extra-children")]
18467    #[serde(skip)]
18468    #[cfg(feature = "extra-children")]
18469    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18470}
18471
18472#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18473pub struct ChartProtection {
18474    #[cfg(feature = "dml-charts")]
18475    #[serde(rename = "chartObject")]
18476    #[serde(default, skip_serializing_if = "Option::is_none")]
18477    pub chart_object: Option<Box<CTBoolean>>,
18478    #[cfg(feature = "dml-charts")]
18479    #[serde(rename = "data")]
18480    #[serde(default, skip_serializing_if = "Option::is_none")]
18481    pub data: Option<Box<CTBoolean>>,
18482    #[cfg(feature = "dml-charts")]
18483    #[serde(rename = "formatting")]
18484    #[serde(default, skip_serializing_if = "Option::is_none")]
18485    pub formatting: Option<Box<CTBoolean>>,
18486    #[cfg(feature = "dml-charts")]
18487    #[serde(rename = "selection")]
18488    #[serde(default, skip_serializing_if = "Option::is_none")]
18489    pub selection: Option<Box<CTBoolean>>,
18490    #[cfg(feature = "dml-charts")]
18491    #[serde(rename = "userInterface")]
18492    #[serde(default, skip_serializing_if = "Option::is_none")]
18493    pub user_interface: Option<Box<CTBoolean>>,
18494    /// Unknown child elements captured for roundtrip fidelity.
18495    #[cfg(feature = "extra-children")]
18496    #[serde(skip)]
18497    #[cfg(feature = "extra-children")]
18498    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18499}
18500
18501#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18502pub struct ChartHeaderFooter {
18503    #[cfg(feature = "dml-charts")]
18504    #[serde(rename = "@alignWithMargins")]
18505    #[serde(
18506        default,
18507        skip_serializing_if = "Option::is_none",
18508        with = "ooxml_xml::ooxml_bool"
18509    )]
18510    pub align_with_margins: Option<bool>,
18511    #[cfg(feature = "dml-charts")]
18512    #[serde(rename = "@differentOddEven")]
18513    #[serde(
18514        default,
18515        skip_serializing_if = "Option::is_none",
18516        with = "ooxml_xml::ooxml_bool"
18517    )]
18518    pub different_odd_even: Option<bool>,
18519    #[cfg(feature = "dml-charts")]
18520    #[serde(rename = "@differentFirst")]
18521    #[serde(
18522        default,
18523        skip_serializing_if = "Option::is_none",
18524        with = "ooxml_xml::ooxml_bool"
18525    )]
18526    pub different_first: Option<bool>,
18527    #[cfg(feature = "dml-charts")]
18528    #[serde(rename = "oddHeader")]
18529    #[serde(default, skip_serializing_if = "Option::is_none")]
18530    pub odd_header: Option<XmlString>,
18531    #[cfg(feature = "dml-charts")]
18532    #[serde(rename = "oddFooter")]
18533    #[serde(default, skip_serializing_if = "Option::is_none")]
18534    pub odd_footer: Option<XmlString>,
18535    #[cfg(feature = "dml-charts")]
18536    #[serde(rename = "evenHeader")]
18537    #[serde(default, skip_serializing_if = "Option::is_none")]
18538    pub even_header: Option<XmlString>,
18539    #[cfg(feature = "dml-charts")]
18540    #[serde(rename = "evenFooter")]
18541    #[serde(default, skip_serializing_if = "Option::is_none")]
18542    pub even_footer: Option<XmlString>,
18543    #[cfg(feature = "dml-charts")]
18544    #[serde(rename = "firstHeader")]
18545    #[serde(default, skip_serializing_if = "Option::is_none")]
18546    pub first_header: Option<XmlString>,
18547    #[cfg(feature = "dml-charts")]
18548    #[serde(rename = "firstFooter")]
18549    #[serde(default, skip_serializing_if = "Option::is_none")]
18550    pub first_footer: Option<XmlString>,
18551    /// Unknown attributes captured for roundtrip fidelity.
18552    #[cfg(feature = "extra-attrs")]
18553    #[serde(skip)]
18554    #[cfg(feature = "extra-attrs")]
18555    #[serde(default)]
18556    #[cfg(feature = "extra-attrs")]
18557    pub extra_attrs: std::collections::HashMap<String, String>,
18558    /// Unknown child elements captured for roundtrip fidelity.
18559    #[cfg(feature = "extra-children")]
18560    #[serde(skip)]
18561    #[cfg(feature = "extra-children")]
18562    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18563}
18564
18565#[derive(Debug, Clone, Serialize, Deserialize)]
18566pub struct ChartPageMargins {
18567    #[cfg(feature = "dml-charts")]
18568    #[serde(rename = "@l")]
18569    pub l: f64,
18570    #[cfg(feature = "dml-charts")]
18571    #[serde(rename = "@r")]
18572    pub relationship_id: f64,
18573    #[cfg(feature = "dml-charts")]
18574    #[serde(rename = "@t")]
18575    pub t: f64,
18576    #[cfg(feature = "dml-charts")]
18577    #[serde(rename = "@b")]
18578    pub b: f64,
18579    #[cfg(feature = "dml-charts")]
18580    #[serde(rename = "@header")]
18581    pub header: f64,
18582    #[cfg(feature = "dml-charts")]
18583    #[serde(rename = "@footer")]
18584    pub footer: f64,
18585    /// Unknown attributes captured for roundtrip fidelity.
18586    #[cfg(feature = "extra-attrs")]
18587    #[serde(skip)]
18588    #[cfg(feature = "extra-attrs")]
18589    #[serde(default)]
18590    #[cfg(feature = "extra-attrs")]
18591    pub extra_attrs: std::collections::HashMap<String, String>,
18592}
18593
18594#[derive(Debug, Clone, Serialize, Deserialize)]
18595pub struct ExternalData {
18596    #[cfg(feature = "dml-charts")]
18597    #[serde(rename = "@r:id")]
18598    pub id: STRelationshipId,
18599    #[cfg(feature = "dml-charts")]
18600    #[serde(rename = "autoUpdate")]
18601    #[serde(default, skip_serializing_if = "Option::is_none")]
18602    pub auto_update: Option<Box<CTBoolean>>,
18603    /// Unknown attributes captured for roundtrip fidelity.
18604    #[cfg(feature = "extra-attrs")]
18605    #[serde(skip)]
18606    #[cfg(feature = "extra-attrs")]
18607    #[serde(default)]
18608    #[cfg(feature = "extra-attrs")]
18609    pub extra_attrs: std::collections::HashMap<String, String>,
18610    /// Unknown child elements captured for roundtrip fidelity.
18611    #[cfg(feature = "extra-children")]
18612    #[serde(skip)]
18613    #[cfg(feature = "extra-children")]
18614    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18615}
18616
18617#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18618pub struct ChartPageSetup {
18619    #[cfg(feature = "dml-charts")]
18620    #[serde(rename = "@paperSize")]
18621    #[serde(default, skip_serializing_if = "Option::is_none")]
18622    pub paper_size: Option<u32>,
18623    #[cfg(feature = "dml-charts")]
18624    #[serde(rename = "@paperHeight")]
18625    #[serde(default, skip_serializing_if = "Option::is_none")]
18626    pub paper_height: Option<STPositiveUniversalMeasure>,
18627    #[cfg(feature = "dml-charts")]
18628    #[serde(rename = "@paperWidth")]
18629    #[serde(default, skip_serializing_if = "Option::is_none")]
18630    pub paper_width: Option<STPositiveUniversalMeasure>,
18631    #[cfg(feature = "dml-charts")]
18632    #[serde(rename = "@firstPageNumber")]
18633    #[serde(default, skip_serializing_if = "Option::is_none")]
18634    pub first_page_number: Option<u32>,
18635    #[cfg(feature = "dml-charts")]
18636    #[serde(rename = "@orientation")]
18637    #[serde(default, skip_serializing_if = "Option::is_none")]
18638    pub orientation: Option<ChartPageOrientation>,
18639    #[cfg(feature = "dml-charts")]
18640    #[serde(rename = "@blackAndWhite")]
18641    #[serde(
18642        default,
18643        skip_serializing_if = "Option::is_none",
18644        with = "ooxml_xml::ooxml_bool"
18645    )]
18646    pub black_and_white: Option<bool>,
18647    #[cfg(feature = "dml-charts")]
18648    #[serde(rename = "@draft")]
18649    #[serde(
18650        default,
18651        skip_serializing_if = "Option::is_none",
18652        with = "ooxml_xml::ooxml_bool"
18653    )]
18654    pub draft: Option<bool>,
18655    #[cfg(feature = "dml-charts")]
18656    #[serde(rename = "@useFirstPageNumber")]
18657    #[serde(
18658        default,
18659        skip_serializing_if = "Option::is_none",
18660        with = "ooxml_xml::ooxml_bool"
18661    )]
18662    pub use_first_page_number: Option<bool>,
18663    #[cfg(feature = "dml-charts")]
18664    #[serde(rename = "@horizontalDpi")]
18665    #[serde(default, skip_serializing_if = "Option::is_none")]
18666    pub horizontal_dpi: Option<i32>,
18667    #[cfg(feature = "dml-charts")]
18668    #[serde(rename = "@verticalDpi")]
18669    #[serde(default, skip_serializing_if = "Option::is_none")]
18670    pub vertical_dpi: Option<i32>,
18671    #[cfg(feature = "dml-charts")]
18672    #[serde(rename = "@copies")]
18673    #[serde(default, skip_serializing_if = "Option::is_none")]
18674    pub copies: Option<u32>,
18675    /// Unknown attributes captured for roundtrip fidelity.
18676    #[cfg(feature = "extra-attrs")]
18677    #[serde(skip)]
18678    #[cfg(feature = "extra-attrs")]
18679    #[serde(default)]
18680    #[cfg(feature = "extra-attrs")]
18681    pub extra_attrs: std::collections::HashMap<String, String>,
18682}
18683
18684#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18685pub struct PrintSettings {
18686    #[cfg(feature = "dml-charts")]
18687    #[serde(rename = "headerFooter")]
18688    #[serde(default, skip_serializing_if = "Option::is_none")]
18689    pub header_footer: Option<Box<ChartHeaderFooter>>,
18690    #[cfg(feature = "dml-charts")]
18691    #[serde(rename = "pageMargins")]
18692    #[serde(default, skip_serializing_if = "Option::is_none")]
18693    pub page_margins: Option<Box<ChartPageMargins>>,
18694    #[cfg(feature = "dml-charts")]
18695    #[serde(rename = "pageSetup")]
18696    #[serde(default, skip_serializing_if = "Option::is_none")]
18697    pub page_setup: Option<Box<ChartPageSetup>>,
18698    #[cfg(feature = "dml-charts")]
18699    #[serde(rename = "legacyDrawingHF")]
18700    #[serde(default, skip_serializing_if = "Option::is_none")]
18701    pub legacy_drawing_h_f: Option<Box<ChartRelId>>,
18702    /// Unknown child elements captured for roundtrip fidelity.
18703    #[cfg(feature = "extra-children")]
18704    #[serde(skip)]
18705    #[cfg(feature = "extra-children")]
18706    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18707}
18708
18709#[derive(Debug, Clone, Serialize, Deserialize)]
18710pub struct ChartSpace {
18711    #[cfg(feature = "dml-charts")]
18712    #[serde(rename = "date1904")]
18713    #[serde(default, skip_serializing_if = "Option::is_none")]
18714    pub date1904: Option<Box<CTBoolean>>,
18715    #[cfg(feature = "dml-charts")]
18716    #[serde(rename = "lang")]
18717    #[serde(default, skip_serializing_if = "Option::is_none")]
18718    pub lang: Option<Box<TextLanguageId>>,
18719    #[cfg(feature = "dml-charts")]
18720    #[serde(rename = "roundedCorners")]
18721    #[serde(default, skip_serializing_if = "Option::is_none")]
18722    pub rounded_corners: Option<Box<CTBoolean>>,
18723    #[cfg(feature = "dml-charts")]
18724    #[serde(rename = "style")]
18725    #[serde(default, skip_serializing_if = "Option::is_none")]
18726    pub style: Option<Box<ChartStyle>>,
18727    #[cfg(feature = "dml-charts")]
18728    #[serde(rename = "clrMapOvr")]
18729    #[serde(default, skip_serializing_if = "Option::is_none")]
18730    pub clr_map_ovr: Option<Box<CTColorMapping>>,
18731    #[cfg(feature = "dml-charts")]
18732    #[serde(rename = "pivotSource")]
18733    #[serde(default, skip_serializing_if = "Option::is_none")]
18734    pub pivot_source: Option<Box<PivotSource>>,
18735    #[cfg(feature = "dml-charts")]
18736    #[serde(rename = "protection")]
18737    #[serde(default, skip_serializing_if = "Option::is_none")]
18738    pub protection: Option<Box<ChartProtection>>,
18739    #[cfg(feature = "dml-charts")]
18740    #[serde(rename = "chart")]
18741    pub chart: Box<Chart>,
18742    #[cfg(feature = "dml-charts")]
18743    #[serde(rename = "spPr")]
18744    #[serde(default, skip_serializing_if = "Option::is_none")]
18745    pub sp_pr: Option<Box<CTShapeProperties>>,
18746    #[cfg(feature = "dml-charts")]
18747    #[serde(rename = "txPr")]
18748    #[serde(default, skip_serializing_if = "Option::is_none")]
18749    pub tx_pr: Option<Box<TextBody>>,
18750    #[cfg(feature = "dml-charts")]
18751    #[serde(rename = "externalData")]
18752    #[serde(default, skip_serializing_if = "Option::is_none")]
18753    pub external_data: Option<Box<ExternalData>>,
18754    #[cfg(feature = "dml-charts")]
18755    #[serde(rename = "printSettings")]
18756    #[serde(default, skip_serializing_if = "Option::is_none")]
18757    pub print_settings: Option<Box<PrintSettings>>,
18758    #[cfg(feature = "dml-charts")]
18759    #[serde(rename = "userShapes")]
18760    #[serde(default, skip_serializing_if = "Option::is_none")]
18761    pub user_shapes: Option<Box<ChartRelId>>,
18762    #[cfg(feature = "dml-charts")]
18763    #[serde(rename = "extLst")]
18764    #[serde(default, skip_serializing_if = "Option::is_none")]
18765    pub ext_lst: Option<Box<ChartExtensionList>>,
18766    /// Unknown child elements captured for roundtrip fidelity.
18767    #[cfg(feature = "extra-children")]
18768    #[serde(skip)]
18769    #[cfg(feature = "extra-children")]
18770    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18771}
18772
18773pub type DchrtChartSpace = Box<ChartSpace>;
18774
18775pub type DchrtUserShapes = String;
18776
18777pub type DchrtChart = Box<ChartRelId>;
18778
18779#[derive(Debug, Clone, Serialize, Deserialize)]
18780pub struct ColorTransformName {
18781    #[cfg(feature = "dml-diagrams")]
18782    #[serde(rename = "@lang")]
18783    #[serde(default, skip_serializing_if = "Option::is_none")]
18784    pub lang: Option<String>,
18785    #[cfg(feature = "dml-diagrams")]
18786    #[serde(rename = "@val")]
18787    pub value: String,
18788    /// Unknown attributes captured for roundtrip fidelity.
18789    #[cfg(feature = "extra-attrs")]
18790    #[serde(skip)]
18791    #[cfg(feature = "extra-attrs")]
18792    #[serde(default)]
18793    #[cfg(feature = "extra-attrs")]
18794    pub extra_attrs: std::collections::HashMap<String, String>,
18795}
18796
18797#[derive(Debug, Clone, Serialize, Deserialize)]
18798pub struct ColorTransformDescription {
18799    #[cfg(feature = "dml-diagrams")]
18800    #[serde(rename = "@lang")]
18801    #[serde(default, skip_serializing_if = "Option::is_none")]
18802    pub lang: Option<String>,
18803    #[cfg(feature = "dml-diagrams")]
18804    #[serde(rename = "@val")]
18805    pub value: String,
18806    /// Unknown attributes captured for roundtrip fidelity.
18807    #[cfg(feature = "extra-attrs")]
18808    #[serde(skip)]
18809    #[cfg(feature = "extra-attrs")]
18810    #[serde(default)]
18811    #[cfg(feature = "extra-attrs")]
18812    pub extra_attrs: std::collections::HashMap<String, String>,
18813}
18814
18815#[derive(Debug, Clone, Serialize, Deserialize)]
18816pub struct DiagramColorCategory {
18817    #[cfg(feature = "dml-diagrams")]
18818    #[serde(rename = "@type")]
18819    pub r#type: String,
18820    #[cfg(feature = "dml-diagrams")]
18821    #[serde(rename = "@pri")]
18822    pub pri: u32,
18823    /// Unknown attributes captured for roundtrip fidelity.
18824    #[cfg(feature = "extra-attrs")]
18825    #[serde(skip)]
18826    #[cfg(feature = "extra-attrs")]
18827    #[serde(default)]
18828    #[cfg(feature = "extra-attrs")]
18829    pub extra_attrs: std::collections::HashMap<String, String>,
18830}
18831
18832#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18833pub struct DiagramColorCategories {
18834    #[cfg(feature = "dml-diagrams")]
18835    #[serde(rename = "cat")]
18836    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18837    pub cat: Vec<DiagramColorCategory>,
18838    /// Unknown child elements captured for roundtrip fidelity.
18839    #[cfg(feature = "extra-children")]
18840    #[serde(skip)]
18841    #[cfg(feature = "extra-children")]
18842    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18843}
18844
18845#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18846pub struct DiagramColors {
18847    #[cfg(feature = "dml-diagrams")]
18848    #[serde(rename = "@meth")]
18849    #[serde(default, skip_serializing_if = "Option::is_none")]
18850    pub meth: Option<STClrAppMethod>,
18851    #[cfg(feature = "dml-diagrams")]
18852    #[serde(rename = "@hueDir")]
18853    #[serde(default, skip_serializing_if = "Option::is_none")]
18854    pub hue_dir: Option<STHueDir>,
18855    #[cfg(feature = "dml-diagrams")]
18856    #[serde(skip)]
18857    #[serde(default)]
18858    pub color_choice: Vec<EGColorChoice>,
18859    /// Unknown attributes captured for roundtrip fidelity.
18860    #[cfg(feature = "extra-attrs")]
18861    #[serde(skip)]
18862    #[cfg(feature = "extra-attrs")]
18863    #[serde(default)]
18864    #[cfg(feature = "extra-attrs")]
18865    pub extra_attrs: std::collections::HashMap<String, String>,
18866    /// Unknown child elements captured for roundtrip fidelity.
18867    #[cfg(feature = "extra-children")]
18868    #[serde(skip)]
18869    #[cfg(feature = "extra-children")]
18870    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18871}
18872
18873#[derive(Debug, Clone, Serialize, Deserialize)]
18874pub struct DiagramColorStyleLabel {
18875    #[cfg(feature = "dml-diagrams")]
18876    #[serde(rename = "@name")]
18877    pub name: String,
18878    #[cfg(feature = "dml-diagrams")]
18879    #[serde(rename = "fillClrLst")]
18880    #[serde(default, skip_serializing_if = "Option::is_none")]
18881    pub fill_clr_lst: Option<Box<DiagramColors>>,
18882    #[cfg(feature = "dml-diagrams")]
18883    #[serde(rename = "linClrLst")]
18884    #[serde(default, skip_serializing_if = "Option::is_none")]
18885    pub lin_clr_lst: Option<Box<DiagramColors>>,
18886    #[cfg(feature = "dml-diagrams")]
18887    #[serde(rename = "effectClrLst")]
18888    #[serde(default, skip_serializing_if = "Option::is_none")]
18889    pub effect_clr_lst: Option<Box<DiagramColors>>,
18890    #[cfg(feature = "dml-diagrams")]
18891    #[serde(rename = "txLinClrLst")]
18892    #[serde(default, skip_serializing_if = "Option::is_none")]
18893    pub tx_lin_clr_lst: Option<Box<DiagramColors>>,
18894    #[cfg(feature = "dml-diagrams")]
18895    #[serde(rename = "txFillClrLst")]
18896    #[serde(default, skip_serializing_if = "Option::is_none")]
18897    pub tx_fill_clr_lst: Option<Box<DiagramColors>>,
18898    #[cfg(feature = "dml-diagrams")]
18899    #[serde(rename = "txEffectClrLst")]
18900    #[serde(default, skip_serializing_if = "Option::is_none")]
18901    pub tx_effect_clr_lst: Option<Box<DiagramColors>>,
18902    #[cfg(feature = "dml-diagrams")]
18903    #[serde(rename = "extLst")]
18904    #[serde(default, skip_serializing_if = "Option::is_none")]
18905    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
18906    /// Unknown attributes captured for roundtrip fidelity.
18907    #[cfg(feature = "extra-attrs")]
18908    #[serde(skip)]
18909    #[cfg(feature = "extra-attrs")]
18910    #[serde(default)]
18911    #[cfg(feature = "extra-attrs")]
18912    pub extra_attrs: std::collections::HashMap<String, String>,
18913    /// Unknown child elements captured for roundtrip fidelity.
18914    #[cfg(feature = "extra-children")]
18915    #[serde(skip)]
18916    #[cfg(feature = "extra-children")]
18917    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18918}
18919
18920#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18921pub struct DiagramColorTransform {
18922    #[cfg(feature = "dml-diagrams")]
18923    #[serde(rename = "@uniqueId")]
18924    #[serde(default, skip_serializing_if = "Option::is_none")]
18925    pub unique_id: Option<String>,
18926    #[cfg(feature = "dml-diagrams")]
18927    #[serde(rename = "@minVer")]
18928    #[serde(default, skip_serializing_if = "Option::is_none")]
18929    pub min_ver: Option<String>,
18930    #[cfg(feature = "dml-diagrams")]
18931    #[serde(rename = "title")]
18932    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18933    pub title: Vec<ColorTransformName>,
18934    #[cfg(feature = "dml-diagrams")]
18935    #[serde(rename = "desc")]
18936    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18937    pub desc: Vec<ColorTransformDescription>,
18938    #[cfg(feature = "dml-diagrams")]
18939    #[serde(rename = "catLst")]
18940    #[serde(default, skip_serializing_if = "Option::is_none")]
18941    pub cat_lst: Option<Box<DiagramColorCategories>>,
18942    #[cfg(feature = "dml-diagrams")]
18943    #[serde(rename = "styleLbl")]
18944    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18945    pub style_lbl: Vec<DiagramColorStyleLabel>,
18946    #[cfg(feature = "dml-diagrams")]
18947    #[serde(rename = "extLst")]
18948    #[serde(default, skip_serializing_if = "Option::is_none")]
18949    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
18950    /// Unknown attributes captured for roundtrip fidelity.
18951    #[cfg(feature = "extra-attrs")]
18952    #[serde(skip)]
18953    #[cfg(feature = "extra-attrs")]
18954    #[serde(default)]
18955    #[cfg(feature = "extra-attrs")]
18956    pub extra_attrs: std::collections::HashMap<String, String>,
18957    /// Unknown child elements captured for roundtrip fidelity.
18958    #[cfg(feature = "extra-children")]
18959    #[serde(skip)]
18960    #[cfg(feature = "extra-children")]
18961    pub extra_children: Vec<ooxml_xml::PositionedNode>,
18962}
18963
18964pub type DdgrmColorsDef = Box<DiagramColorTransform>;
18965
18966#[derive(Debug, Clone, Serialize, Deserialize)]
18967pub struct DiagramColorTransformHeader {
18968    #[cfg(feature = "dml-diagrams")]
18969    #[serde(rename = "@uniqueId")]
18970    pub unique_id: String,
18971    #[cfg(feature = "dml-diagrams")]
18972    #[serde(rename = "@minVer")]
18973    #[serde(default, skip_serializing_if = "Option::is_none")]
18974    pub min_ver: Option<String>,
18975    #[cfg(feature = "dml-diagrams")]
18976    #[serde(rename = "@resId")]
18977    #[serde(default, skip_serializing_if = "Option::is_none")]
18978    pub res_id: Option<i32>,
18979    #[cfg(feature = "dml-diagrams")]
18980    #[serde(rename = "title")]
18981    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18982    pub title: Vec<ColorTransformName>,
18983    #[cfg(feature = "dml-diagrams")]
18984    #[serde(rename = "desc")]
18985    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18986    pub desc: Vec<ColorTransformDescription>,
18987    #[cfg(feature = "dml-diagrams")]
18988    #[serde(rename = "catLst")]
18989    #[serde(default, skip_serializing_if = "Option::is_none")]
18990    pub cat_lst: Option<Box<DiagramColorCategories>>,
18991    #[cfg(feature = "dml-diagrams")]
18992    #[serde(rename = "extLst")]
18993    #[serde(default, skip_serializing_if = "Option::is_none")]
18994    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
18995    /// Unknown attributes captured for roundtrip fidelity.
18996    #[cfg(feature = "extra-attrs")]
18997    #[serde(skip)]
18998    #[cfg(feature = "extra-attrs")]
18999    #[serde(default)]
19000    #[cfg(feature = "extra-attrs")]
19001    pub extra_attrs: std::collections::HashMap<String, String>,
19002    /// Unknown child elements captured for roundtrip fidelity.
19003    #[cfg(feature = "extra-children")]
19004    #[serde(skip)]
19005    #[cfg(feature = "extra-children")]
19006    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19007}
19008
19009pub type DdgrmColorsDefHdr = Box<DiagramColorTransformHeader>;
19010
19011#[derive(Debug, Clone, Default, Serialize, Deserialize)]
19012pub struct DiagramColorTransformHeaderList {
19013    #[cfg(feature = "dml-diagrams")]
19014    #[serde(rename = "colorsDefHdr")]
19015    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19016    pub colors_def_hdr: Vec<DiagramColorTransformHeader>,
19017    /// Unknown child elements captured for roundtrip fidelity.
19018    #[cfg(feature = "extra-children")]
19019    #[serde(skip)]
19020    #[cfg(feature = "extra-children")]
19021    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19022}
19023
19024pub type DdgrmColorsDefHdrLst = Box<DiagramColorTransformHeaderList>;
19025
19026#[derive(Debug, Clone, Serialize, Deserialize)]
19027pub struct DiagramPoint {
19028    #[cfg(feature = "dml-diagrams")]
19029    #[serde(rename = "@modelId")]
19030    pub model_id: STModelId,
19031    #[cfg(feature = "dml-diagrams")]
19032    #[serde(rename = "@type")]
19033    #[serde(default, skip_serializing_if = "Option::is_none")]
19034    pub r#type: Option<STPtType>,
19035    #[cfg(feature = "dml-diagrams")]
19036    #[serde(rename = "@cxnId")]
19037    #[serde(default, skip_serializing_if = "Option::is_none")]
19038    pub cxn_id: Option<STModelId>,
19039    #[cfg(feature = "dml-diagrams")]
19040    #[serde(rename = "prSet")]
19041    #[serde(default, skip_serializing_if = "Option::is_none")]
19042    pub pr_set: Option<Box<DiagramElementProperties>>,
19043    #[cfg(feature = "dml-diagrams")]
19044    #[serde(rename = "spPr")]
19045    #[serde(default, skip_serializing_if = "Option::is_none")]
19046    pub sp_pr: Option<Box<CTShapeProperties>>,
19047    #[cfg(feature = "dml-diagrams")]
19048    #[serde(rename = "t")]
19049    #[serde(default, skip_serializing_if = "Option::is_none")]
19050    pub t: Option<Box<TextBody>>,
19051    #[cfg(feature = "dml-diagrams")]
19052    #[serde(rename = "extLst")]
19053    #[serde(default, skip_serializing_if = "Option::is_none")]
19054    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
19055    /// Unknown attributes captured for roundtrip fidelity.
19056    #[cfg(feature = "extra-attrs")]
19057    #[serde(skip)]
19058    #[cfg(feature = "extra-attrs")]
19059    #[serde(default)]
19060    #[cfg(feature = "extra-attrs")]
19061    pub extra_attrs: std::collections::HashMap<String, String>,
19062    /// Unknown child elements captured for roundtrip fidelity.
19063    #[cfg(feature = "extra-children")]
19064    #[serde(skip)]
19065    #[cfg(feature = "extra-children")]
19066    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19067}
19068
19069#[derive(Debug, Clone, Default, Serialize, Deserialize)]
19070pub struct DiagramPointList {
19071    #[cfg(feature = "dml-diagrams")]
19072    #[serde(rename = "pt")]
19073    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19074    pub pt: Vec<DiagramPoint>,
19075    /// Unknown child elements captured for roundtrip fidelity.
19076    #[cfg(feature = "extra-children")]
19077    #[serde(skip)]
19078    #[cfg(feature = "extra-children")]
19079    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19080}
19081
19082#[derive(Debug, Clone, Serialize, Deserialize)]
19083pub struct DiagramConnection {
19084    #[cfg(feature = "dml-diagrams")]
19085    #[serde(rename = "@modelId")]
19086    pub model_id: STModelId,
19087    #[cfg(feature = "dml-diagrams")]
19088    #[serde(rename = "@type")]
19089    #[serde(default, skip_serializing_if = "Option::is_none")]
19090    pub r#type: Option<STCxnType>,
19091    #[cfg(feature = "dml-diagrams")]
19092    #[serde(rename = "@srcId")]
19093    pub src_id: STModelId,
19094    #[cfg(feature = "dml-diagrams")]
19095    #[serde(rename = "@destId")]
19096    pub dest_id: STModelId,
19097    #[cfg(feature = "dml-diagrams")]
19098    #[serde(rename = "@srcOrd")]
19099    pub src_ord: u32,
19100    #[cfg(feature = "dml-diagrams")]
19101    #[serde(rename = "@destOrd")]
19102    pub dest_ord: u32,
19103    #[cfg(feature = "dml-diagrams")]
19104    #[serde(rename = "@parTransId")]
19105    #[serde(default, skip_serializing_if = "Option::is_none")]
19106    pub par_trans_id: Option<STModelId>,
19107    #[cfg(feature = "dml-diagrams")]
19108    #[serde(rename = "@sibTransId")]
19109    #[serde(default, skip_serializing_if = "Option::is_none")]
19110    pub sib_trans_id: Option<STModelId>,
19111    #[cfg(feature = "dml-diagrams")]
19112    #[serde(rename = "@presId")]
19113    #[serde(default, skip_serializing_if = "Option::is_none")]
19114    pub pres_id: Option<String>,
19115    #[cfg(feature = "dml-diagrams")]
19116    #[serde(rename = "extLst")]
19117    #[serde(default, skip_serializing_if = "Option::is_none")]
19118    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
19119    /// Unknown attributes captured for roundtrip fidelity.
19120    #[cfg(feature = "extra-attrs")]
19121    #[serde(skip)]
19122    #[cfg(feature = "extra-attrs")]
19123    #[serde(default)]
19124    #[cfg(feature = "extra-attrs")]
19125    pub extra_attrs: std::collections::HashMap<String, String>,
19126    /// Unknown child elements captured for roundtrip fidelity.
19127    #[cfg(feature = "extra-children")]
19128    #[serde(skip)]
19129    #[cfg(feature = "extra-children")]
19130    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19131}
19132
19133#[derive(Debug, Clone, Default, Serialize, Deserialize)]
19134pub struct DiagramConnectionList {
19135    #[cfg(feature = "dml-diagrams")]
19136    #[serde(rename = "cxn")]
19137    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19138    pub cxn: Vec<DiagramConnection>,
19139    /// Unknown child elements captured for roundtrip fidelity.
19140    #[cfg(feature = "extra-children")]
19141    #[serde(skip)]
19142    #[cfg(feature = "extra-children")]
19143    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19144}
19145
19146#[derive(Debug, Clone, Serialize, Deserialize)]
19147pub struct DataModel {
19148    #[cfg(feature = "dml-diagrams")]
19149    #[serde(rename = "ptLst")]
19150    pub pt_lst: Box<DiagramPointList>,
19151    #[cfg(feature = "dml-diagrams")]
19152    #[serde(rename = "cxnLst")]
19153    #[serde(default, skip_serializing_if = "Option::is_none")]
19154    pub cxn_lst: Option<Box<DiagramConnectionList>>,
19155    #[cfg(feature = "dml-diagrams")]
19156    #[serde(rename = "bg")]
19157    #[serde(default, skip_serializing_if = "Option::is_none")]
19158    pub bg: Option<Box<CTBackgroundFormatting>>,
19159    #[cfg(feature = "dml-diagrams")]
19160    #[serde(rename = "whole")]
19161    #[serde(default, skip_serializing_if = "Option::is_none")]
19162    pub whole: Option<Box<CTWholeE2oFormatting>>,
19163    #[cfg(feature = "dml-diagrams")]
19164    #[serde(rename = "extLst")]
19165    #[serde(default, skip_serializing_if = "Option::is_none")]
19166    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
19167    /// Unknown child elements captured for roundtrip fidelity.
19168    #[cfg(feature = "extra-children")]
19169    #[serde(skip)]
19170    #[cfg(feature = "extra-children")]
19171    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19172}
19173
19174pub type DdgrmDataModel = Box<DataModel>;
19175
19176#[derive(Debug, Clone, Default, Serialize, Deserialize)]
19177pub struct DdgrmAGIteratorAttributes {
19178    #[serde(rename = "@axis")]
19179    #[serde(default, skip_serializing_if = "Option::is_none")]
19180    pub axis: Option<STAxisTypes>,
19181    #[serde(rename = "@ptType")]
19182    #[serde(default, skip_serializing_if = "Option::is_none")]
19183    pub pt_type: Option<STElementTypes>,
19184    #[serde(rename = "@hideLastTrans")]
19185    #[serde(default, skip_serializing_if = "Option::is_none")]
19186    pub hide_last_trans: Option<STBooleans>,
19187    #[serde(rename = "@st")]
19188    #[serde(default, skip_serializing_if = "Option::is_none")]
19189    pub st: Option<STInts>,
19190    #[serde(rename = "@cnt")]
19191    #[serde(default, skip_serializing_if = "Option::is_none")]
19192    pub cnt: Option<STUnsignedInts>,
19193    #[serde(rename = "@step")]
19194    #[serde(default, skip_serializing_if = "Option::is_none")]
19195    pub step: Option<STInts>,
19196    /// Unknown attributes captured for roundtrip fidelity.
19197    #[cfg(feature = "extra-attrs")]
19198    #[serde(skip)]
19199    #[cfg(feature = "extra-attrs")]
19200    #[serde(default)]
19201    #[cfg(feature = "extra-attrs")]
19202    pub extra_attrs: std::collections::HashMap<String, String>,
19203}
19204
19205#[derive(Debug, Clone, Serialize, Deserialize)]
19206pub struct DdgrmAGConstraintAttributes {
19207    #[serde(rename = "@type")]
19208    pub r#type: STConstraintType,
19209    #[serde(rename = "@for")]
19210    #[serde(default, skip_serializing_if = "Option::is_none")]
19211    pub r#for: Option<STConstraintRelationship>,
19212    #[serde(rename = "@forName")]
19213    #[serde(default, skip_serializing_if = "Option::is_none")]
19214    pub for_name: Option<String>,
19215    #[serde(rename = "@ptType")]
19216    #[serde(default, skip_serializing_if = "Option::is_none")]
19217    pub pt_type: Option<STElementType>,
19218    /// Unknown attributes captured for roundtrip fidelity.
19219    #[cfg(feature = "extra-attrs")]
19220    #[serde(skip)]
19221    #[cfg(feature = "extra-attrs")]
19222    #[serde(default)]
19223    #[cfg(feature = "extra-attrs")]
19224    pub extra_attrs: std::collections::HashMap<String, String>,
19225}
19226
19227#[derive(Debug, Clone, Default, Serialize, Deserialize)]
19228pub struct DdgrmAGConstraintRefAttributes {
19229    #[serde(rename = "@refType")]
19230    #[serde(default, skip_serializing_if = "Option::is_none")]
19231    pub ref_type: Option<STConstraintType>,
19232    #[serde(rename = "@refFor")]
19233    #[serde(default, skip_serializing_if = "Option::is_none")]
19234    pub ref_for: Option<STConstraintRelationship>,
19235    #[serde(rename = "@refForName")]
19236    #[serde(default, skip_serializing_if = "Option::is_none")]
19237    pub ref_for_name: Option<String>,
19238    #[serde(rename = "@refPtType")]
19239    #[serde(default, skip_serializing_if = "Option::is_none")]
19240    pub ref_pt_type: Option<STElementType>,
19241    /// Unknown attributes captured for roundtrip fidelity.
19242    #[cfg(feature = "extra-attrs")]
19243    #[serde(skip)]
19244    #[cfg(feature = "extra-attrs")]
19245    #[serde(default)]
19246    #[cfg(feature = "extra-attrs")]
19247    pub extra_attrs: std::collections::HashMap<String, String>,
19248}
19249
19250#[derive(Debug, Clone, Serialize, Deserialize)]
19251pub struct LayoutConstraint {
19252    #[cfg(feature = "dml-diagrams")]
19253    #[serde(rename = "@type")]
19254    pub r#type: STConstraintType,
19255    #[cfg(feature = "dml-diagrams")]
19256    #[serde(rename = "@for")]
19257    #[serde(default, skip_serializing_if = "Option::is_none")]
19258    pub r#for: Option<STConstraintRelationship>,
19259    #[cfg(feature = "dml-diagrams")]
19260    #[serde(rename = "@forName")]
19261    #[serde(default, skip_serializing_if = "Option::is_none")]
19262    pub for_name: Option<String>,
19263    #[cfg(feature = "dml-diagrams")]
19264    #[serde(rename = "@ptType")]
19265    #[serde(default, skip_serializing_if = "Option::is_none")]
19266    pub pt_type: Option<STElementType>,
19267    #[cfg(feature = "dml-diagrams")]
19268    #[serde(rename = "@refType")]
19269    #[serde(default, skip_serializing_if = "Option::is_none")]
19270    pub ref_type: Option<STConstraintType>,
19271    #[cfg(feature = "dml-diagrams")]
19272    #[serde(rename = "@refFor")]
19273    #[serde(default, skip_serializing_if = "Option::is_none")]
19274    pub ref_for: Option<STConstraintRelationship>,
19275    #[cfg(feature = "dml-diagrams")]
19276    #[serde(rename = "@refForName")]
19277    #[serde(default, skip_serializing_if = "Option::is_none")]
19278    pub ref_for_name: Option<String>,
19279    #[cfg(feature = "dml-diagrams")]
19280    #[serde(rename = "@refPtType")]
19281    #[serde(default, skip_serializing_if = "Option::is_none")]
19282    pub ref_pt_type: Option<STElementType>,
19283    #[cfg(feature = "dml-diagrams")]
19284    #[serde(rename = "@op")]
19285    #[serde(default, skip_serializing_if = "Option::is_none")]
19286    pub op: Option<STBoolOperator>,
19287    #[cfg(feature = "dml-diagrams")]
19288    #[serde(rename = "@val")]
19289    #[serde(default, skip_serializing_if = "Option::is_none")]
19290    pub value: Option<f64>,
19291    #[cfg(feature = "dml-diagrams")]
19292    #[serde(rename = "@fact")]
19293    #[serde(default, skip_serializing_if = "Option::is_none")]
19294    pub fact: Option<f64>,
19295    #[cfg(feature = "dml-diagrams")]
19296    #[serde(rename = "extLst")]
19297    #[serde(default, skip_serializing_if = "Option::is_none")]
19298    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
19299    /// Unknown attributes captured for roundtrip fidelity.
19300    #[cfg(feature = "extra-attrs")]
19301    #[serde(skip)]
19302    #[cfg(feature = "extra-attrs")]
19303    #[serde(default)]
19304    #[cfg(feature = "extra-attrs")]
19305    pub extra_attrs: std::collections::HashMap<String, String>,
19306    /// Unknown child elements captured for roundtrip fidelity.
19307    #[cfg(feature = "extra-children")]
19308    #[serde(skip)]
19309    #[cfg(feature = "extra-children")]
19310    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19311}
19312
19313#[derive(Debug, Clone, Default, Serialize, Deserialize)]
19314pub struct LayoutConstraints {
19315    #[cfg(feature = "dml-diagrams")]
19316    #[serde(rename = "constr")]
19317    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19318    pub constr: Vec<LayoutConstraint>,
19319    /// Unknown child elements captured for roundtrip fidelity.
19320    #[cfg(feature = "extra-children")]
19321    #[serde(skip)]
19322    #[cfg(feature = "extra-children")]
19323    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19324}
19325
19326#[derive(Debug, Clone, Serialize, Deserialize)]
19327pub struct NumericRule {
19328    #[cfg(feature = "dml-diagrams")]
19329    #[serde(rename = "@type")]
19330    pub r#type: STConstraintType,
19331    #[cfg(feature = "dml-diagrams")]
19332    #[serde(rename = "@for")]
19333    #[serde(default, skip_serializing_if = "Option::is_none")]
19334    pub r#for: Option<STConstraintRelationship>,
19335    #[cfg(feature = "dml-diagrams")]
19336    #[serde(rename = "@forName")]
19337    #[serde(default, skip_serializing_if = "Option::is_none")]
19338    pub for_name: Option<String>,
19339    #[cfg(feature = "dml-diagrams")]
19340    #[serde(rename = "@ptType")]
19341    #[serde(default, skip_serializing_if = "Option::is_none")]
19342    pub pt_type: Option<STElementType>,
19343    #[cfg(feature = "dml-diagrams")]
19344    #[serde(rename = "@val")]
19345    #[serde(default, skip_serializing_if = "Option::is_none")]
19346    pub value: Option<f64>,
19347    #[cfg(feature = "dml-diagrams")]
19348    #[serde(rename = "@fact")]
19349    #[serde(default, skip_serializing_if = "Option::is_none")]
19350    pub fact: Option<f64>,
19351    #[cfg(feature = "dml-diagrams")]
19352    #[serde(rename = "@max")]
19353    #[serde(default, skip_serializing_if = "Option::is_none")]
19354    pub max: Option<f64>,
19355    #[cfg(feature = "dml-diagrams")]
19356    #[serde(rename = "extLst")]
19357    #[serde(default, skip_serializing_if = "Option::is_none")]
19358    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
19359    /// Unknown attributes captured for roundtrip fidelity.
19360    #[cfg(feature = "extra-attrs")]
19361    #[serde(skip)]
19362    #[cfg(feature = "extra-attrs")]
19363    #[serde(default)]
19364    #[cfg(feature = "extra-attrs")]
19365    pub extra_attrs: std::collections::HashMap<String, String>,
19366    /// Unknown child elements captured for roundtrip fidelity.
19367    #[cfg(feature = "extra-children")]
19368    #[serde(skip)]
19369    #[cfg(feature = "extra-children")]
19370    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19371}
19372
19373#[derive(Debug, Clone, Default, Serialize, Deserialize)]
19374pub struct LayoutRules {
19375    #[cfg(feature = "dml-diagrams")]
19376    #[serde(rename = "rule")]
19377    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19378    pub rule: Vec<NumericRule>,
19379    /// Unknown child elements captured for roundtrip fidelity.
19380    #[cfg(feature = "extra-children")]
19381    #[serde(skip)]
19382    #[cfg(feature = "extra-children")]
19383    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19384}
19385
19386#[derive(Debug, Clone, Default, Serialize, Deserialize)]
19387pub struct PresentationOf {
19388    #[cfg(feature = "dml-diagrams")]
19389    #[serde(rename = "@axis")]
19390    #[serde(default, skip_serializing_if = "Option::is_none")]
19391    pub axis: Option<STAxisTypes>,
19392    #[cfg(feature = "dml-diagrams")]
19393    #[serde(rename = "@ptType")]
19394    #[serde(default, skip_serializing_if = "Option::is_none")]
19395    pub pt_type: Option<STElementTypes>,
19396    #[cfg(feature = "dml-diagrams")]
19397    #[serde(rename = "@hideLastTrans")]
19398    #[serde(default, skip_serializing_if = "Option::is_none")]
19399    pub hide_last_trans: Option<STBooleans>,
19400    #[cfg(feature = "dml-diagrams")]
19401    #[serde(rename = "@st")]
19402    #[serde(default, skip_serializing_if = "Option::is_none")]
19403    pub st: Option<STInts>,
19404    #[cfg(feature = "dml-diagrams")]
19405    #[serde(rename = "@cnt")]
19406    #[serde(default, skip_serializing_if = "Option::is_none")]
19407    pub cnt: Option<STUnsignedInts>,
19408    #[cfg(feature = "dml-diagrams")]
19409    #[serde(rename = "@step")]
19410    #[serde(default, skip_serializing_if = "Option::is_none")]
19411    pub step: Option<STInts>,
19412    #[cfg(feature = "dml-diagrams")]
19413    #[serde(rename = "extLst")]
19414    #[serde(default, skip_serializing_if = "Option::is_none")]
19415    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
19416    /// Unknown attributes captured for roundtrip fidelity.
19417    #[cfg(feature = "extra-attrs")]
19418    #[serde(skip)]
19419    #[cfg(feature = "extra-attrs")]
19420    #[serde(default)]
19421    #[cfg(feature = "extra-attrs")]
19422    pub extra_attrs: std::collections::HashMap<String, String>,
19423    /// Unknown child elements captured for roundtrip fidelity.
19424    #[cfg(feature = "extra-children")]
19425    #[serde(skip)]
19426    #[cfg(feature = "extra-children")]
19427    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19428}
19429
19430#[derive(Debug, Clone, Serialize, Deserialize)]
19431pub struct LayoutAdjustment {
19432    #[cfg(feature = "dml-diagrams")]
19433    #[serde(rename = "@idx")]
19434    pub idx: STIndex1,
19435    #[cfg(feature = "dml-diagrams")]
19436    #[serde(rename = "@val")]
19437    pub value: f64,
19438    /// Unknown attributes captured for roundtrip fidelity.
19439    #[cfg(feature = "extra-attrs")]
19440    #[serde(skip)]
19441    #[cfg(feature = "extra-attrs")]
19442    #[serde(default)]
19443    #[cfg(feature = "extra-attrs")]
19444    pub extra_attrs: std::collections::HashMap<String, String>,
19445}
19446
19447#[derive(Debug, Clone, Default, Serialize, Deserialize)]
19448pub struct LayoutAdjustmentList {
19449    #[cfg(feature = "dml-diagrams")]
19450    #[serde(rename = "adj")]
19451    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19452    pub adj: Vec<LayoutAdjustment>,
19453    /// Unknown child elements captured for roundtrip fidelity.
19454    #[cfg(feature = "extra-children")]
19455    #[serde(skip)]
19456    #[cfg(feature = "extra-children")]
19457    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19458}
19459
19460#[derive(Debug, Clone, Serialize, Deserialize)]
19461pub struct AlgorithmParameter {
19462    #[cfg(feature = "dml-diagrams")]
19463    #[serde(rename = "@type")]
19464    pub r#type: STParameterId,
19465    #[cfg(feature = "dml-diagrams")]
19466    #[serde(rename = "@val")]
19467    pub value: STParameterVal,
19468    /// Unknown attributes captured for roundtrip fidelity.
19469    #[cfg(feature = "extra-attrs")]
19470    #[serde(skip)]
19471    #[cfg(feature = "extra-attrs")]
19472    #[serde(default)]
19473    #[cfg(feature = "extra-attrs")]
19474    pub extra_attrs: std::collections::HashMap<String, String>,
19475}
19476
19477#[derive(Debug, Clone, Serialize, Deserialize)]
19478pub struct LayoutAlgorithm {
19479    #[cfg(feature = "dml-diagrams")]
19480    #[serde(rename = "@type")]
19481    pub r#type: STAlgorithmType,
19482    #[cfg(feature = "dml-diagrams")]
19483    #[serde(rename = "@rev")]
19484    #[serde(default, skip_serializing_if = "Option::is_none")]
19485    pub rev: Option<u32>,
19486    #[cfg(feature = "dml-diagrams")]
19487    #[serde(rename = "param")]
19488    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19489    pub param: Vec<AlgorithmParameter>,
19490    #[cfg(feature = "dml-diagrams")]
19491    #[serde(rename = "extLst")]
19492    #[serde(default, skip_serializing_if = "Option::is_none")]
19493    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
19494    /// Unknown attributes captured for roundtrip fidelity.
19495    #[cfg(feature = "extra-attrs")]
19496    #[serde(skip)]
19497    #[cfg(feature = "extra-attrs")]
19498    #[serde(default)]
19499    #[cfg(feature = "extra-attrs")]
19500    pub extra_attrs: std::collections::HashMap<String, String>,
19501    /// Unknown child elements captured for roundtrip fidelity.
19502    #[cfg(feature = "extra-children")]
19503    #[serde(skip)]
19504    #[cfg(feature = "extra-children")]
19505    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19506}
19507
19508#[derive(Debug, Clone, Default, Serialize, Deserialize)]
19509pub struct LayoutNode {
19510    #[cfg(feature = "dml-diagrams")]
19511    #[serde(rename = "@name")]
19512    #[serde(default, skip_serializing_if = "Option::is_none")]
19513    pub name: Option<String>,
19514    #[cfg(feature = "dml-diagrams")]
19515    #[serde(rename = "@styleLbl")]
19516    #[serde(default, skip_serializing_if = "Option::is_none")]
19517    pub style_lbl: Option<String>,
19518    #[cfg(feature = "dml-diagrams")]
19519    #[serde(rename = "@chOrder")]
19520    #[serde(default, skip_serializing_if = "Option::is_none")]
19521    pub ch_order: Option<STChildOrderType>,
19522    #[cfg(feature = "dml-diagrams")]
19523    #[serde(rename = "@moveWith")]
19524    #[serde(default, skip_serializing_if = "Option::is_none")]
19525    pub move_with: Option<String>,
19526    #[cfg(feature = "dml-diagrams")]
19527    #[serde(rename = "alg")]
19528    #[serde(default, skip_serializing_if = "Option::is_none")]
19529    pub alg: Option<Box<LayoutAlgorithm>>,
19530    #[cfg(feature = "dml-diagrams")]
19531    #[serde(rename = "shape")]
19532    #[serde(default, skip_serializing_if = "Option::is_none")]
19533    pub shape: Option<Box<DiagramShape>>,
19534    #[cfg(feature = "dml-diagrams")]
19535    #[serde(rename = "presOf")]
19536    #[serde(default, skip_serializing_if = "Option::is_none")]
19537    pub pres_of: Option<Box<PresentationOf>>,
19538    #[cfg(feature = "dml-diagrams")]
19539    #[serde(rename = "constrLst")]
19540    #[serde(default, skip_serializing_if = "Option::is_none")]
19541    pub constr_lst: Option<Box<LayoutConstraints>>,
19542    #[cfg(feature = "dml-diagrams")]
19543    #[serde(rename = "ruleLst")]
19544    #[serde(default, skip_serializing_if = "Option::is_none")]
19545    pub rule_lst: Option<Box<LayoutRules>>,
19546    #[cfg(feature = "dml-diagrams")]
19547    #[serde(rename = "varLst")]
19548    #[serde(default, skip_serializing_if = "Option::is_none")]
19549    pub var_lst: Option<Box<LayoutVariableProperties>>,
19550    #[cfg(feature = "dml-diagrams")]
19551    #[serde(rename = "forEach")]
19552    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19553    pub for_each: Vec<LayoutForEach>,
19554    #[cfg(feature = "dml-diagrams")]
19555    #[serde(rename = "layoutNode")]
19556    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19557    pub layout_node: Vec<LayoutNode>,
19558    #[cfg(feature = "dml-diagrams")]
19559    #[serde(rename = "choose")]
19560    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19561    pub choose: Vec<LayoutChoose>,
19562    #[cfg(feature = "dml-diagrams")]
19563    #[serde(rename = "extLst")]
19564    #[serde(default, skip_serializing_if = "Option::is_none")]
19565    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
19566    /// Unknown attributes captured for roundtrip fidelity.
19567    #[cfg(feature = "extra-attrs")]
19568    #[serde(skip)]
19569    #[cfg(feature = "extra-attrs")]
19570    #[serde(default)]
19571    #[cfg(feature = "extra-attrs")]
19572    pub extra_attrs: std::collections::HashMap<String, String>,
19573    /// Unknown child elements captured for roundtrip fidelity.
19574    #[cfg(feature = "extra-children")]
19575    #[serde(skip)]
19576    #[cfg(feature = "extra-children")]
19577    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19578}
19579
19580#[derive(Debug, Clone, Default, Serialize, Deserialize)]
19581pub struct LayoutForEach {
19582    #[cfg(feature = "dml-diagrams")]
19583    #[serde(rename = "@name")]
19584    #[serde(default, skip_serializing_if = "Option::is_none")]
19585    pub name: Option<String>,
19586    #[cfg(feature = "dml-diagrams")]
19587    #[serde(rename = "@ref")]
19588    #[serde(default, skip_serializing_if = "Option::is_none")]
19589    pub r#ref: Option<String>,
19590    #[cfg(feature = "dml-diagrams")]
19591    #[serde(rename = "@axis")]
19592    #[serde(default, skip_serializing_if = "Option::is_none")]
19593    pub axis: Option<STAxisTypes>,
19594    #[cfg(feature = "dml-diagrams")]
19595    #[serde(rename = "@ptType")]
19596    #[serde(default, skip_serializing_if = "Option::is_none")]
19597    pub pt_type: Option<STElementTypes>,
19598    #[cfg(feature = "dml-diagrams")]
19599    #[serde(rename = "@hideLastTrans")]
19600    #[serde(default, skip_serializing_if = "Option::is_none")]
19601    pub hide_last_trans: Option<STBooleans>,
19602    #[cfg(feature = "dml-diagrams")]
19603    #[serde(rename = "@st")]
19604    #[serde(default, skip_serializing_if = "Option::is_none")]
19605    pub st: Option<STInts>,
19606    #[cfg(feature = "dml-diagrams")]
19607    #[serde(rename = "@cnt")]
19608    #[serde(default, skip_serializing_if = "Option::is_none")]
19609    pub cnt: Option<STUnsignedInts>,
19610    #[cfg(feature = "dml-diagrams")]
19611    #[serde(rename = "@step")]
19612    #[serde(default, skip_serializing_if = "Option::is_none")]
19613    pub step: Option<STInts>,
19614    #[cfg(feature = "dml-diagrams")]
19615    #[serde(rename = "alg")]
19616    #[serde(default, skip_serializing_if = "Option::is_none")]
19617    pub alg: Option<Box<LayoutAlgorithm>>,
19618    #[cfg(feature = "dml-diagrams")]
19619    #[serde(rename = "shape")]
19620    #[serde(default, skip_serializing_if = "Option::is_none")]
19621    pub shape: Option<Box<DiagramShape>>,
19622    #[cfg(feature = "dml-diagrams")]
19623    #[serde(rename = "presOf")]
19624    #[serde(default, skip_serializing_if = "Option::is_none")]
19625    pub pres_of: Option<Box<PresentationOf>>,
19626    #[cfg(feature = "dml-diagrams")]
19627    #[serde(rename = "constrLst")]
19628    #[serde(default, skip_serializing_if = "Option::is_none")]
19629    pub constr_lst: Option<Box<LayoutConstraints>>,
19630    #[cfg(feature = "dml-diagrams")]
19631    #[serde(rename = "ruleLst")]
19632    #[serde(default, skip_serializing_if = "Option::is_none")]
19633    pub rule_lst: Option<Box<LayoutRules>>,
19634    #[cfg(feature = "dml-diagrams")]
19635    #[serde(rename = "forEach")]
19636    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19637    pub for_each: Vec<LayoutForEach>,
19638    #[cfg(feature = "dml-diagrams")]
19639    #[serde(rename = "layoutNode")]
19640    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19641    pub layout_node: Vec<LayoutNode>,
19642    #[cfg(feature = "dml-diagrams")]
19643    #[serde(rename = "choose")]
19644    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19645    pub choose: Vec<LayoutChoose>,
19646    #[cfg(feature = "dml-diagrams")]
19647    #[serde(rename = "extLst")]
19648    #[serde(default, skip_serializing_if = "Option::is_none")]
19649    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
19650    /// Unknown attributes captured for roundtrip fidelity.
19651    #[cfg(feature = "extra-attrs")]
19652    #[serde(skip)]
19653    #[cfg(feature = "extra-attrs")]
19654    #[serde(default)]
19655    #[cfg(feature = "extra-attrs")]
19656    pub extra_attrs: std::collections::HashMap<String, String>,
19657    /// Unknown child elements captured for roundtrip fidelity.
19658    #[cfg(feature = "extra-children")]
19659    #[serde(skip)]
19660    #[cfg(feature = "extra-children")]
19661    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19662}
19663
19664#[derive(Debug, Clone, Serialize, Deserialize)]
19665pub struct LayoutWhen {
19666    #[cfg(feature = "dml-diagrams")]
19667    #[serde(rename = "@name")]
19668    #[serde(default, skip_serializing_if = "Option::is_none")]
19669    pub name: Option<String>,
19670    #[cfg(feature = "dml-diagrams")]
19671    #[serde(rename = "@axis")]
19672    #[serde(default, skip_serializing_if = "Option::is_none")]
19673    pub axis: Option<STAxisTypes>,
19674    #[cfg(feature = "dml-diagrams")]
19675    #[serde(rename = "@ptType")]
19676    #[serde(default, skip_serializing_if = "Option::is_none")]
19677    pub pt_type: Option<STElementTypes>,
19678    #[cfg(feature = "dml-diagrams")]
19679    #[serde(rename = "@hideLastTrans")]
19680    #[serde(default, skip_serializing_if = "Option::is_none")]
19681    pub hide_last_trans: Option<STBooleans>,
19682    #[cfg(feature = "dml-diagrams")]
19683    #[serde(rename = "@st")]
19684    #[serde(default, skip_serializing_if = "Option::is_none")]
19685    pub st: Option<STInts>,
19686    #[cfg(feature = "dml-diagrams")]
19687    #[serde(rename = "@cnt")]
19688    #[serde(default, skip_serializing_if = "Option::is_none")]
19689    pub cnt: Option<STUnsignedInts>,
19690    #[cfg(feature = "dml-diagrams")]
19691    #[serde(rename = "@step")]
19692    #[serde(default, skip_serializing_if = "Option::is_none")]
19693    pub step: Option<STInts>,
19694    #[cfg(feature = "dml-diagrams")]
19695    #[serde(rename = "@func")]
19696    pub func: STFunctionType,
19697    #[cfg(feature = "dml-diagrams")]
19698    #[serde(rename = "@arg")]
19699    #[serde(default, skip_serializing_if = "Option::is_none")]
19700    pub arg: Option<STFunctionArgument>,
19701    #[cfg(feature = "dml-diagrams")]
19702    #[serde(rename = "@op")]
19703    pub op: STFunctionOperator,
19704    #[cfg(feature = "dml-diagrams")]
19705    #[serde(rename = "@val")]
19706    pub value: STFunctionValue,
19707    #[cfg(feature = "dml-diagrams")]
19708    #[serde(rename = "alg")]
19709    #[serde(default, skip_serializing_if = "Option::is_none")]
19710    pub alg: Option<Box<LayoutAlgorithm>>,
19711    #[cfg(feature = "dml-diagrams")]
19712    #[serde(rename = "shape")]
19713    #[serde(default, skip_serializing_if = "Option::is_none")]
19714    pub shape: Option<Box<DiagramShape>>,
19715    #[cfg(feature = "dml-diagrams")]
19716    #[serde(rename = "presOf")]
19717    #[serde(default, skip_serializing_if = "Option::is_none")]
19718    pub pres_of: Option<Box<PresentationOf>>,
19719    #[cfg(feature = "dml-diagrams")]
19720    #[serde(rename = "constrLst")]
19721    #[serde(default, skip_serializing_if = "Option::is_none")]
19722    pub constr_lst: Option<Box<LayoutConstraints>>,
19723    #[cfg(feature = "dml-diagrams")]
19724    #[serde(rename = "ruleLst")]
19725    #[serde(default, skip_serializing_if = "Option::is_none")]
19726    pub rule_lst: Option<Box<LayoutRules>>,
19727    #[cfg(feature = "dml-diagrams")]
19728    #[serde(rename = "forEach")]
19729    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19730    pub for_each: Vec<LayoutForEach>,
19731    #[cfg(feature = "dml-diagrams")]
19732    #[serde(rename = "layoutNode")]
19733    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19734    pub layout_node: Vec<LayoutNode>,
19735    #[cfg(feature = "dml-diagrams")]
19736    #[serde(rename = "choose")]
19737    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19738    pub choose: Vec<LayoutChoose>,
19739    #[cfg(feature = "dml-diagrams")]
19740    #[serde(rename = "extLst")]
19741    #[serde(default, skip_serializing_if = "Option::is_none")]
19742    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
19743    /// Unknown attributes captured for roundtrip fidelity.
19744    #[cfg(feature = "extra-attrs")]
19745    #[serde(skip)]
19746    #[cfg(feature = "extra-attrs")]
19747    #[serde(default)]
19748    #[cfg(feature = "extra-attrs")]
19749    pub extra_attrs: std::collections::HashMap<String, String>,
19750    /// Unknown child elements captured for roundtrip fidelity.
19751    #[cfg(feature = "extra-children")]
19752    #[serde(skip)]
19753    #[cfg(feature = "extra-children")]
19754    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19755}
19756
19757#[derive(Debug, Clone, Default, Serialize, Deserialize)]
19758pub struct LayoutOtherwise {
19759    #[cfg(feature = "dml-diagrams")]
19760    #[serde(rename = "@name")]
19761    #[serde(default, skip_serializing_if = "Option::is_none")]
19762    pub name: Option<String>,
19763    #[cfg(feature = "dml-diagrams")]
19764    #[serde(rename = "alg")]
19765    #[serde(default, skip_serializing_if = "Option::is_none")]
19766    pub alg: Option<Box<LayoutAlgorithm>>,
19767    #[cfg(feature = "dml-diagrams")]
19768    #[serde(rename = "shape")]
19769    #[serde(default, skip_serializing_if = "Option::is_none")]
19770    pub shape: Option<Box<DiagramShape>>,
19771    #[cfg(feature = "dml-diagrams")]
19772    #[serde(rename = "presOf")]
19773    #[serde(default, skip_serializing_if = "Option::is_none")]
19774    pub pres_of: Option<Box<PresentationOf>>,
19775    #[cfg(feature = "dml-diagrams")]
19776    #[serde(rename = "constrLst")]
19777    #[serde(default, skip_serializing_if = "Option::is_none")]
19778    pub constr_lst: Option<Box<LayoutConstraints>>,
19779    #[cfg(feature = "dml-diagrams")]
19780    #[serde(rename = "ruleLst")]
19781    #[serde(default, skip_serializing_if = "Option::is_none")]
19782    pub rule_lst: Option<Box<LayoutRules>>,
19783    #[cfg(feature = "dml-diagrams")]
19784    #[serde(rename = "forEach")]
19785    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19786    pub for_each: Vec<LayoutForEach>,
19787    #[cfg(feature = "dml-diagrams")]
19788    #[serde(rename = "layoutNode")]
19789    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19790    pub layout_node: Vec<LayoutNode>,
19791    #[cfg(feature = "dml-diagrams")]
19792    #[serde(rename = "choose")]
19793    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19794    pub choose: Vec<LayoutChoose>,
19795    #[cfg(feature = "dml-diagrams")]
19796    #[serde(rename = "extLst")]
19797    #[serde(default, skip_serializing_if = "Option::is_none")]
19798    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
19799    /// Unknown attributes captured for roundtrip fidelity.
19800    #[cfg(feature = "extra-attrs")]
19801    #[serde(skip)]
19802    #[cfg(feature = "extra-attrs")]
19803    #[serde(default)]
19804    #[cfg(feature = "extra-attrs")]
19805    pub extra_attrs: std::collections::HashMap<String, String>,
19806    /// Unknown child elements captured for roundtrip fidelity.
19807    #[cfg(feature = "extra-children")]
19808    #[serde(skip)]
19809    #[cfg(feature = "extra-children")]
19810    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19811}
19812
19813#[derive(Debug, Clone, Default, Serialize, Deserialize)]
19814pub struct LayoutChoose {
19815    #[cfg(feature = "dml-diagrams")]
19816    #[serde(rename = "@name")]
19817    #[serde(default, skip_serializing_if = "Option::is_none")]
19818    pub name: Option<String>,
19819    #[cfg(feature = "dml-diagrams")]
19820    #[serde(rename = "if")]
19821    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19822    pub r#if: Vec<LayoutWhen>,
19823    #[cfg(feature = "dml-diagrams")]
19824    #[serde(rename = "else")]
19825    #[serde(default, skip_serializing_if = "Option::is_none")]
19826    pub r#else: Option<Box<LayoutOtherwise>>,
19827    /// Unknown attributes captured for roundtrip fidelity.
19828    #[cfg(feature = "extra-attrs")]
19829    #[serde(skip)]
19830    #[cfg(feature = "extra-attrs")]
19831    #[serde(default)]
19832    #[cfg(feature = "extra-attrs")]
19833    pub extra_attrs: std::collections::HashMap<String, String>,
19834    /// Unknown child elements captured for roundtrip fidelity.
19835    #[cfg(feature = "extra-children")]
19836    #[serde(skip)]
19837    #[cfg(feature = "extra-children")]
19838    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19839}
19840
19841#[derive(Debug, Clone, Default, Serialize, Deserialize)]
19842pub struct DiagramSampleData {
19843    #[cfg(feature = "dml-diagrams")]
19844    #[serde(rename = "@useDef")]
19845    #[serde(
19846        default,
19847        skip_serializing_if = "Option::is_none",
19848        with = "ooxml_xml::ooxml_bool"
19849    )]
19850    pub use_def: Option<bool>,
19851    #[cfg(feature = "dml-diagrams")]
19852    #[serde(rename = "dataModel")]
19853    #[serde(default, skip_serializing_if = "Option::is_none")]
19854    pub data_model: Option<Box<DataModel>>,
19855    /// Unknown attributes captured for roundtrip fidelity.
19856    #[cfg(feature = "extra-attrs")]
19857    #[serde(skip)]
19858    #[cfg(feature = "extra-attrs")]
19859    #[serde(default)]
19860    #[cfg(feature = "extra-attrs")]
19861    pub extra_attrs: std::collections::HashMap<String, String>,
19862    /// Unknown child elements captured for roundtrip fidelity.
19863    #[cfg(feature = "extra-children")]
19864    #[serde(skip)]
19865    #[cfg(feature = "extra-children")]
19866    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19867}
19868
19869#[derive(Debug, Clone, Serialize, Deserialize)]
19870pub struct DiagramCategory {
19871    #[cfg(feature = "dml-diagrams")]
19872    #[serde(rename = "@type")]
19873    pub r#type: String,
19874    #[cfg(feature = "dml-diagrams")]
19875    #[serde(rename = "@pri")]
19876    pub pri: u32,
19877    /// Unknown attributes captured for roundtrip fidelity.
19878    #[cfg(feature = "extra-attrs")]
19879    #[serde(skip)]
19880    #[cfg(feature = "extra-attrs")]
19881    #[serde(default)]
19882    #[cfg(feature = "extra-attrs")]
19883    pub extra_attrs: std::collections::HashMap<String, String>,
19884}
19885
19886#[derive(Debug, Clone, Default, Serialize, Deserialize)]
19887pub struct DiagramCategories {
19888    #[cfg(feature = "dml-diagrams")]
19889    #[serde(rename = "cat")]
19890    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19891    pub cat: Vec<DiagramCategory>,
19892    /// Unknown child elements captured for roundtrip fidelity.
19893    #[cfg(feature = "extra-children")]
19894    #[serde(skip)]
19895    #[cfg(feature = "extra-children")]
19896    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19897}
19898
19899#[derive(Debug, Clone, Serialize, Deserialize)]
19900pub struct DiagramName {
19901    #[cfg(feature = "dml-diagrams")]
19902    #[serde(rename = "@lang")]
19903    #[serde(default, skip_serializing_if = "Option::is_none")]
19904    pub lang: Option<String>,
19905    #[cfg(feature = "dml-diagrams")]
19906    #[serde(rename = "@val")]
19907    pub value: String,
19908    /// Unknown attributes captured for roundtrip fidelity.
19909    #[cfg(feature = "extra-attrs")]
19910    #[serde(skip)]
19911    #[cfg(feature = "extra-attrs")]
19912    #[serde(default)]
19913    #[cfg(feature = "extra-attrs")]
19914    pub extra_attrs: std::collections::HashMap<String, String>,
19915}
19916
19917#[derive(Debug, Clone, Serialize, Deserialize)]
19918pub struct DiagramDescription {
19919    #[cfg(feature = "dml-diagrams")]
19920    #[serde(rename = "@lang")]
19921    #[serde(default, skip_serializing_if = "Option::is_none")]
19922    pub lang: Option<String>,
19923    #[cfg(feature = "dml-diagrams")]
19924    #[serde(rename = "@val")]
19925    pub value: String,
19926    /// Unknown attributes captured for roundtrip fidelity.
19927    #[cfg(feature = "extra-attrs")]
19928    #[serde(skip)]
19929    #[cfg(feature = "extra-attrs")]
19930    #[serde(default)]
19931    #[cfg(feature = "extra-attrs")]
19932    pub extra_attrs: std::collections::HashMap<String, String>,
19933}
19934
19935#[derive(Debug, Clone, Serialize, Deserialize)]
19936pub struct DiagramDefinition {
19937    #[cfg(feature = "dml-diagrams")]
19938    #[serde(rename = "@uniqueId")]
19939    #[serde(default, skip_serializing_if = "Option::is_none")]
19940    pub unique_id: Option<String>,
19941    #[cfg(feature = "dml-diagrams")]
19942    #[serde(rename = "@minVer")]
19943    #[serde(default, skip_serializing_if = "Option::is_none")]
19944    pub min_ver: Option<String>,
19945    #[cfg(feature = "dml-diagrams")]
19946    #[serde(rename = "@defStyle")]
19947    #[serde(default, skip_serializing_if = "Option::is_none")]
19948    pub def_style: Option<String>,
19949    #[cfg(feature = "dml-diagrams")]
19950    #[serde(rename = "title")]
19951    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19952    pub title: Vec<DiagramName>,
19953    #[cfg(feature = "dml-diagrams")]
19954    #[serde(rename = "desc")]
19955    #[serde(default, skip_serializing_if = "Vec::is_empty")]
19956    pub desc: Vec<DiagramDescription>,
19957    #[cfg(feature = "dml-diagrams")]
19958    #[serde(rename = "catLst")]
19959    #[serde(default, skip_serializing_if = "Option::is_none")]
19960    pub cat_lst: Option<Box<DiagramCategories>>,
19961    #[cfg(feature = "dml-diagrams")]
19962    #[serde(rename = "sampData")]
19963    #[serde(default, skip_serializing_if = "Option::is_none")]
19964    pub samp_data: Option<Box<DiagramSampleData>>,
19965    #[cfg(feature = "dml-diagrams")]
19966    #[serde(rename = "styleData")]
19967    #[serde(default, skip_serializing_if = "Option::is_none")]
19968    pub style_data: Option<Box<DiagramSampleData>>,
19969    #[cfg(feature = "dml-diagrams")]
19970    #[serde(rename = "clrData")]
19971    #[serde(default, skip_serializing_if = "Option::is_none")]
19972    pub clr_data: Option<Box<DiagramSampleData>>,
19973    #[cfg(feature = "dml-diagrams")]
19974    #[serde(rename = "layoutNode")]
19975    pub layout_node: Box<LayoutNode>,
19976    #[cfg(feature = "dml-diagrams")]
19977    #[serde(rename = "extLst")]
19978    #[serde(default, skip_serializing_if = "Option::is_none")]
19979    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
19980    /// Unknown attributes captured for roundtrip fidelity.
19981    #[cfg(feature = "extra-attrs")]
19982    #[serde(skip)]
19983    #[cfg(feature = "extra-attrs")]
19984    #[serde(default)]
19985    #[cfg(feature = "extra-attrs")]
19986    pub extra_attrs: std::collections::HashMap<String, String>,
19987    /// Unknown child elements captured for roundtrip fidelity.
19988    #[cfg(feature = "extra-children")]
19989    #[serde(skip)]
19990    #[cfg(feature = "extra-children")]
19991    pub extra_children: Vec<ooxml_xml::PositionedNode>,
19992}
19993
19994pub type DdgrmLayoutDef = Box<DiagramDefinition>;
19995
19996#[derive(Debug, Clone, Serialize, Deserialize)]
19997pub struct DiagramDefinitionHeader {
19998    #[cfg(feature = "dml-diagrams")]
19999    #[serde(rename = "@uniqueId")]
20000    pub unique_id: String,
20001    #[cfg(feature = "dml-diagrams")]
20002    #[serde(rename = "@minVer")]
20003    #[serde(default, skip_serializing_if = "Option::is_none")]
20004    pub min_ver: Option<String>,
20005    #[cfg(feature = "dml-diagrams")]
20006    #[serde(rename = "@defStyle")]
20007    #[serde(default, skip_serializing_if = "Option::is_none")]
20008    pub def_style: Option<String>,
20009    #[cfg(feature = "dml-diagrams")]
20010    #[serde(rename = "@resId")]
20011    #[serde(default, skip_serializing_if = "Option::is_none")]
20012    pub res_id: Option<i32>,
20013    #[cfg(feature = "dml-diagrams")]
20014    #[serde(rename = "title")]
20015    #[serde(default, skip_serializing_if = "Vec::is_empty")]
20016    pub title: Vec<DiagramName>,
20017    #[cfg(feature = "dml-diagrams")]
20018    #[serde(rename = "desc")]
20019    #[serde(default, skip_serializing_if = "Vec::is_empty")]
20020    pub desc: Vec<DiagramDescription>,
20021    #[cfg(feature = "dml-diagrams")]
20022    #[serde(rename = "catLst")]
20023    #[serde(default, skip_serializing_if = "Option::is_none")]
20024    pub cat_lst: Option<Box<DiagramCategories>>,
20025    #[cfg(feature = "dml-diagrams")]
20026    #[serde(rename = "extLst")]
20027    #[serde(default, skip_serializing_if = "Option::is_none")]
20028    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
20029    /// Unknown attributes captured for roundtrip fidelity.
20030    #[cfg(feature = "extra-attrs")]
20031    #[serde(skip)]
20032    #[cfg(feature = "extra-attrs")]
20033    #[serde(default)]
20034    #[cfg(feature = "extra-attrs")]
20035    pub extra_attrs: std::collections::HashMap<String, String>,
20036    /// Unknown child elements captured for roundtrip fidelity.
20037    #[cfg(feature = "extra-children")]
20038    #[serde(skip)]
20039    #[cfg(feature = "extra-children")]
20040    pub extra_children: Vec<ooxml_xml::PositionedNode>,
20041}
20042
20043pub type DdgrmLayoutDefHdr = Box<DiagramDefinitionHeader>;
20044
20045#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20046pub struct DiagramDefinitionHeaderList {
20047    #[cfg(feature = "dml-diagrams")]
20048    #[serde(rename = "layoutDefHdr")]
20049    #[serde(default, skip_serializing_if = "Vec::is_empty")]
20050    pub layout_def_hdr: Vec<DiagramDefinitionHeader>,
20051    /// Unknown child elements captured for roundtrip fidelity.
20052    #[cfg(feature = "extra-children")]
20053    #[serde(skip)]
20054    #[cfg(feature = "extra-children")]
20055    pub extra_children: Vec<ooxml_xml::PositionedNode>,
20056}
20057
20058pub type DdgrmLayoutDefHdrLst = Box<DiagramDefinitionHeaderList>;
20059
20060#[derive(Debug, Clone, Serialize, Deserialize)]
20061pub struct DiagramRelationshipIds {
20062    #[cfg(feature = "dml-diagrams")]
20063    #[serde(rename = "@r:dm")]
20064    pub dm: STRelationshipId,
20065    #[cfg(feature = "dml-diagrams")]
20066    #[serde(rename = "@r:lo")]
20067    pub lo: STRelationshipId,
20068    #[cfg(feature = "dml-diagrams")]
20069    #[serde(rename = "@r:qs")]
20070    pub qs: STRelationshipId,
20071    #[cfg(feature = "dml-diagrams")]
20072    #[serde(rename = "@r:cs")]
20073    pub cs: STRelationshipId,
20074    /// Unknown attributes captured for roundtrip fidelity.
20075    #[cfg(feature = "extra-attrs")]
20076    #[serde(skip)]
20077    #[cfg(feature = "extra-attrs")]
20078    #[serde(default)]
20079    #[cfg(feature = "extra-attrs")]
20080    pub extra_attrs: std::collections::HashMap<String, String>,
20081}
20082
20083pub type DdgrmRelIds = Box<DiagramRelationshipIds>;
20084
20085#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20086pub struct DiagramElementProperties {
20087    #[cfg(feature = "dml-diagrams")]
20088    #[serde(rename = "@presAssocID")]
20089    #[serde(default, skip_serializing_if = "Option::is_none")]
20090    pub pres_assoc_i_d: Option<STModelId>,
20091    #[cfg(feature = "dml-diagrams")]
20092    #[serde(rename = "@presName")]
20093    #[serde(default, skip_serializing_if = "Option::is_none")]
20094    pub pres_name: Option<String>,
20095    #[cfg(feature = "dml-diagrams")]
20096    #[serde(rename = "@presStyleLbl")]
20097    #[serde(default, skip_serializing_if = "Option::is_none")]
20098    pub pres_style_lbl: Option<String>,
20099    #[cfg(feature = "dml-diagrams")]
20100    #[serde(rename = "@presStyleIdx")]
20101    #[serde(default, skip_serializing_if = "Option::is_none")]
20102    pub pres_style_idx: Option<i32>,
20103    #[cfg(feature = "dml-diagrams")]
20104    #[serde(rename = "@presStyleCnt")]
20105    #[serde(default, skip_serializing_if = "Option::is_none")]
20106    pub pres_style_cnt: Option<i32>,
20107    #[cfg(feature = "dml-diagrams")]
20108    #[serde(rename = "@loTypeId")]
20109    #[serde(default, skip_serializing_if = "Option::is_none")]
20110    pub lo_type_id: Option<String>,
20111    #[cfg(feature = "dml-diagrams")]
20112    #[serde(rename = "@loCatId")]
20113    #[serde(default, skip_serializing_if = "Option::is_none")]
20114    pub lo_cat_id: Option<String>,
20115    #[cfg(feature = "dml-diagrams")]
20116    #[serde(rename = "@qsTypeId")]
20117    #[serde(default, skip_serializing_if = "Option::is_none")]
20118    pub qs_type_id: Option<String>,
20119    #[cfg(feature = "dml-diagrams")]
20120    #[serde(rename = "@qsCatId")]
20121    #[serde(default, skip_serializing_if = "Option::is_none")]
20122    pub qs_cat_id: Option<String>,
20123    #[cfg(feature = "dml-diagrams")]
20124    #[serde(rename = "@csTypeId")]
20125    #[serde(default, skip_serializing_if = "Option::is_none")]
20126    pub cs_type_id: Option<String>,
20127    #[cfg(feature = "dml-diagrams")]
20128    #[serde(rename = "@csCatId")]
20129    #[serde(default, skip_serializing_if = "Option::is_none")]
20130    pub cs_cat_id: Option<String>,
20131    #[cfg(feature = "dml-diagrams")]
20132    #[serde(rename = "@coherent3DOff")]
20133    #[serde(
20134        default,
20135        skip_serializing_if = "Option::is_none",
20136        with = "ooxml_xml::ooxml_bool"
20137    )]
20138    pub coherent3_d_off: Option<bool>,
20139    #[cfg(feature = "dml-diagrams")]
20140    #[serde(rename = "@phldrT")]
20141    #[serde(default, skip_serializing_if = "Option::is_none")]
20142    pub phldr_t: Option<String>,
20143    #[cfg(feature = "dml-diagrams")]
20144    #[serde(rename = "@phldr")]
20145    #[serde(
20146        default,
20147        skip_serializing_if = "Option::is_none",
20148        with = "ooxml_xml::ooxml_bool"
20149    )]
20150    pub phldr: Option<bool>,
20151    #[cfg(feature = "dml-diagrams")]
20152    #[serde(rename = "@custAng")]
20153    #[serde(default, skip_serializing_if = "Option::is_none")]
20154    pub cust_ang: Option<i32>,
20155    #[cfg(feature = "dml-diagrams")]
20156    #[serde(rename = "@custFlipVert")]
20157    #[serde(
20158        default,
20159        skip_serializing_if = "Option::is_none",
20160        with = "ooxml_xml::ooxml_bool"
20161    )]
20162    pub cust_flip_vert: Option<bool>,
20163    #[cfg(feature = "dml-diagrams")]
20164    #[serde(rename = "@custFlipHor")]
20165    #[serde(
20166        default,
20167        skip_serializing_if = "Option::is_none",
20168        with = "ooxml_xml::ooxml_bool"
20169    )]
20170    pub cust_flip_hor: Option<bool>,
20171    #[cfg(feature = "dml-diagrams")]
20172    #[serde(rename = "@custSzX")]
20173    #[serde(default, skip_serializing_if = "Option::is_none")]
20174    pub cust_sz_x: Option<i32>,
20175    #[cfg(feature = "dml-diagrams")]
20176    #[serde(rename = "@custSzY")]
20177    #[serde(default, skip_serializing_if = "Option::is_none")]
20178    pub cust_sz_y: Option<i32>,
20179    #[cfg(feature = "dml-diagrams")]
20180    #[serde(rename = "@custScaleX")]
20181    #[serde(default, skip_serializing_if = "Option::is_none")]
20182    pub cust_scale_x: Option<STPrSetCustVal>,
20183    #[cfg(feature = "dml-diagrams")]
20184    #[serde(rename = "@custScaleY")]
20185    #[serde(default, skip_serializing_if = "Option::is_none")]
20186    pub cust_scale_y: Option<STPrSetCustVal>,
20187    #[cfg(feature = "dml-diagrams")]
20188    #[serde(rename = "@custT")]
20189    #[serde(
20190        default,
20191        skip_serializing_if = "Option::is_none",
20192        with = "ooxml_xml::ooxml_bool"
20193    )]
20194    pub cust_t: Option<bool>,
20195    #[cfg(feature = "dml-diagrams")]
20196    #[serde(rename = "@custLinFactX")]
20197    #[serde(default, skip_serializing_if = "Option::is_none")]
20198    pub cust_lin_fact_x: Option<STPrSetCustVal>,
20199    #[cfg(feature = "dml-diagrams")]
20200    #[serde(rename = "@custLinFactY")]
20201    #[serde(default, skip_serializing_if = "Option::is_none")]
20202    pub cust_lin_fact_y: Option<STPrSetCustVal>,
20203    #[cfg(feature = "dml-diagrams")]
20204    #[serde(rename = "@custLinFactNeighborX")]
20205    #[serde(default, skip_serializing_if = "Option::is_none")]
20206    pub cust_lin_fact_neighbor_x: Option<STPrSetCustVal>,
20207    #[cfg(feature = "dml-diagrams")]
20208    #[serde(rename = "@custLinFactNeighborY")]
20209    #[serde(default, skip_serializing_if = "Option::is_none")]
20210    pub cust_lin_fact_neighbor_y: Option<STPrSetCustVal>,
20211    #[cfg(feature = "dml-diagrams")]
20212    #[serde(rename = "@custRadScaleRad")]
20213    #[serde(default, skip_serializing_if = "Option::is_none")]
20214    pub cust_rad_scale_rad: Option<STPrSetCustVal>,
20215    #[cfg(feature = "dml-diagrams")]
20216    #[serde(rename = "@custRadScaleInc")]
20217    #[serde(default, skip_serializing_if = "Option::is_none")]
20218    pub cust_rad_scale_inc: Option<STPrSetCustVal>,
20219    #[cfg(feature = "dml-diagrams")]
20220    #[serde(rename = "presLayoutVars")]
20221    #[serde(default, skip_serializing_if = "Option::is_none")]
20222    pub pres_layout_vars: Option<Box<LayoutVariableProperties>>,
20223    #[cfg(feature = "dml-diagrams")]
20224    #[serde(rename = "style")]
20225    #[serde(default, skip_serializing_if = "Option::is_none")]
20226    pub style: Option<Box<ShapeStyle>>,
20227    /// Unknown attributes captured for roundtrip fidelity.
20228    #[cfg(feature = "extra-attrs")]
20229    #[serde(skip)]
20230    #[cfg(feature = "extra-attrs")]
20231    #[serde(default)]
20232    #[cfg(feature = "extra-attrs")]
20233    pub extra_attrs: std::collections::HashMap<String, String>,
20234    /// Unknown child elements captured for roundtrip fidelity.
20235    #[cfg(feature = "extra-children")]
20236    #[serde(skip)]
20237    #[cfg(feature = "extra-children")]
20238    pub extra_children: Vec<ooxml_xml::PositionedNode>,
20239}
20240
20241#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20242pub struct OrgChartProperties {
20243    #[cfg(feature = "dml-diagrams")]
20244    #[serde(rename = "@val")]
20245    #[serde(
20246        default,
20247        skip_serializing_if = "Option::is_none",
20248        with = "ooxml_xml::ooxml_bool"
20249    )]
20250    pub value: Option<bool>,
20251    /// Unknown attributes captured for roundtrip fidelity.
20252    #[cfg(feature = "extra-attrs")]
20253    #[serde(skip)]
20254    #[cfg(feature = "extra-attrs")]
20255    #[serde(default)]
20256    #[cfg(feature = "extra-attrs")]
20257    pub extra_attrs: std::collections::HashMap<String, String>,
20258}
20259
20260#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20261pub struct ChildMaximum {
20262    #[cfg(feature = "dml-diagrams")]
20263    #[serde(rename = "@val")]
20264    #[serde(default, skip_serializing_if = "Option::is_none")]
20265    pub value: Option<STNodeCount>,
20266    /// Unknown attributes captured for roundtrip fidelity.
20267    #[cfg(feature = "extra-attrs")]
20268    #[serde(skip)]
20269    #[cfg(feature = "extra-attrs")]
20270    #[serde(default)]
20271    #[cfg(feature = "extra-attrs")]
20272    pub extra_attrs: std::collections::HashMap<String, String>,
20273}
20274
20275#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20276pub struct ChildPreference {
20277    #[cfg(feature = "dml-diagrams")]
20278    #[serde(rename = "@val")]
20279    #[serde(default, skip_serializing_if = "Option::is_none")]
20280    pub value: Option<STNodeCount>,
20281    /// Unknown attributes captured for roundtrip fidelity.
20282    #[cfg(feature = "extra-attrs")]
20283    #[serde(skip)]
20284    #[cfg(feature = "extra-attrs")]
20285    #[serde(default)]
20286    #[cfg(feature = "extra-attrs")]
20287    pub extra_attrs: std::collections::HashMap<String, String>,
20288}
20289
20290#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20291pub struct BulletEnabled {
20292    #[cfg(feature = "dml-diagrams")]
20293    #[serde(rename = "@val")]
20294    #[serde(
20295        default,
20296        skip_serializing_if = "Option::is_none",
20297        with = "ooxml_xml::ooxml_bool"
20298    )]
20299    pub value: Option<bool>,
20300    /// Unknown attributes captured for roundtrip fidelity.
20301    #[cfg(feature = "extra-attrs")]
20302    #[serde(skip)]
20303    #[cfg(feature = "extra-attrs")]
20304    #[serde(default)]
20305    #[cfg(feature = "extra-attrs")]
20306    pub extra_attrs: std::collections::HashMap<String, String>,
20307}
20308
20309#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20310pub struct LayoutDirection {
20311    #[cfg(feature = "dml-diagrams")]
20312    #[serde(rename = "@val")]
20313    #[serde(default, skip_serializing_if = "Option::is_none")]
20314    pub value: Option<STDirection>,
20315    /// Unknown attributes captured for roundtrip fidelity.
20316    #[cfg(feature = "extra-attrs")]
20317    #[serde(skip)]
20318    #[cfg(feature = "extra-attrs")]
20319    #[serde(default)]
20320    #[cfg(feature = "extra-attrs")]
20321    pub extra_attrs: std::collections::HashMap<String, String>,
20322}
20323
20324#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20325pub struct HierarchyBranchStyle {
20326    #[cfg(feature = "dml-diagrams")]
20327    #[serde(rename = "@val")]
20328    #[serde(default, skip_serializing_if = "Option::is_none")]
20329    pub value: Option<STHierBranchStyle>,
20330    /// Unknown attributes captured for roundtrip fidelity.
20331    #[cfg(feature = "extra-attrs")]
20332    #[serde(skip)]
20333    #[cfg(feature = "extra-attrs")]
20334    #[serde(default)]
20335    #[cfg(feature = "extra-attrs")]
20336    pub extra_attrs: std::collections::HashMap<String, String>,
20337}
20338
20339#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20340pub struct AnimateOneByOne {
20341    #[cfg(feature = "dml-diagrams")]
20342    #[serde(rename = "@val")]
20343    #[serde(default, skip_serializing_if = "Option::is_none")]
20344    pub value: Option<STAnimOneStr>,
20345    /// Unknown attributes captured for roundtrip fidelity.
20346    #[cfg(feature = "extra-attrs")]
20347    #[serde(skip)]
20348    #[cfg(feature = "extra-attrs")]
20349    #[serde(default)]
20350    #[cfg(feature = "extra-attrs")]
20351    pub extra_attrs: std::collections::HashMap<String, String>,
20352}
20353
20354#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20355pub struct AnimateLevel {
20356    #[cfg(feature = "dml-diagrams")]
20357    #[serde(rename = "@val")]
20358    #[serde(default, skip_serializing_if = "Option::is_none")]
20359    pub value: Option<STAnimLvlStr>,
20360    /// Unknown attributes captured for roundtrip fidelity.
20361    #[cfg(feature = "extra-attrs")]
20362    #[serde(skip)]
20363    #[cfg(feature = "extra-attrs")]
20364    #[serde(default)]
20365    #[cfg(feature = "extra-attrs")]
20366    pub extra_attrs: std::collections::HashMap<String, String>,
20367}
20368
20369#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20370pub struct ResizeHandles {
20371    #[cfg(feature = "dml-diagrams")]
20372    #[serde(rename = "@val")]
20373    #[serde(default, skip_serializing_if = "Option::is_none")]
20374    pub value: Option<STResizeHandlesStr>,
20375    /// Unknown attributes captured for roundtrip fidelity.
20376    #[cfg(feature = "extra-attrs")]
20377    #[serde(skip)]
20378    #[cfg(feature = "extra-attrs")]
20379    #[serde(default)]
20380    #[cfg(feature = "extra-attrs")]
20381    pub extra_attrs: std::collections::HashMap<String, String>,
20382}
20383
20384#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20385pub struct LayoutVariableProperties {
20386    #[cfg(feature = "dml-diagrams")]
20387    #[serde(rename = "orgChart")]
20388    #[serde(default, skip_serializing_if = "Option::is_none")]
20389    pub org_chart: Option<Box<OrgChartProperties>>,
20390    #[cfg(feature = "dml-diagrams")]
20391    #[serde(rename = "chMax")]
20392    #[serde(default, skip_serializing_if = "Option::is_none")]
20393    pub ch_max: Option<Box<ChildMaximum>>,
20394    #[cfg(feature = "dml-diagrams")]
20395    #[serde(rename = "chPref")]
20396    #[serde(default, skip_serializing_if = "Option::is_none")]
20397    pub ch_pref: Option<Box<ChildPreference>>,
20398    #[cfg(feature = "dml-diagrams")]
20399    #[serde(rename = "bulletEnabled")]
20400    #[serde(default, skip_serializing_if = "Option::is_none")]
20401    pub bullet_enabled: Option<Box<BulletEnabled>>,
20402    #[cfg(feature = "dml-diagrams")]
20403    #[serde(rename = "dir")]
20404    #[serde(default, skip_serializing_if = "Option::is_none")]
20405    pub dir: Option<Box<LayoutDirection>>,
20406    #[cfg(feature = "dml-diagrams")]
20407    #[serde(rename = "hierBranch")]
20408    #[serde(default, skip_serializing_if = "Option::is_none")]
20409    pub hier_branch: Option<Box<HierarchyBranchStyle>>,
20410    #[cfg(feature = "dml-diagrams")]
20411    #[serde(rename = "animOne")]
20412    #[serde(default, skip_serializing_if = "Option::is_none")]
20413    pub anim_one: Option<Box<AnimateOneByOne>>,
20414    #[cfg(feature = "dml-diagrams")]
20415    #[serde(rename = "animLvl")]
20416    #[serde(default, skip_serializing_if = "Option::is_none")]
20417    pub anim_lvl: Option<Box<AnimateLevel>>,
20418    #[cfg(feature = "dml-diagrams")]
20419    #[serde(rename = "resizeHandles")]
20420    #[serde(default, skip_serializing_if = "Option::is_none")]
20421    pub resize_handles: Option<Box<ResizeHandles>>,
20422    /// Unknown child elements captured for roundtrip fidelity.
20423    #[cfg(feature = "extra-children")]
20424    #[serde(skip)]
20425    #[cfg(feature = "extra-children")]
20426    pub extra_children: Vec<ooxml_xml::PositionedNode>,
20427}
20428
20429#[derive(Debug, Clone, Serialize, Deserialize)]
20430pub struct StyleDefinitionName {
20431    #[cfg(feature = "dml-diagrams")]
20432    #[serde(rename = "@lang")]
20433    #[serde(default, skip_serializing_if = "Option::is_none")]
20434    pub lang: Option<String>,
20435    #[cfg(feature = "dml-diagrams")]
20436    #[serde(rename = "@val")]
20437    pub value: String,
20438    /// Unknown attributes captured for roundtrip fidelity.
20439    #[cfg(feature = "extra-attrs")]
20440    #[serde(skip)]
20441    #[cfg(feature = "extra-attrs")]
20442    #[serde(default)]
20443    #[cfg(feature = "extra-attrs")]
20444    pub extra_attrs: std::collections::HashMap<String, String>,
20445}
20446
20447#[derive(Debug, Clone, Serialize, Deserialize)]
20448pub struct StyleDefinitionDescription {
20449    #[cfg(feature = "dml-diagrams")]
20450    #[serde(rename = "@lang")]
20451    #[serde(default, skip_serializing_if = "Option::is_none")]
20452    pub lang: Option<String>,
20453    #[cfg(feature = "dml-diagrams")]
20454    #[serde(rename = "@val")]
20455    pub value: String,
20456    /// Unknown attributes captured for roundtrip fidelity.
20457    #[cfg(feature = "extra-attrs")]
20458    #[serde(skip)]
20459    #[cfg(feature = "extra-attrs")]
20460    #[serde(default)]
20461    #[cfg(feature = "extra-attrs")]
20462    pub extra_attrs: std::collections::HashMap<String, String>,
20463}
20464
20465#[derive(Debug, Clone, Serialize, Deserialize)]
20466pub struct DiagramStyleCategory {
20467    #[cfg(feature = "dml-diagrams")]
20468    #[serde(rename = "@type")]
20469    pub r#type: String,
20470    #[cfg(feature = "dml-diagrams")]
20471    #[serde(rename = "@pri")]
20472    pub pri: u32,
20473    /// Unknown attributes captured for roundtrip fidelity.
20474    #[cfg(feature = "extra-attrs")]
20475    #[serde(skip)]
20476    #[cfg(feature = "extra-attrs")]
20477    #[serde(default)]
20478    #[cfg(feature = "extra-attrs")]
20479    pub extra_attrs: std::collections::HashMap<String, String>,
20480}
20481
20482#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20483pub struct DiagramStyleCategories {
20484    #[cfg(feature = "dml-diagrams")]
20485    #[serde(rename = "cat")]
20486    #[serde(default, skip_serializing_if = "Vec::is_empty")]
20487    pub cat: Vec<DiagramStyleCategory>,
20488    /// Unknown child elements captured for roundtrip fidelity.
20489    #[cfg(feature = "extra-children")]
20490    #[serde(skip)]
20491    #[cfg(feature = "extra-children")]
20492    pub extra_children: Vec<ooxml_xml::PositionedNode>,
20493}
20494
20495#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20496pub struct DiagramTextProperties {
20497    #[cfg(feature = "dml-diagrams")]
20498    #[serde(skip)]
20499    #[serde(default)]
20500    pub text3_d: Option<Box<EGText3D>>,
20501    /// Unknown child elements captured for roundtrip fidelity.
20502    #[cfg(feature = "extra-children")]
20503    #[serde(skip)]
20504    #[cfg(feature = "extra-children")]
20505    pub extra_children: Vec<ooxml_xml::PositionedNode>,
20506}
20507
20508#[derive(Debug, Clone, Serialize, Deserialize)]
20509pub struct DiagramStyleLabel {
20510    #[cfg(feature = "dml-diagrams")]
20511    #[serde(rename = "@name")]
20512    pub name: String,
20513    #[cfg(feature = "dml-diagrams")]
20514    #[serde(rename = "scene3d")]
20515    #[serde(default, skip_serializing_if = "Option::is_none")]
20516    pub scene3d: Option<Box<CTScene3D>>,
20517    #[cfg(feature = "dml-diagrams")]
20518    #[serde(rename = "sp3d")]
20519    #[serde(default, skip_serializing_if = "Option::is_none")]
20520    pub sp3d: Option<Box<CTShape3D>>,
20521    #[cfg(feature = "dml-diagrams")]
20522    #[serde(rename = "txPr")]
20523    #[serde(default, skip_serializing_if = "Option::is_none")]
20524    pub tx_pr: Option<Box<DiagramTextProperties>>,
20525    #[cfg(feature = "dml-diagrams")]
20526    #[serde(rename = "style")]
20527    #[serde(default, skip_serializing_if = "Option::is_none")]
20528    pub style: Option<Box<ShapeStyle>>,
20529    #[cfg(feature = "dml-diagrams")]
20530    #[serde(rename = "extLst")]
20531    #[serde(default, skip_serializing_if = "Option::is_none")]
20532    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
20533    /// Unknown attributes captured for roundtrip fidelity.
20534    #[cfg(feature = "extra-attrs")]
20535    #[serde(skip)]
20536    #[cfg(feature = "extra-attrs")]
20537    #[serde(default)]
20538    #[cfg(feature = "extra-attrs")]
20539    pub extra_attrs: std::collections::HashMap<String, String>,
20540    /// Unknown child elements captured for roundtrip fidelity.
20541    #[cfg(feature = "extra-children")]
20542    #[serde(skip)]
20543    #[cfg(feature = "extra-children")]
20544    pub extra_children: Vec<ooxml_xml::PositionedNode>,
20545}
20546
20547#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20548pub struct DiagramStyleDefinition {
20549    #[cfg(feature = "dml-diagrams")]
20550    #[serde(rename = "@uniqueId")]
20551    #[serde(default, skip_serializing_if = "Option::is_none")]
20552    pub unique_id: Option<String>,
20553    #[cfg(feature = "dml-diagrams")]
20554    #[serde(rename = "@minVer")]
20555    #[serde(default, skip_serializing_if = "Option::is_none")]
20556    pub min_ver: Option<String>,
20557    #[cfg(feature = "dml-diagrams")]
20558    #[serde(rename = "title")]
20559    #[serde(default, skip_serializing_if = "Vec::is_empty")]
20560    pub title: Vec<StyleDefinitionName>,
20561    #[cfg(feature = "dml-diagrams")]
20562    #[serde(rename = "desc")]
20563    #[serde(default, skip_serializing_if = "Vec::is_empty")]
20564    pub desc: Vec<StyleDefinitionDescription>,
20565    #[cfg(feature = "dml-diagrams")]
20566    #[serde(rename = "catLst")]
20567    #[serde(default, skip_serializing_if = "Option::is_none")]
20568    pub cat_lst: Option<Box<DiagramStyleCategories>>,
20569    #[cfg(feature = "dml-diagrams")]
20570    #[serde(rename = "scene3d")]
20571    #[serde(default, skip_serializing_if = "Option::is_none")]
20572    pub scene3d: Option<Box<CTScene3D>>,
20573    #[cfg(feature = "dml-diagrams")]
20574    #[serde(rename = "styleLbl")]
20575    #[serde(default, skip_serializing_if = "Vec::is_empty")]
20576    pub style_lbl: Vec<DiagramStyleLabel>,
20577    #[cfg(feature = "dml-diagrams")]
20578    #[serde(rename = "extLst")]
20579    #[serde(default, skip_serializing_if = "Option::is_none")]
20580    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
20581    /// Unknown attributes captured for roundtrip fidelity.
20582    #[cfg(feature = "extra-attrs")]
20583    #[serde(skip)]
20584    #[cfg(feature = "extra-attrs")]
20585    #[serde(default)]
20586    #[cfg(feature = "extra-attrs")]
20587    pub extra_attrs: std::collections::HashMap<String, String>,
20588    /// Unknown child elements captured for roundtrip fidelity.
20589    #[cfg(feature = "extra-children")]
20590    #[serde(skip)]
20591    #[cfg(feature = "extra-children")]
20592    pub extra_children: Vec<ooxml_xml::PositionedNode>,
20593}
20594
20595pub type DdgrmStyleDef = Box<DiagramStyleDefinition>;
20596
20597#[derive(Debug, Clone, Serialize, Deserialize)]
20598pub struct DiagramStyleDefinitionHeader {
20599    #[cfg(feature = "dml-diagrams")]
20600    #[serde(rename = "@uniqueId")]
20601    pub unique_id: String,
20602    #[cfg(feature = "dml-diagrams")]
20603    #[serde(rename = "@minVer")]
20604    #[serde(default, skip_serializing_if = "Option::is_none")]
20605    pub min_ver: Option<String>,
20606    #[cfg(feature = "dml-diagrams")]
20607    #[serde(rename = "@resId")]
20608    #[serde(default, skip_serializing_if = "Option::is_none")]
20609    pub res_id: Option<i32>,
20610    #[cfg(feature = "dml-diagrams")]
20611    #[serde(rename = "title")]
20612    #[serde(default, skip_serializing_if = "Vec::is_empty")]
20613    pub title: Vec<StyleDefinitionName>,
20614    #[cfg(feature = "dml-diagrams")]
20615    #[serde(rename = "desc")]
20616    #[serde(default, skip_serializing_if = "Vec::is_empty")]
20617    pub desc: Vec<StyleDefinitionDescription>,
20618    #[cfg(feature = "dml-diagrams")]
20619    #[serde(rename = "catLst")]
20620    #[serde(default, skip_serializing_if = "Option::is_none")]
20621    pub cat_lst: Option<Box<DiagramStyleCategories>>,
20622    #[cfg(feature = "dml-diagrams")]
20623    #[serde(rename = "extLst")]
20624    #[serde(default, skip_serializing_if = "Option::is_none")]
20625    pub ext_lst: Option<Box<CTOfficeArtExtensionList>>,
20626    /// Unknown attributes captured for roundtrip fidelity.
20627    #[cfg(feature = "extra-attrs")]
20628    #[serde(skip)]
20629    #[cfg(feature = "extra-attrs")]
20630    #[serde(default)]
20631    #[cfg(feature = "extra-attrs")]
20632    pub extra_attrs: std::collections::HashMap<String, String>,
20633    /// Unknown child elements captured for roundtrip fidelity.
20634    #[cfg(feature = "extra-children")]
20635    #[serde(skip)]
20636    #[cfg(feature = "extra-children")]
20637    pub extra_children: Vec<ooxml_xml::PositionedNode>,
20638}
20639
20640pub type DdgrmStyleDefHdr = Box<DiagramStyleDefinitionHeader>;
20641
20642#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20643pub struct DiagramStyleDefinitionHeaderList {
20644    #[cfg(feature = "dml-diagrams")]
20645    #[serde(rename = "styleDefHdr")]
20646    #[serde(default, skip_serializing_if = "Vec::is_empty")]
20647    pub style_def_hdr: Vec<DiagramStyleDefinitionHeader>,
20648    /// Unknown child elements captured for roundtrip fidelity.
20649    #[cfg(feature = "extra-children")]
20650    #[serde(skip)]
20651    #[cfg(feature = "extra-children")]
20652    pub extra_children: Vec<ooxml_xml::PositionedNode>,
20653}
20654
20655pub type DdgrmStyleDefHdrLst = Box<DiagramStyleDefinitionHeaderList>;