1#![allow(unused_variables, unused_assignments, unreachable_code, unused_imports)]
5#![allow(clippy::single_match)]
6#![allow(clippy::match_single_binding)]
7#![allow(clippy::explicit_counter_loop)]
8
9use super::generated::*;
10pub use ooxml_xml::{SerializeError, ToXml};
11use quick_xml::Writer;
12use quick_xml::events::{BytesEnd, BytesStart, BytesText, Event};
13use std::io::Write;
14
15#[allow(dead_code)]
16fn encode_hex(bytes: &[u8]) -> String {
18 bytes.iter().map(|b| format!("{:02X}", b)).collect()
19}
20
21#[allow(dead_code)]
22fn encode_base64(bytes: &[u8]) -> String {
24 use base64::Engine;
25 base64::engine::general_purpose::STANDARD.encode(bytes)
26}
27
28impl ToXml for CTEmpty {
29 fn is_empty_element(&self) -> bool {
30 true
31 }
32}
33
34impl ToXml for OnOffElement {
35 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
36 #[allow(unused_mut)]
37 let mut start = start;
38 if let Some(ref val) = self.value {
39 {
40 let s = val.to_string();
41 start.push_attribute(("w:val", s.as_str()));
42 }
43 }
44 #[cfg(feature = "extra-attrs")]
45 for (key, value) in &self.extra_attrs {
46 start.push_attribute((key.as_str(), value.as_str()));
47 }
48 start
49 }
50
51 fn is_empty_element(&self) -> bool {
52 true
53 }
54}
55
56impl ToXml for LongHexNumberElement {
57 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
58 #[allow(unused_mut)]
59 let mut start = start;
60 {
61 let val = &self.value;
62 {
63 let hex = encode_hex(val);
64 start.push_attribute(("w:val", hex.as_str()));
65 }
66 }
67 #[cfg(feature = "extra-attrs")]
68 for (key, value) in &self.extra_attrs {
69 start.push_attribute((key.as_str(), value.as_str()));
70 }
71 start
72 }
73
74 fn is_empty_element(&self) -> bool {
75 true
76 }
77}
78
79impl ToXml for CTCharset {
80 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
81 #[allow(unused_mut)]
82 let mut start = start;
83 if let Some(ref val) = self.value {
84 {
85 let hex = encode_hex(val);
86 start.push_attribute(("w:val", hex.as_str()));
87 }
88 }
89 #[cfg(feature = "wml-styling")]
90 if let Some(ref val) = self.character_set {
91 start.push_attribute(("w:characterSet", val.as_str()));
92 }
93 #[cfg(feature = "extra-attrs")]
94 for (key, value) in &self.extra_attrs {
95 start.push_attribute((key.as_str(), value.as_str()));
96 }
97 start
98 }
99
100 fn is_empty_element(&self) -> bool {
101 true
102 }
103}
104
105impl ToXml for CTDecimalNumber {
106 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
107 #[allow(unused_mut)]
108 let mut start = start;
109 {
110 let val = &self.value;
111 {
112 let s = val.to_string();
113 start.push_attribute(("w:val", s.as_str()));
114 }
115 }
116 #[cfg(feature = "extra-attrs")]
117 for (key, value) in &self.extra_attrs {
118 start.push_attribute((key.as_str(), value.as_str()));
119 }
120 start
121 }
122
123 fn is_empty_element(&self) -> bool {
124 true
125 }
126}
127
128impl ToXml for UnsignedDecimalNumberElement {
129 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
130 #[allow(unused_mut)]
131 let mut start = start;
132 {
133 let val = &self.value;
134 {
135 let s = val.to_string();
136 start.push_attribute(("w:val", s.as_str()));
137 }
138 }
139 #[cfg(feature = "extra-attrs")]
140 for (key, value) in &self.extra_attrs {
141 start.push_attribute((key.as_str(), value.as_str()));
142 }
143 start
144 }
145
146 fn is_empty_element(&self) -> bool {
147 true
148 }
149}
150
151impl ToXml for CTDecimalNumberOrPrecent {
152 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
153 #[allow(unused_mut)]
154 let mut start = start;
155 {
156 let val = &self.value;
157 {
158 let s = val.to_string();
159 start.push_attribute(("w:val", s.as_str()));
160 }
161 }
162 #[cfg(feature = "extra-attrs")]
163 for (key, value) in &self.extra_attrs {
164 start.push_attribute((key.as_str(), value.as_str()));
165 }
166 start
167 }
168
169 fn is_empty_element(&self) -> bool {
170 true
171 }
172}
173
174impl ToXml for TwipsMeasureElement {
175 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
176 #[allow(unused_mut)]
177 let mut start = start;
178 {
179 let val = &self.value;
180 {
181 let s = val.to_string();
182 start.push_attribute(("w:val", s.as_str()));
183 }
184 }
185 #[cfg(feature = "extra-attrs")]
186 for (key, value) in &self.extra_attrs {
187 start.push_attribute((key.as_str(), value.as_str()));
188 }
189 start
190 }
191
192 fn is_empty_element(&self) -> bool {
193 true
194 }
195}
196
197impl ToXml for SignedTwipsMeasureElement {
198 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
199 #[allow(unused_mut)]
200 let mut start = start;
201 {
202 let val = &self.value;
203 {
204 let s = val.to_string();
205 start.push_attribute(("w:val", s.as_str()));
206 }
207 }
208 #[cfg(feature = "extra-attrs")]
209 for (key, value) in &self.extra_attrs {
210 start.push_attribute((key.as_str(), value.as_str()));
211 }
212 start
213 }
214
215 fn is_empty_element(&self) -> bool {
216 true
217 }
218}
219
220impl ToXml for PixelsMeasureElement {
221 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
222 #[allow(unused_mut)]
223 let mut start = start;
224 {
225 let val = &self.value;
226 {
227 let s = val.to_string();
228 start.push_attribute(("w:val", s.as_str()));
229 }
230 }
231 #[cfg(feature = "extra-attrs")]
232 for (key, value) in &self.extra_attrs {
233 start.push_attribute((key.as_str(), value.as_str()));
234 }
235 start
236 }
237
238 fn is_empty_element(&self) -> bool {
239 true
240 }
241}
242
243impl ToXml for HpsMeasureElement {
244 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
245 #[allow(unused_mut)]
246 let mut start = start;
247 {
248 let val = &self.value;
249 {
250 let s = val.to_string();
251 start.push_attribute(("w:val", s.as_str()));
252 }
253 }
254 #[cfg(feature = "extra-attrs")]
255 for (key, value) in &self.extra_attrs {
256 start.push_attribute((key.as_str(), value.as_str()));
257 }
258 start
259 }
260
261 fn is_empty_element(&self) -> bool {
262 true
263 }
264}
265
266impl ToXml for SignedHpsMeasureElement {
267 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
268 #[allow(unused_mut)]
269 let mut start = start;
270 {
271 let val = &self.value;
272 {
273 let s = val.to_string();
274 start.push_attribute(("w:val", s.as_str()));
275 }
276 }
277 #[cfg(feature = "extra-attrs")]
278 for (key, value) in &self.extra_attrs {
279 start.push_attribute((key.as_str(), value.as_str()));
280 }
281 start
282 }
283
284 fn is_empty_element(&self) -> bool {
285 true
286 }
287}
288
289impl ToXml for MacroNameElement {
290 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
291 #[allow(unused_mut)]
292 let mut start = start;
293 {
294 let val = &self.value;
295 start.push_attribute(("w:val", val.as_str()));
296 }
297 #[cfg(feature = "extra-attrs")]
298 for (key, value) in &self.extra_attrs {
299 start.push_attribute((key.as_str(), value.as_str()));
300 }
301 start
302 }
303
304 fn is_empty_element(&self) -> bool {
305 true
306 }
307}
308
309impl ToXml for CTString {
310 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
311 #[allow(unused_mut)]
312 let mut start = start;
313 {
314 let val = &self.value;
315 start.push_attribute(("w:val", val.as_str()));
316 }
317 #[cfg(feature = "extra-attrs")]
318 for (key, value) in &self.extra_attrs {
319 start.push_attribute((key.as_str(), value.as_str()));
320 }
321 start
322 }
323
324 fn is_empty_element(&self) -> bool {
325 true
326 }
327}
328
329impl ToXml for TextScaleElement {
330 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
331 #[allow(unused_mut)]
332 let mut start = start;
333 if let Some(ref val) = self.value {
334 {
335 let s = val.to_string();
336 start.push_attribute(("w:val", s.as_str()));
337 }
338 }
339 #[cfg(feature = "extra-attrs")]
340 for (key, value) in &self.extra_attrs {
341 start.push_attribute((key.as_str(), value.as_str()));
342 }
343 start
344 }
345
346 fn is_empty_element(&self) -> bool {
347 true
348 }
349}
350
351impl ToXml for CTHighlight {
352 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
353 #[allow(unused_mut)]
354 let mut start = start;
355 {
356 let val = &self.value;
357 {
358 let s = val.to_string();
359 start.push_attribute(("w:val", s.as_str()));
360 }
361 }
362 #[cfg(feature = "extra-attrs")]
363 for (key, value) in &self.extra_attrs {
364 start.push_attribute((key.as_str(), value.as_str()));
365 }
366 start
367 }
368
369 fn is_empty_element(&self) -> bool {
370 true
371 }
372}
373
374impl ToXml for CTColor {
375 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
376 #[allow(unused_mut)]
377 let mut start = start;
378 {
379 let val = &self.value;
380 {
381 let s = val.to_string();
382 start.push_attribute(("w:val", s.as_str()));
383 }
384 }
385 #[cfg(feature = "wml-styling")]
386 if let Some(ref val) = self.theme_color {
387 {
388 let s = val.to_string();
389 start.push_attribute(("w:themeColor", s.as_str()));
390 }
391 }
392 #[cfg(feature = "wml-styling")]
393 if let Some(ref val) = self.theme_tint {
394 {
395 let hex = encode_hex(val);
396 start.push_attribute(("w:themeTint", hex.as_str()));
397 }
398 }
399 #[cfg(feature = "wml-styling")]
400 if let Some(ref val) = self.theme_shade {
401 {
402 let hex = encode_hex(val);
403 start.push_attribute(("w:themeShade", hex.as_str()));
404 }
405 }
406 #[cfg(feature = "extra-attrs")]
407 for (key, value) in &self.extra_attrs {
408 start.push_attribute((key.as_str(), value.as_str()));
409 }
410 start
411 }
412
413 fn is_empty_element(&self) -> bool {
414 true
415 }
416}
417
418impl ToXml for CTLang {
419 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
420 #[allow(unused_mut)]
421 let mut start = start;
422 {
423 let val = &self.value;
424 start.push_attribute(("w:val", val.as_str()));
425 }
426 #[cfg(feature = "extra-attrs")]
427 for (key, value) in &self.extra_attrs {
428 start.push_attribute((key.as_str(), value.as_str()));
429 }
430 start
431 }
432
433 fn is_empty_element(&self) -> bool {
434 true
435 }
436}
437
438impl ToXml for GuidElement {
439 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
440 #[allow(unused_mut)]
441 let mut start = start;
442 if let Some(ref val) = self.value {
443 start.push_attribute(("w:val", val.as_str()));
444 }
445 #[cfg(feature = "extra-attrs")]
446 for (key, value) in &self.extra_attrs {
447 start.push_attribute((key.as_str(), value.as_str()));
448 }
449 start
450 }
451
452 fn is_empty_element(&self) -> bool {
453 true
454 }
455}
456
457impl ToXml for CTUnderline {
458 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
459 #[allow(unused_mut)]
460 let mut start = start;
461 if let Some(ref val) = self.value {
462 {
463 let s = val.to_string();
464 start.push_attribute(("w:val", s.as_str()));
465 }
466 }
467 #[cfg(feature = "wml-styling")]
468 if let Some(ref val) = self.color {
469 {
470 let s = val.to_string();
471 start.push_attribute(("w:color", s.as_str()));
472 }
473 }
474 #[cfg(feature = "wml-styling")]
475 if let Some(ref val) = self.theme_color {
476 {
477 let s = val.to_string();
478 start.push_attribute(("w:themeColor", s.as_str()));
479 }
480 }
481 #[cfg(feature = "wml-styling")]
482 if let Some(ref val) = self.theme_tint {
483 {
484 let hex = encode_hex(val);
485 start.push_attribute(("w:themeTint", hex.as_str()));
486 }
487 }
488 #[cfg(feature = "wml-styling")]
489 if let Some(ref val) = self.theme_shade {
490 {
491 let hex = encode_hex(val);
492 start.push_attribute(("w:themeShade", hex.as_str()));
493 }
494 }
495 #[cfg(feature = "extra-attrs")]
496 for (key, value) in &self.extra_attrs {
497 start.push_attribute((key.as_str(), value.as_str()));
498 }
499 start
500 }
501
502 fn is_empty_element(&self) -> bool {
503 true
504 }
505}
506
507impl ToXml for CTTextEffect {
508 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
509 #[allow(unused_mut)]
510 let mut start = start;
511 {
512 let val = &self.value;
513 {
514 let s = val.to_string();
515 start.push_attribute(("w:val", s.as_str()));
516 }
517 }
518 #[cfg(feature = "extra-attrs")]
519 for (key, value) in &self.extra_attrs {
520 start.push_attribute((key.as_str(), value.as_str()));
521 }
522 start
523 }
524
525 fn is_empty_element(&self) -> bool {
526 true
527 }
528}
529
530impl ToXml for CTBorder {
531 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
532 #[allow(unused_mut)]
533 let mut start = start;
534 {
535 let val = &self.value;
536 {
537 let s = val.to_string();
538 start.push_attribute(("w:val", s.as_str()));
539 }
540 }
541 #[cfg(feature = "wml-styling")]
542 if let Some(ref val) = self.color {
543 {
544 let s = val.to_string();
545 start.push_attribute(("w:color", s.as_str()));
546 }
547 }
548 #[cfg(feature = "wml-styling")]
549 if let Some(ref val) = self.theme_color {
550 {
551 let s = val.to_string();
552 start.push_attribute(("w:themeColor", s.as_str()));
553 }
554 }
555 #[cfg(feature = "wml-styling")]
556 if let Some(ref val) = self.theme_tint {
557 {
558 let hex = encode_hex(val);
559 start.push_attribute(("w:themeTint", hex.as_str()));
560 }
561 }
562 #[cfg(feature = "wml-styling")]
563 if let Some(ref val) = self.theme_shade {
564 {
565 let hex = encode_hex(val);
566 start.push_attribute(("w:themeShade", hex.as_str()));
567 }
568 }
569 #[cfg(feature = "wml-styling")]
570 if let Some(ref val) = self.size {
571 {
572 let s = val.to_string();
573 start.push_attribute(("w:sz", s.as_str()));
574 }
575 }
576 #[cfg(feature = "wml-styling")]
577 if let Some(ref val) = self.space {
578 {
579 let s = val.to_string();
580 start.push_attribute(("w:space", s.as_str()));
581 }
582 }
583 #[cfg(feature = "wml-styling")]
584 if let Some(ref val) = self.shadow {
585 {
586 let s = val.to_string();
587 start.push_attribute(("w:shadow", s.as_str()));
588 }
589 }
590 #[cfg(feature = "wml-styling")]
591 if let Some(ref val) = self.frame {
592 {
593 let s = val.to_string();
594 start.push_attribute(("w:frame", s.as_str()));
595 }
596 }
597 #[cfg(feature = "extra-attrs")]
598 for (key, value) in &self.extra_attrs {
599 start.push_attribute((key.as_str(), value.as_str()));
600 }
601 start
602 }
603
604 fn is_empty_element(&self) -> bool {
605 true
606 }
607}
608
609impl ToXml for CTShd {
610 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
611 #[allow(unused_mut)]
612 let mut start = start;
613 {
614 let val = &self.value;
615 {
616 let s = val.to_string();
617 start.push_attribute(("w:val", s.as_str()));
618 }
619 }
620 #[cfg(feature = "wml-styling")]
621 if let Some(ref val) = self.color {
622 {
623 let s = val.to_string();
624 start.push_attribute(("w:color", s.as_str()));
625 }
626 }
627 #[cfg(feature = "wml-styling")]
628 if let Some(ref val) = self.theme_color {
629 {
630 let s = val.to_string();
631 start.push_attribute(("w:themeColor", s.as_str()));
632 }
633 }
634 #[cfg(feature = "wml-styling")]
635 if let Some(ref val) = self.theme_tint {
636 {
637 let hex = encode_hex(val);
638 start.push_attribute(("w:themeTint", hex.as_str()));
639 }
640 }
641 #[cfg(feature = "wml-styling")]
642 if let Some(ref val) = self.theme_shade {
643 {
644 let hex = encode_hex(val);
645 start.push_attribute(("w:themeShade", hex.as_str()));
646 }
647 }
648 #[cfg(feature = "wml-styling")]
649 if let Some(ref val) = self.fill {
650 {
651 let s = val.to_string();
652 start.push_attribute(("w:fill", s.as_str()));
653 }
654 }
655 #[cfg(feature = "wml-styling")]
656 if let Some(ref val) = self.theme_fill {
657 {
658 let s = val.to_string();
659 start.push_attribute(("w:themeFill", s.as_str()));
660 }
661 }
662 #[cfg(feature = "wml-styling")]
663 if let Some(ref val) = self.theme_fill_tint {
664 {
665 let hex = encode_hex(val);
666 start.push_attribute(("w:themeFillTint", hex.as_str()));
667 }
668 }
669 #[cfg(feature = "wml-styling")]
670 if let Some(ref val) = self.theme_fill_shade {
671 {
672 let hex = encode_hex(val);
673 start.push_attribute(("w:themeFillShade", hex.as_str()));
674 }
675 }
676 #[cfg(feature = "extra-attrs")]
677 for (key, value) in &self.extra_attrs {
678 start.push_attribute((key.as_str(), value.as_str()));
679 }
680 start
681 }
682
683 fn is_empty_element(&self) -> bool {
684 true
685 }
686}
687
688impl ToXml for CTVerticalAlignRun {
689 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
690 #[allow(unused_mut)]
691 let mut start = start;
692 {
693 let val = &self.value;
694 {
695 let s = val.to_string();
696 start.push_attribute(("w:val", s.as_str()));
697 }
698 }
699 #[cfg(feature = "extra-attrs")]
700 for (key, value) in &self.extra_attrs {
701 start.push_attribute((key.as_str(), value.as_str()));
702 }
703 start
704 }
705
706 fn is_empty_element(&self) -> bool {
707 true
708 }
709}
710
711impl ToXml for CTFitText {
712 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
713 #[allow(unused_mut)]
714 let mut start = start;
715 #[cfg(feature = "wml-styling")]
716 {
717 let val = &self.value;
718 {
719 let s = val.to_string();
720 start.push_attribute(("w:val", s.as_str()));
721 }
722 }
723 #[cfg(feature = "wml-styling")]
724 if let Some(ref val) = self.id {
725 {
726 let s = val.to_string();
727 start.push_attribute(("w:id", s.as_str()));
728 }
729 }
730 #[cfg(feature = "extra-attrs")]
731 for (key, value) in &self.extra_attrs {
732 start.push_attribute((key.as_str(), value.as_str()));
733 }
734 start
735 }
736
737 fn is_empty_element(&self) -> bool {
738 true
739 }
740}
741
742impl ToXml for CTEm {
743 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
744 #[allow(unused_mut)]
745 let mut start = start;
746 {
747 let val = &self.value;
748 {
749 let s = val.to_string();
750 start.push_attribute(("w:val", s.as_str()));
751 }
752 }
753 #[cfg(feature = "extra-attrs")]
754 for (key, value) in &self.extra_attrs {
755 start.push_attribute((key.as_str(), value.as_str()));
756 }
757 start
758 }
759
760 fn is_empty_element(&self) -> bool {
761 true
762 }
763}
764
765impl ToXml for LanguageElement {
766 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
767 #[allow(unused_mut)]
768 let mut start = start;
769 if let Some(ref val) = self.value {
770 start.push_attribute(("w:val", val.as_str()));
771 }
772 if let Some(ref val) = self.east_asia {
773 start.push_attribute(("w:eastAsia", val.as_str()));
774 }
775 if let Some(ref val) = self.bidi {
776 start.push_attribute(("w:bidi", val.as_str()));
777 }
778 #[cfg(feature = "extra-attrs")]
779 for (key, value) in &self.extra_attrs {
780 start.push_attribute((key.as_str(), value.as_str()));
781 }
782 start
783 }
784
785 fn is_empty_element(&self) -> bool {
786 true
787 }
788}
789
790impl ToXml for CTEastAsianLayout {
791 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
792 #[allow(unused_mut)]
793 let mut start = start;
794 #[cfg(feature = "wml-styling")]
795 if let Some(ref val) = self.id {
796 {
797 let s = val.to_string();
798 start.push_attribute(("w:id", s.as_str()));
799 }
800 }
801 #[cfg(feature = "wml-styling")]
802 if let Some(ref val) = self.combine {
803 {
804 let s = val.to_string();
805 start.push_attribute(("w:combine", s.as_str()));
806 }
807 }
808 #[cfg(feature = "wml-styling")]
809 if let Some(ref val) = self.combine_brackets {
810 {
811 let s = val.to_string();
812 start.push_attribute(("w:combineBrackets", s.as_str()));
813 }
814 }
815 #[cfg(feature = "wml-styling")]
816 if let Some(ref val) = self.vert {
817 {
818 let s = val.to_string();
819 start.push_attribute(("w:vert", s.as_str()));
820 }
821 }
822 #[cfg(feature = "wml-styling")]
823 if let Some(ref val) = self.vert_compress {
824 {
825 let s = val.to_string();
826 start.push_attribute(("w:vertCompress", s.as_str()));
827 }
828 }
829 #[cfg(feature = "extra-attrs")]
830 for (key, value) in &self.extra_attrs {
831 start.push_attribute((key.as_str(), value.as_str()));
832 }
833 start
834 }
835
836 fn is_empty_element(&self) -> bool {
837 true
838 }
839}
840
841impl ToXml for CTFramePr {
842 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
843 #[allow(unused_mut)]
844 let mut start = start;
845 #[cfg(feature = "wml-layout")]
846 if let Some(ref val) = self.drop_cap {
847 {
848 let s = val.to_string();
849 start.push_attribute(("w:dropCap", s.as_str()));
850 }
851 }
852 #[cfg(feature = "wml-layout")]
853 if let Some(ref val) = self.lines {
854 {
855 let s = val.to_string();
856 start.push_attribute(("w:lines", s.as_str()));
857 }
858 }
859 #[cfg(feature = "wml-layout")]
860 if let Some(ref val) = self.width {
861 {
862 let s = val.to_string();
863 start.push_attribute(("w:w", s.as_str()));
864 }
865 }
866 #[cfg(feature = "wml-layout")]
867 if let Some(ref val) = self.height {
868 {
869 let s = val.to_string();
870 start.push_attribute(("w:h", s.as_str()));
871 }
872 }
873 #[cfg(feature = "wml-layout")]
874 if let Some(ref val) = self.v_space {
875 {
876 let s = val.to_string();
877 start.push_attribute(("w:vSpace", s.as_str()));
878 }
879 }
880 #[cfg(feature = "wml-layout")]
881 if let Some(ref val) = self.h_space {
882 {
883 let s = val.to_string();
884 start.push_attribute(("w:hSpace", s.as_str()));
885 }
886 }
887 #[cfg(feature = "wml-layout")]
888 if let Some(ref val) = self.wrap {
889 {
890 let s = val.to_string();
891 start.push_attribute(("w:wrap", s.as_str()));
892 }
893 }
894 #[cfg(feature = "wml-layout")]
895 if let Some(ref val) = self.h_anchor {
896 {
897 let s = val.to_string();
898 start.push_attribute(("w:hAnchor", s.as_str()));
899 }
900 }
901 #[cfg(feature = "wml-layout")]
902 if let Some(ref val) = self.v_anchor {
903 {
904 let s = val.to_string();
905 start.push_attribute(("w:vAnchor", s.as_str()));
906 }
907 }
908 #[cfg(feature = "wml-layout")]
909 if let Some(ref val) = self.x {
910 {
911 let s = val.to_string();
912 start.push_attribute(("w:x", s.as_str()));
913 }
914 }
915 #[cfg(feature = "wml-layout")]
916 if let Some(ref val) = self.x_align {
917 {
918 let s = val.to_string();
919 start.push_attribute(("w:xAlign", s.as_str()));
920 }
921 }
922 #[cfg(feature = "wml-layout")]
923 if let Some(ref val) = self.y {
924 {
925 let s = val.to_string();
926 start.push_attribute(("w:y", s.as_str()));
927 }
928 }
929 #[cfg(feature = "wml-layout")]
930 if let Some(ref val) = self.y_align {
931 {
932 let s = val.to_string();
933 start.push_attribute(("w:yAlign", s.as_str()));
934 }
935 }
936 #[cfg(feature = "wml-layout")]
937 if let Some(ref val) = self.h_rule {
938 {
939 let s = val.to_string();
940 start.push_attribute(("w:hRule", s.as_str()));
941 }
942 }
943 #[cfg(feature = "wml-layout")]
944 if let Some(ref val) = self.anchor_lock {
945 {
946 let s = val.to_string();
947 start.push_attribute(("w:anchorLock", s.as_str()));
948 }
949 }
950 #[cfg(feature = "extra-attrs")]
951 for (key, value) in &self.extra_attrs {
952 start.push_attribute((key.as_str(), value.as_str()));
953 }
954 start
955 }
956
957 fn is_empty_element(&self) -> bool {
958 true
959 }
960}
961
962impl ToXml for CTTabStop {
963 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
964 #[allow(unused_mut)]
965 let mut start = start;
966 {
967 let val = &self.value;
968 {
969 let s = val.to_string();
970 start.push_attribute(("w:val", s.as_str()));
971 }
972 }
973 #[cfg(feature = "wml-styling")]
974 if let Some(ref val) = self.leader {
975 {
976 let s = val.to_string();
977 start.push_attribute(("w:leader", s.as_str()));
978 }
979 }
980 {
981 let val = &self.pos;
982 {
983 let s = val.to_string();
984 start.push_attribute(("w:pos", s.as_str()));
985 }
986 }
987 #[cfg(feature = "extra-attrs")]
988 for (key, value) in &self.extra_attrs {
989 start.push_attribute((key.as_str(), value.as_str()));
990 }
991 start
992 }
993
994 fn is_empty_element(&self) -> bool {
995 true
996 }
997}
998
999impl ToXml for CTSpacing {
1000 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1001 #[allow(unused_mut)]
1002 let mut start = start;
1003 #[cfg(feature = "wml-styling")]
1004 if let Some(ref val) = self.before {
1005 {
1006 let s = val.to_string();
1007 start.push_attribute(("w:before", s.as_str()));
1008 }
1009 }
1010 #[cfg(feature = "wml-styling")]
1011 if let Some(ref val) = self.before_lines {
1012 {
1013 let s = val.to_string();
1014 start.push_attribute(("w:beforeLines", s.as_str()));
1015 }
1016 }
1017 #[cfg(feature = "wml-styling")]
1018 if let Some(ref val) = self.before_autospacing {
1019 {
1020 let s = val.to_string();
1021 start.push_attribute(("w:beforeAutospacing", s.as_str()));
1022 }
1023 }
1024 #[cfg(feature = "wml-styling")]
1025 if let Some(ref val) = self.after {
1026 {
1027 let s = val.to_string();
1028 start.push_attribute(("w:after", s.as_str()));
1029 }
1030 }
1031 #[cfg(feature = "wml-styling")]
1032 if let Some(ref val) = self.after_lines {
1033 {
1034 let s = val.to_string();
1035 start.push_attribute(("w:afterLines", s.as_str()));
1036 }
1037 }
1038 #[cfg(feature = "wml-styling")]
1039 if let Some(ref val) = self.after_autospacing {
1040 {
1041 let s = val.to_string();
1042 start.push_attribute(("w:afterAutospacing", s.as_str()));
1043 }
1044 }
1045 #[cfg(feature = "wml-styling")]
1046 if let Some(ref val) = self.line {
1047 {
1048 let s = val.to_string();
1049 start.push_attribute(("w:line", s.as_str()));
1050 }
1051 }
1052 #[cfg(feature = "wml-styling")]
1053 if let Some(ref val) = self.line_rule {
1054 {
1055 let s = val.to_string();
1056 start.push_attribute(("w:lineRule", s.as_str()));
1057 }
1058 }
1059 #[cfg(feature = "extra-attrs")]
1060 for (key, value) in &self.extra_attrs {
1061 start.push_attribute((key.as_str(), value.as_str()));
1062 }
1063 start
1064 }
1065
1066 fn is_empty_element(&self) -> bool {
1067 true
1068 }
1069}
1070
1071impl ToXml for CTInd {
1072 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1073 #[allow(unused_mut)]
1074 let mut start = start;
1075 #[cfg(feature = "wml-styling")]
1076 if let Some(ref val) = self.start {
1077 {
1078 let s = val.to_string();
1079 start.push_attribute(("w:start", s.as_str()));
1080 }
1081 }
1082 #[cfg(feature = "wml-styling")]
1083 if let Some(ref val) = self.start_chars {
1084 {
1085 let s = val.to_string();
1086 start.push_attribute(("w:startChars", s.as_str()));
1087 }
1088 }
1089 #[cfg(feature = "wml-styling")]
1090 if let Some(ref val) = self.end {
1091 {
1092 let s = val.to_string();
1093 start.push_attribute(("w:end", s.as_str()));
1094 }
1095 }
1096 #[cfg(feature = "wml-styling")]
1097 if let Some(ref val) = self.end_chars {
1098 {
1099 let s = val.to_string();
1100 start.push_attribute(("w:endChars", s.as_str()));
1101 }
1102 }
1103 #[cfg(feature = "wml-styling")]
1104 if let Some(ref val) = self.left {
1105 {
1106 let s = val.to_string();
1107 start.push_attribute(("w:left", s.as_str()));
1108 }
1109 }
1110 #[cfg(feature = "wml-styling")]
1111 if let Some(ref val) = self.left_chars {
1112 {
1113 let s = val.to_string();
1114 start.push_attribute(("w:leftChars", s.as_str()));
1115 }
1116 }
1117 #[cfg(feature = "wml-styling")]
1118 if let Some(ref val) = self.right {
1119 {
1120 let s = val.to_string();
1121 start.push_attribute(("w:right", s.as_str()));
1122 }
1123 }
1124 #[cfg(feature = "wml-styling")]
1125 if let Some(ref val) = self.right_chars {
1126 {
1127 let s = val.to_string();
1128 start.push_attribute(("w:rightChars", s.as_str()));
1129 }
1130 }
1131 #[cfg(feature = "wml-styling")]
1132 if let Some(ref val) = self.hanging {
1133 {
1134 let s = val.to_string();
1135 start.push_attribute(("w:hanging", s.as_str()));
1136 }
1137 }
1138 #[cfg(feature = "wml-styling")]
1139 if let Some(ref val) = self.hanging_chars {
1140 {
1141 let s = val.to_string();
1142 start.push_attribute(("w:hangingChars", s.as_str()));
1143 }
1144 }
1145 #[cfg(feature = "wml-styling")]
1146 if let Some(ref val) = self.first_line {
1147 {
1148 let s = val.to_string();
1149 start.push_attribute(("w:firstLine", s.as_str()));
1150 }
1151 }
1152 #[cfg(feature = "wml-styling")]
1153 if let Some(ref val) = self.first_line_chars {
1154 {
1155 let s = val.to_string();
1156 start.push_attribute(("w:firstLineChars", s.as_str()));
1157 }
1158 }
1159 #[cfg(feature = "extra-attrs")]
1160 for (key, value) in &self.extra_attrs {
1161 start.push_attribute((key.as_str(), value.as_str()));
1162 }
1163 start
1164 }
1165
1166 fn is_empty_element(&self) -> bool {
1167 true
1168 }
1169}
1170
1171impl ToXml for CTJc {
1172 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1173 #[allow(unused_mut)]
1174 let mut start = start;
1175 {
1176 let val = &self.value;
1177 {
1178 let s = val.to_string();
1179 start.push_attribute(("w:val", s.as_str()));
1180 }
1181 }
1182 #[cfg(feature = "extra-attrs")]
1183 for (key, value) in &self.extra_attrs {
1184 start.push_attribute((key.as_str(), value.as_str()));
1185 }
1186 start
1187 }
1188
1189 fn is_empty_element(&self) -> bool {
1190 true
1191 }
1192}
1193
1194impl ToXml for CTJcTable {
1195 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1196 #[allow(unused_mut)]
1197 let mut start = start;
1198 {
1199 let val = &self.value;
1200 {
1201 let s = val.to_string();
1202 start.push_attribute(("w:val", s.as_str()));
1203 }
1204 }
1205 #[cfg(feature = "extra-attrs")]
1206 for (key, value) in &self.extra_attrs {
1207 start.push_attribute((key.as_str(), value.as_str()));
1208 }
1209 start
1210 }
1211
1212 fn is_empty_element(&self) -> bool {
1213 true
1214 }
1215}
1216
1217impl ToXml for CTView {
1218 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1219 #[allow(unused_mut)]
1220 let mut start = start;
1221 {
1222 let val = &self.value;
1223 {
1224 let s = val.to_string();
1225 start.push_attribute(("w:val", s.as_str()));
1226 }
1227 }
1228 #[cfg(feature = "extra-attrs")]
1229 for (key, value) in &self.extra_attrs {
1230 start.push_attribute((key.as_str(), value.as_str()));
1231 }
1232 start
1233 }
1234
1235 fn is_empty_element(&self) -> bool {
1236 true
1237 }
1238}
1239
1240impl ToXml for CTZoom {
1241 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1242 #[allow(unused_mut)]
1243 let mut start = start;
1244 #[cfg(feature = "wml-settings")]
1245 if let Some(ref val) = self.value {
1246 {
1247 let s = val.to_string();
1248 start.push_attribute(("w:val", s.as_str()));
1249 }
1250 }
1251 {
1252 let val = &self.percent;
1253 {
1254 let s = val.to_string();
1255 start.push_attribute(("w:percent", s.as_str()));
1256 }
1257 }
1258 #[cfg(feature = "extra-attrs")]
1259 for (key, value) in &self.extra_attrs {
1260 start.push_attribute((key.as_str(), value.as_str()));
1261 }
1262 start
1263 }
1264
1265 fn is_empty_element(&self) -> bool {
1266 true
1267 }
1268}
1269
1270impl ToXml for CTWritingStyle {
1271 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1272 #[allow(unused_mut)]
1273 let mut start = start;
1274 #[cfg(feature = "wml-settings")]
1275 {
1276 let val = &self.lang;
1277 start.push_attribute(("w:lang", val.as_str()));
1278 }
1279 #[cfg(feature = "wml-settings")]
1280 {
1281 let val = &self.vendor_i_d;
1282 start.push_attribute(("w:vendorID", val.as_str()));
1283 }
1284 #[cfg(feature = "wml-settings")]
1285 {
1286 let val = &self.dll_version;
1287 start.push_attribute(("w:dllVersion", val.as_str()));
1288 }
1289 #[cfg(feature = "wml-settings")]
1290 if let Some(ref val) = self.nl_check {
1291 {
1292 let s = val.to_string();
1293 start.push_attribute(("w:nlCheck", s.as_str()));
1294 }
1295 }
1296 #[cfg(feature = "wml-settings")]
1297 {
1298 let val = &self.check_style;
1299 {
1300 let s = val.to_string();
1301 start.push_attribute(("w:checkStyle", s.as_str()));
1302 }
1303 }
1304 #[cfg(feature = "wml-settings")]
1305 {
1306 let val = &self.app_name;
1307 start.push_attribute(("w:appName", val.as_str()));
1308 }
1309 #[cfg(feature = "extra-attrs")]
1310 for (key, value) in &self.extra_attrs {
1311 start.push_attribute((key.as_str(), value.as_str()));
1312 }
1313 start
1314 }
1315
1316 fn is_empty_element(&self) -> bool {
1317 true
1318 }
1319}
1320
1321impl ToXml for CTProof {
1322 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1323 #[allow(unused_mut)]
1324 let mut start = start;
1325 #[cfg(feature = "wml-settings")]
1326 if let Some(ref val) = self.spelling {
1327 {
1328 let s = val.to_string();
1329 start.push_attribute(("w:spelling", s.as_str()));
1330 }
1331 }
1332 #[cfg(feature = "wml-settings")]
1333 if let Some(ref val) = self.grammar {
1334 {
1335 let s = val.to_string();
1336 start.push_attribute(("w:grammar", s.as_str()));
1337 }
1338 }
1339 #[cfg(feature = "extra-attrs")]
1340 for (key, value) in &self.extra_attrs {
1341 start.push_attribute((key.as_str(), value.as_str()));
1342 }
1343 start
1344 }
1345
1346 fn is_empty_element(&self) -> bool {
1347 true
1348 }
1349}
1350
1351impl ToXml for DocTypeElement {
1352 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1353 #[allow(unused_mut)]
1354 let mut start = start;
1355 {
1356 let val = &self.value;
1357 start.push_attribute(("w:val", val.as_str()));
1358 }
1359 #[cfg(feature = "extra-attrs")]
1360 for (key, value) in &self.extra_attrs {
1361 start.push_attribute((key.as_str(), value.as_str()));
1362 }
1363 start
1364 }
1365
1366 fn is_empty_element(&self) -> bool {
1367 true
1368 }
1369}
1370
1371impl ToXml for WAGPassword {
1372 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1373 #[allow(unused_mut)]
1374 let mut start = start;
1375 if let Some(ref val) = self.algorithm_name {
1376 start.push_attribute(("w:algorithmName", val.as_str()));
1377 }
1378 if let Some(ref val) = self.hash_value {
1379 {
1380 let b64 = encode_base64(val);
1381 start.push_attribute(("w:hashValue", b64.as_str()));
1382 }
1383 }
1384 if let Some(ref val) = self.salt_value {
1385 {
1386 let b64 = encode_base64(val);
1387 start.push_attribute(("w:saltValue", b64.as_str()));
1388 }
1389 }
1390 if let Some(ref val) = self.spin_count {
1391 {
1392 let s = val.to_string();
1393 start.push_attribute(("w:spinCount", s.as_str()));
1394 }
1395 }
1396 #[cfg(feature = "extra-attrs")]
1397 for (key, value) in &self.extra_attrs {
1398 start.push_attribute((key.as_str(), value.as_str()));
1399 }
1400 start
1401 }
1402
1403 fn is_empty_element(&self) -> bool {
1404 true
1405 }
1406}
1407
1408impl ToXml for WAGTransitionalPassword {
1409 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1410 #[allow(unused_mut)]
1411 let mut start = start;
1412 if let Some(ref val) = self.crypt_provider_type {
1413 {
1414 let s = val.to_string();
1415 start.push_attribute(("w:cryptProviderType", s.as_str()));
1416 }
1417 }
1418 if let Some(ref val) = self.crypt_algorithm_class {
1419 {
1420 let s = val.to_string();
1421 start.push_attribute(("w:cryptAlgorithmClass", s.as_str()));
1422 }
1423 }
1424 if let Some(ref val) = self.crypt_algorithm_type {
1425 {
1426 let s = val.to_string();
1427 start.push_attribute(("w:cryptAlgorithmType", s.as_str()));
1428 }
1429 }
1430 if let Some(ref val) = self.crypt_algorithm_sid {
1431 {
1432 let s = val.to_string();
1433 start.push_attribute(("w:cryptAlgorithmSid", s.as_str()));
1434 }
1435 }
1436 if let Some(ref val) = self.crypt_spin_count {
1437 {
1438 let s = val.to_string();
1439 start.push_attribute(("w:cryptSpinCount", s.as_str()));
1440 }
1441 }
1442 if let Some(ref val) = self.crypt_provider {
1443 start.push_attribute(("w:cryptProvider", val.as_str()));
1444 }
1445 if let Some(ref val) = self.alg_id_ext {
1446 {
1447 let hex = encode_hex(val);
1448 start.push_attribute(("w:algIdExt", hex.as_str()));
1449 }
1450 }
1451 if let Some(ref val) = self.alg_id_ext_source {
1452 start.push_attribute(("w:algIdExtSource", val.as_str()));
1453 }
1454 if let Some(ref val) = self.crypt_provider_type_ext {
1455 {
1456 let hex = encode_hex(val);
1457 start.push_attribute(("w:cryptProviderTypeExt", hex.as_str()));
1458 }
1459 }
1460 if let Some(ref val) = self.crypt_provider_type_ext_source {
1461 start.push_attribute(("w:cryptProviderTypeExtSource", val.as_str()));
1462 }
1463 if let Some(ref val) = self.hash {
1464 {
1465 let b64 = encode_base64(val);
1466 start.push_attribute(("w:hash", b64.as_str()));
1467 }
1468 }
1469 if let Some(ref val) = self.salt {
1470 {
1471 let b64 = encode_base64(val);
1472 start.push_attribute(("w:salt", b64.as_str()));
1473 }
1474 }
1475 #[cfg(feature = "extra-attrs")]
1476 for (key, value) in &self.extra_attrs {
1477 start.push_attribute((key.as_str(), value.as_str()));
1478 }
1479 start
1480 }
1481
1482 fn is_empty_element(&self) -> bool {
1483 true
1484 }
1485}
1486
1487impl ToXml for CTDocProtect {
1488 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1489 #[allow(unused_mut)]
1490 let mut start = start;
1491 #[cfg(feature = "wml-settings")]
1492 if let Some(ref val) = self.edit {
1493 {
1494 let s = val.to_string();
1495 start.push_attribute(("w:edit", s.as_str()));
1496 }
1497 }
1498 #[cfg(feature = "wml-settings")]
1499 if let Some(ref val) = self.formatting {
1500 {
1501 let s = val.to_string();
1502 start.push_attribute(("w:formatting", s.as_str()));
1503 }
1504 }
1505 #[cfg(feature = "wml-settings")]
1506 if let Some(ref val) = self.enforcement {
1507 {
1508 let s = val.to_string();
1509 start.push_attribute(("w:enforcement", s.as_str()));
1510 }
1511 }
1512 #[cfg(feature = "wml-settings")]
1513 if let Some(ref val) = self.algorithm_name {
1514 start.push_attribute(("w:algorithmName", val.as_str()));
1515 }
1516 #[cfg(feature = "wml-settings")]
1517 if let Some(ref val) = self.hash_value {
1518 {
1519 let b64 = encode_base64(val);
1520 start.push_attribute(("w:hashValue", b64.as_str()));
1521 }
1522 }
1523 #[cfg(feature = "wml-settings")]
1524 if let Some(ref val) = self.salt_value {
1525 {
1526 let b64 = encode_base64(val);
1527 start.push_attribute(("w:saltValue", b64.as_str()));
1528 }
1529 }
1530 #[cfg(feature = "wml-settings")]
1531 if let Some(ref val) = self.spin_count {
1532 {
1533 let s = val.to_string();
1534 start.push_attribute(("w:spinCount", s.as_str()));
1535 }
1536 }
1537 #[cfg(feature = "wml-settings")]
1538 if let Some(ref val) = self.crypt_provider_type {
1539 {
1540 let s = val.to_string();
1541 start.push_attribute(("w:cryptProviderType", s.as_str()));
1542 }
1543 }
1544 #[cfg(feature = "wml-settings")]
1545 if let Some(ref val) = self.crypt_algorithm_class {
1546 {
1547 let s = val.to_string();
1548 start.push_attribute(("w:cryptAlgorithmClass", s.as_str()));
1549 }
1550 }
1551 #[cfg(feature = "wml-settings")]
1552 if let Some(ref val) = self.crypt_algorithm_type {
1553 {
1554 let s = val.to_string();
1555 start.push_attribute(("w:cryptAlgorithmType", s.as_str()));
1556 }
1557 }
1558 #[cfg(feature = "wml-settings")]
1559 if let Some(ref val) = self.crypt_algorithm_sid {
1560 {
1561 let s = val.to_string();
1562 start.push_attribute(("w:cryptAlgorithmSid", s.as_str()));
1563 }
1564 }
1565 #[cfg(feature = "wml-settings")]
1566 if let Some(ref val) = self.crypt_spin_count {
1567 {
1568 let s = val.to_string();
1569 start.push_attribute(("w:cryptSpinCount", s.as_str()));
1570 }
1571 }
1572 #[cfg(feature = "wml-settings")]
1573 if let Some(ref val) = self.crypt_provider {
1574 start.push_attribute(("w:cryptProvider", val.as_str()));
1575 }
1576 #[cfg(feature = "wml-settings")]
1577 if let Some(ref val) = self.alg_id_ext {
1578 {
1579 let hex = encode_hex(val);
1580 start.push_attribute(("w:algIdExt", hex.as_str()));
1581 }
1582 }
1583 #[cfg(feature = "wml-settings")]
1584 if let Some(ref val) = self.alg_id_ext_source {
1585 start.push_attribute(("w:algIdExtSource", val.as_str()));
1586 }
1587 #[cfg(feature = "wml-settings")]
1588 if let Some(ref val) = self.crypt_provider_type_ext {
1589 {
1590 let hex = encode_hex(val);
1591 start.push_attribute(("w:cryptProviderTypeExt", hex.as_str()));
1592 }
1593 }
1594 #[cfg(feature = "wml-settings")]
1595 if let Some(ref val) = self.crypt_provider_type_ext_source {
1596 start.push_attribute(("w:cryptProviderTypeExtSource", val.as_str()));
1597 }
1598 #[cfg(feature = "wml-settings")]
1599 if let Some(ref val) = self.hash {
1600 {
1601 let b64 = encode_base64(val);
1602 start.push_attribute(("w:hash", b64.as_str()));
1603 }
1604 }
1605 #[cfg(feature = "wml-settings")]
1606 if let Some(ref val) = self.salt {
1607 {
1608 let b64 = encode_base64(val);
1609 start.push_attribute(("w:salt", b64.as_str()));
1610 }
1611 }
1612 #[cfg(feature = "extra-attrs")]
1613 for (key, value) in &self.extra_attrs {
1614 start.push_attribute((key.as_str(), value.as_str()));
1615 }
1616 start
1617 }
1618
1619 fn is_empty_element(&self) -> bool {
1620 true
1621 }
1622}
1623
1624impl ToXml for CTMailMergeDocType {
1625 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1626 #[allow(unused_mut)]
1627 let mut start = start;
1628 {
1629 let val = &self.value;
1630 {
1631 let s = val.to_string();
1632 start.push_attribute(("w:val", s.as_str()));
1633 }
1634 }
1635 #[cfg(feature = "extra-attrs")]
1636 for (key, value) in &self.extra_attrs {
1637 start.push_attribute((key.as_str(), value.as_str()));
1638 }
1639 start
1640 }
1641
1642 fn is_empty_element(&self) -> bool {
1643 true
1644 }
1645}
1646
1647impl ToXml for MailMergeDataTypeElement {
1648 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1649 #[allow(unused_mut)]
1650 let mut start = start;
1651 {
1652 let val = &self.value;
1653 start.push_attribute(("w:val", val.as_str()));
1654 }
1655 #[cfg(feature = "extra-attrs")]
1656 for (key, value) in &self.extra_attrs {
1657 start.push_attribute((key.as_str(), value.as_str()));
1658 }
1659 start
1660 }
1661
1662 fn is_empty_element(&self) -> bool {
1663 true
1664 }
1665}
1666
1667impl ToXml for CTMailMergeDest {
1668 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1669 #[allow(unused_mut)]
1670 let mut start = start;
1671 {
1672 let val = &self.value;
1673 {
1674 let s = val.to_string();
1675 start.push_attribute(("w:val", s.as_str()));
1676 }
1677 }
1678 #[cfg(feature = "extra-attrs")]
1679 for (key, value) in &self.extra_attrs {
1680 start.push_attribute((key.as_str(), value.as_str()));
1681 }
1682 start
1683 }
1684
1685 fn is_empty_element(&self) -> bool {
1686 true
1687 }
1688}
1689
1690impl ToXml for CTMailMergeOdsoFMDFieldType {
1691 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1692 #[allow(unused_mut)]
1693 let mut start = start;
1694 {
1695 let val = &self.value;
1696 {
1697 let s = val.to_string();
1698 start.push_attribute(("w:val", s.as_str()));
1699 }
1700 }
1701 #[cfg(feature = "extra-attrs")]
1702 for (key, value) in &self.extra_attrs {
1703 start.push_attribute((key.as_str(), value.as_str()));
1704 }
1705 start
1706 }
1707
1708 fn is_empty_element(&self) -> bool {
1709 true
1710 }
1711}
1712
1713impl ToXml for CTTrackChangesView {
1714 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1715 #[allow(unused_mut)]
1716 let mut start = start;
1717 #[cfg(feature = "wml-settings")]
1718 if let Some(ref val) = self.markup {
1719 {
1720 let s = val.to_string();
1721 start.push_attribute(("w:markup", s.as_str()));
1722 }
1723 }
1724 #[cfg(feature = "wml-settings")]
1725 if let Some(ref val) = self.comments {
1726 {
1727 let s = val.to_string();
1728 start.push_attribute(("w:comments", s.as_str()));
1729 }
1730 }
1731 #[cfg(feature = "wml-settings")]
1732 if let Some(ref val) = self.ins_del {
1733 {
1734 let s = val.to_string();
1735 start.push_attribute(("w:insDel", s.as_str()));
1736 }
1737 }
1738 #[cfg(feature = "wml-settings")]
1739 if let Some(ref val) = self.formatting {
1740 {
1741 let s = val.to_string();
1742 start.push_attribute(("w:formatting", s.as_str()));
1743 }
1744 }
1745 #[cfg(feature = "wml-settings")]
1746 if let Some(ref val) = self.ink_annotations {
1747 {
1748 let s = val.to_string();
1749 start.push_attribute(("w:inkAnnotations", s.as_str()));
1750 }
1751 }
1752 #[cfg(feature = "extra-attrs")]
1753 for (key, value) in &self.extra_attrs {
1754 start.push_attribute((key.as_str(), value.as_str()));
1755 }
1756 start
1757 }
1758
1759 fn is_empty_element(&self) -> bool {
1760 true
1761 }
1762}
1763
1764impl ToXml for CTKinsoku {
1765 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1766 #[allow(unused_mut)]
1767 let mut start = start;
1768 #[cfg(feature = "wml-styling")]
1769 {
1770 let val = &self.lang;
1771 start.push_attribute(("w:lang", val.as_str()));
1772 }
1773 #[cfg(feature = "wml-styling")]
1774 {
1775 let val = &self.value;
1776 start.push_attribute(("w:val", val.as_str()));
1777 }
1778 #[cfg(feature = "extra-attrs")]
1779 for (key, value) in &self.extra_attrs {
1780 start.push_attribute((key.as_str(), value.as_str()));
1781 }
1782 start
1783 }
1784
1785 fn is_empty_element(&self) -> bool {
1786 true
1787 }
1788}
1789
1790impl ToXml for CTTextDirection {
1791 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1792 #[allow(unused_mut)]
1793 let mut start = start;
1794 {
1795 let val = &self.value;
1796 {
1797 let s = val.to_string();
1798 start.push_attribute(("w:val", s.as_str()));
1799 }
1800 }
1801 #[cfg(feature = "extra-attrs")]
1802 for (key, value) in &self.extra_attrs {
1803 start.push_attribute((key.as_str(), value.as_str()));
1804 }
1805 start
1806 }
1807
1808 fn is_empty_element(&self) -> bool {
1809 true
1810 }
1811}
1812
1813impl ToXml for CTTextAlignment {
1814 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1815 #[allow(unused_mut)]
1816 let mut start = start;
1817 {
1818 let val = &self.value;
1819 {
1820 let s = val.to_string();
1821 start.push_attribute(("w:val", s.as_str()));
1822 }
1823 }
1824 #[cfg(feature = "extra-attrs")]
1825 for (key, value) in &self.extra_attrs {
1826 start.push_attribute((key.as_str(), value.as_str()));
1827 }
1828 start
1829 }
1830
1831 fn is_empty_element(&self) -> bool {
1832 true
1833 }
1834}
1835
1836impl ToXml for CTMarkup {
1837 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1838 #[allow(unused_mut)]
1839 let mut start = start;
1840 {
1841 let val = &self.id;
1842 {
1843 let s = val.to_string();
1844 start.push_attribute(("w:id", s.as_str()));
1845 }
1846 }
1847 #[cfg(feature = "extra-attrs")]
1848 for (key, value) in &self.extra_attrs {
1849 start.push_attribute((key.as_str(), value.as_str()));
1850 }
1851 start
1852 }
1853
1854 fn is_empty_element(&self) -> bool {
1855 true
1856 }
1857}
1858
1859impl ToXml for CTTrackChange {
1860 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1861 #[allow(unused_mut)]
1862 let mut start = start;
1863 {
1864 let val = &self.id;
1865 {
1866 let s = val.to_string();
1867 start.push_attribute(("w:id", s.as_str()));
1868 }
1869 }
1870 {
1871 let val = &self.author;
1872 start.push_attribute(("w:author", val.as_str()));
1873 }
1874 #[cfg(feature = "wml-track-changes")]
1875 if let Some(ref val) = self.date {
1876 start.push_attribute(("w:date", val.as_str()));
1877 }
1878 #[cfg(feature = "extra-attrs")]
1879 for (key, value) in &self.extra_attrs {
1880 start.push_attribute((key.as_str(), value.as_str()));
1881 }
1882 start
1883 }
1884
1885 fn is_empty_element(&self) -> bool {
1886 true
1887 }
1888}
1889
1890impl ToXml for CTCellMergeTrackChange {
1891 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1892 #[allow(unused_mut)]
1893 let mut start = start;
1894 {
1895 let val = &self.id;
1896 {
1897 let s = val.to_string();
1898 start.push_attribute(("w:id", s.as_str()));
1899 }
1900 }
1901 {
1902 let val = &self.author;
1903 start.push_attribute(("w:author", val.as_str()));
1904 }
1905 if let Some(ref val) = self.date {
1906 start.push_attribute(("w:date", val.as_str()));
1907 }
1908 #[cfg(feature = "wml-track-changes")]
1909 if let Some(ref val) = self.vertical_merge {
1910 {
1911 let s = val.to_string();
1912 start.push_attribute(("w:vMerge", s.as_str()));
1913 }
1914 }
1915 #[cfg(feature = "wml-track-changes")]
1916 if let Some(ref val) = self.v_merge_orig {
1917 {
1918 let s = val.to_string();
1919 start.push_attribute(("w:vMergeOrig", s.as_str()));
1920 }
1921 }
1922 #[cfg(feature = "extra-attrs")]
1923 for (key, value) in &self.extra_attrs {
1924 start.push_attribute((key.as_str(), value.as_str()));
1925 }
1926 start
1927 }
1928
1929 fn is_empty_element(&self) -> bool {
1930 true
1931 }
1932}
1933
1934impl ToXml for CTTrackChangeRange {
1935 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1936 #[allow(unused_mut)]
1937 let mut start = start;
1938 {
1939 let val = &self.id;
1940 {
1941 let s = val.to_string();
1942 start.push_attribute(("w:id", s.as_str()));
1943 }
1944 }
1945 {
1946 let val = &self.author;
1947 start.push_attribute(("w:author", val.as_str()));
1948 }
1949 if let Some(ref val) = self.date {
1950 start.push_attribute(("w:date", val.as_str()));
1951 }
1952 #[cfg(feature = "wml-settings")]
1953 if let Some(ref val) = self.displaced_by_custom_xml {
1954 {
1955 let s = val.to_string();
1956 start.push_attribute(("w:displacedByCustomXml", s.as_str()));
1957 }
1958 }
1959 #[cfg(feature = "extra-attrs")]
1960 for (key, value) in &self.extra_attrs {
1961 start.push_attribute((key.as_str(), value.as_str()));
1962 }
1963 start
1964 }
1965
1966 fn is_empty_element(&self) -> bool {
1967 true
1968 }
1969}
1970
1971impl ToXml for CTMarkupRange {
1972 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1973 #[allow(unused_mut)]
1974 let mut start = start;
1975 {
1976 let val = &self.id;
1977 {
1978 let s = val.to_string();
1979 start.push_attribute(("w:id", s.as_str()));
1980 }
1981 }
1982 #[cfg(feature = "wml-settings")]
1983 if let Some(ref val) = self.displaced_by_custom_xml {
1984 {
1985 let s = val.to_string();
1986 start.push_attribute(("w:displacedByCustomXml", s.as_str()));
1987 }
1988 }
1989 #[cfg(feature = "extra-attrs")]
1990 for (key, value) in &self.extra_attrs {
1991 start.push_attribute((key.as_str(), value.as_str()));
1992 }
1993 start
1994 }
1995
1996 fn is_empty_element(&self) -> bool {
1997 true
1998 }
1999}
2000
2001impl ToXml for CTBookmarkRange {
2002 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2003 #[allow(unused_mut)]
2004 let mut start = start;
2005 {
2006 let val = &self.id;
2007 {
2008 let s = val.to_string();
2009 start.push_attribute(("w:id", s.as_str()));
2010 }
2011 }
2012 if let Some(ref val) = self.displaced_by_custom_xml {
2013 {
2014 let s = val.to_string();
2015 start.push_attribute(("w:displacedByCustomXml", s.as_str()));
2016 }
2017 }
2018 #[cfg(feature = "wml-tables")]
2019 if let Some(ref val) = self.col_first {
2020 {
2021 let s = val.to_string();
2022 start.push_attribute(("w:colFirst", s.as_str()));
2023 }
2024 }
2025 #[cfg(feature = "wml-tables")]
2026 if let Some(ref val) = self.col_last {
2027 {
2028 let s = val.to_string();
2029 start.push_attribute(("w:colLast", s.as_str()));
2030 }
2031 }
2032 #[cfg(feature = "extra-attrs")]
2033 for (key, value) in &self.extra_attrs {
2034 start.push_attribute((key.as_str(), value.as_str()));
2035 }
2036 start
2037 }
2038
2039 fn is_empty_element(&self) -> bool {
2040 true
2041 }
2042}
2043
2044impl ToXml for Bookmark {
2045 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2046 #[allow(unused_mut)]
2047 let mut start = start;
2048 {
2049 let val = &self.id;
2050 {
2051 let s = val.to_string();
2052 start.push_attribute(("w:id", s.as_str()));
2053 }
2054 }
2055 #[cfg(feature = "wml-settings")]
2056 if let Some(ref val) = self.displaced_by_custom_xml {
2057 {
2058 let s = val.to_string();
2059 start.push_attribute(("w:displacedByCustomXml", s.as_str()));
2060 }
2061 }
2062 #[cfg(feature = "wml-tables")]
2063 if let Some(ref val) = self.col_first {
2064 {
2065 let s = val.to_string();
2066 start.push_attribute(("w:colFirst", s.as_str()));
2067 }
2068 }
2069 #[cfg(feature = "wml-tables")]
2070 if let Some(ref val) = self.col_last {
2071 {
2072 let s = val.to_string();
2073 start.push_attribute(("w:colLast", s.as_str()));
2074 }
2075 }
2076 {
2077 let val = &self.name;
2078 start.push_attribute(("w:name", val.as_str()));
2079 }
2080 #[cfg(feature = "extra-attrs")]
2081 for (key, value) in &self.extra_attrs {
2082 start.push_attribute((key.as_str(), value.as_str()));
2083 }
2084 start
2085 }
2086
2087 fn is_empty_element(&self) -> bool {
2088 true
2089 }
2090}
2091
2092impl ToXml for CTMoveBookmark {
2093 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2094 #[allow(unused_mut)]
2095 let mut start = start;
2096 {
2097 let val = &self.id;
2098 {
2099 let s = val.to_string();
2100 start.push_attribute(("w:id", s.as_str()));
2101 }
2102 }
2103 if let Some(ref val) = self.displaced_by_custom_xml {
2104 {
2105 let s = val.to_string();
2106 start.push_attribute(("w:displacedByCustomXml", s.as_str()));
2107 }
2108 }
2109 if let Some(ref val) = self.col_first {
2110 {
2111 let s = val.to_string();
2112 start.push_attribute(("w:colFirst", s.as_str()));
2113 }
2114 }
2115 if let Some(ref val) = self.col_last {
2116 {
2117 let s = val.to_string();
2118 start.push_attribute(("w:colLast", s.as_str()));
2119 }
2120 }
2121 {
2122 let val = &self.name;
2123 start.push_attribute(("w:name", val.as_str()));
2124 }
2125 #[cfg(feature = "wml-track-changes")]
2126 {
2127 let val = &self.author;
2128 start.push_attribute(("w:author", val.as_str()));
2129 }
2130 #[cfg(feature = "wml-track-changes")]
2131 {
2132 let val = &self.date;
2133 start.push_attribute(("w:date", val.as_str()));
2134 }
2135 #[cfg(feature = "extra-attrs")]
2136 for (key, value) in &self.extra_attrs {
2137 start.push_attribute((key.as_str(), value.as_str()));
2138 }
2139 start
2140 }
2141
2142 fn is_empty_element(&self) -> bool {
2143 true
2144 }
2145}
2146
2147impl ToXml for Comment {
2148 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2149 #[allow(unused_mut)]
2150 let mut start = start;
2151 {
2152 let val = &self.id;
2153 {
2154 let s = val.to_string();
2155 start.push_attribute(("w:id", s.as_str()));
2156 }
2157 }
2158 {
2159 let val = &self.author;
2160 start.push_attribute(("w:author", val.as_str()));
2161 }
2162 #[cfg(feature = "wml-comments")]
2163 if let Some(ref val) = self.date {
2164 start.push_attribute(("w:date", val.as_str()));
2165 }
2166 #[cfg(feature = "wml-comments")]
2167 if let Some(ref val) = self.initials {
2168 start.push_attribute(("w:initials", val.as_str()));
2169 }
2170 #[cfg(feature = "extra-attrs")]
2171 for (key, value) in &self.extra_attrs {
2172 start.push_attribute((key.as_str(), value.as_str()));
2173 }
2174 start
2175 }
2176
2177 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2178 #[cfg(feature = "extra-children")]
2179 let mut extra_iter = self.extra_children.iter().peekable();
2180 #[cfg(feature = "extra-children")]
2181 let mut emit_idx: usize = 0;
2182 for item in &self.block_content {
2183 #[cfg(feature = "extra-children")]
2184 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2185 extra_iter
2186 .next()
2187 .unwrap()
2188 .node
2189 .write_to(writer)
2190 .map_err(SerializeError::from)?;
2191 }
2192 item.write_element("", writer)?;
2193 #[cfg(feature = "extra-children")]
2194 {
2195 emit_idx += 1;
2196 }
2197 }
2198 #[cfg(feature = "extra-children")]
2199 for extra in extra_iter {
2200 extra.node.write_to(writer).map_err(SerializeError::from)?;
2201 }
2202 Ok(())
2203 }
2204
2205 fn is_empty_element(&self) -> bool {
2206 if !self.block_content.is_empty() {
2207 return false;
2208 }
2209 #[cfg(feature = "extra-children")]
2210 if !self.extra_children.is_empty() {
2211 return false;
2212 }
2213 true
2214 }
2215}
2216
2217impl ToXml for CTTrackChangeNumbering {
2218 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2219 #[allow(unused_mut)]
2220 let mut start = start;
2221 {
2222 let val = &self.id;
2223 {
2224 let s = val.to_string();
2225 start.push_attribute(("w:id", s.as_str()));
2226 }
2227 }
2228 {
2229 let val = &self.author;
2230 start.push_attribute(("w:author", val.as_str()));
2231 }
2232 if let Some(ref val) = self.date {
2233 start.push_attribute(("w:date", val.as_str()));
2234 }
2235 #[cfg(feature = "wml-track-changes")]
2236 if let Some(ref val) = self.original {
2237 start.push_attribute(("w:original", val.as_str()));
2238 }
2239 #[cfg(feature = "extra-attrs")]
2240 for (key, value) in &self.extra_attrs {
2241 start.push_attribute((key.as_str(), value.as_str()));
2242 }
2243 start
2244 }
2245
2246 fn is_empty_element(&self) -> bool {
2247 true
2248 }
2249}
2250
2251impl ToXml for CTTblPrExChange {
2252 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2253 #[allow(unused_mut)]
2254 let mut start = start;
2255 {
2256 let val = &self.id;
2257 {
2258 let s = val.to_string();
2259 start.push_attribute(("w:id", s.as_str()));
2260 }
2261 }
2262 {
2263 let val = &self.author;
2264 start.push_attribute(("w:author", val.as_str()));
2265 }
2266 if let Some(ref val) = self.date {
2267 start.push_attribute(("w:date", val.as_str()));
2268 }
2269 #[cfg(feature = "extra-attrs")]
2270 for (key, value) in &self.extra_attrs {
2271 start.push_attribute((key.as_str(), value.as_str()));
2272 }
2273 start
2274 }
2275
2276 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2277 #[cfg(feature = "extra-children")]
2278 let mut extra_iter = self.extra_children.iter().peekable();
2279 #[cfg(feature = "extra-children")]
2280 let mut emit_idx: usize = 0;
2281 #[cfg(feature = "extra-children")]
2282 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2283 extra_iter
2284 .next()
2285 .unwrap()
2286 .node
2287 .write_to(writer)
2288 .map_err(SerializeError::from)?;
2289 }
2290 #[cfg(feature = "wml-track-changes")]
2291 {
2292 let val = &self.tbl_pr_ex;
2293 val.write_element("w:tblPrEx", writer)?;
2294 }
2295 #[cfg(feature = "extra-children")]
2296 {
2297 emit_idx += 1;
2298 }
2299 #[cfg(feature = "extra-children")]
2300 for extra in extra_iter {
2301 extra.node.write_to(writer).map_err(SerializeError::from)?;
2302 }
2303 Ok(())
2304 }
2305
2306 fn is_empty_element(&self) -> bool {
2307 #[cfg(feature = "wml-track-changes")]
2308 return false;
2309 #[cfg(feature = "extra-children")]
2310 if !self.extra_children.is_empty() {
2311 return false;
2312 }
2313 true
2314 }
2315}
2316
2317impl ToXml for CTTcPrChange {
2318 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2319 #[allow(unused_mut)]
2320 let mut start = start;
2321 {
2322 let val = &self.id;
2323 {
2324 let s = val.to_string();
2325 start.push_attribute(("w:id", s.as_str()));
2326 }
2327 }
2328 {
2329 let val = &self.author;
2330 start.push_attribute(("w:author", val.as_str()));
2331 }
2332 if let Some(ref val) = self.date {
2333 start.push_attribute(("w:date", val.as_str()));
2334 }
2335 #[cfg(feature = "extra-attrs")]
2336 for (key, value) in &self.extra_attrs {
2337 start.push_attribute((key.as_str(), value.as_str()));
2338 }
2339 start
2340 }
2341
2342 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2343 #[cfg(feature = "extra-children")]
2344 let mut extra_iter = self.extra_children.iter().peekable();
2345 #[cfg(feature = "extra-children")]
2346 let mut emit_idx: usize = 0;
2347 #[cfg(feature = "extra-children")]
2348 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2349 extra_iter
2350 .next()
2351 .unwrap()
2352 .node
2353 .write_to(writer)
2354 .map_err(SerializeError::from)?;
2355 }
2356 #[cfg(feature = "wml-track-changes")]
2357 {
2358 let val = &self.cell_properties;
2359 val.write_element("w:tcPr", writer)?;
2360 }
2361 #[cfg(feature = "extra-children")]
2362 {
2363 emit_idx += 1;
2364 }
2365 #[cfg(feature = "extra-children")]
2366 for extra in extra_iter {
2367 extra.node.write_to(writer).map_err(SerializeError::from)?;
2368 }
2369 Ok(())
2370 }
2371
2372 fn is_empty_element(&self) -> bool {
2373 #[cfg(feature = "wml-track-changes")]
2374 return false;
2375 #[cfg(feature = "extra-children")]
2376 if !self.extra_children.is_empty() {
2377 return false;
2378 }
2379 true
2380 }
2381}
2382
2383impl ToXml for CTTrPrChange {
2384 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2385 #[allow(unused_mut)]
2386 let mut start = start;
2387 {
2388 let val = &self.id;
2389 {
2390 let s = val.to_string();
2391 start.push_attribute(("w:id", s.as_str()));
2392 }
2393 }
2394 {
2395 let val = &self.author;
2396 start.push_attribute(("w:author", val.as_str()));
2397 }
2398 if let Some(ref val) = self.date {
2399 start.push_attribute(("w:date", val.as_str()));
2400 }
2401 #[cfg(feature = "extra-attrs")]
2402 for (key, value) in &self.extra_attrs {
2403 start.push_attribute((key.as_str(), value.as_str()));
2404 }
2405 start
2406 }
2407
2408 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2409 #[cfg(feature = "extra-children")]
2410 let mut extra_iter = self.extra_children.iter().peekable();
2411 #[cfg(feature = "extra-children")]
2412 let mut emit_idx: usize = 0;
2413 #[cfg(feature = "extra-children")]
2414 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2415 extra_iter
2416 .next()
2417 .unwrap()
2418 .node
2419 .write_to(writer)
2420 .map_err(SerializeError::from)?;
2421 }
2422 #[cfg(feature = "wml-track-changes")]
2423 {
2424 let val = &self.row_properties;
2425 val.write_element("w:trPr", writer)?;
2426 }
2427 #[cfg(feature = "extra-children")]
2428 {
2429 emit_idx += 1;
2430 }
2431 #[cfg(feature = "extra-children")]
2432 for extra in extra_iter {
2433 extra.node.write_to(writer).map_err(SerializeError::from)?;
2434 }
2435 Ok(())
2436 }
2437
2438 fn is_empty_element(&self) -> bool {
2439 #[cfg(feature = "wml-track-changes")]
2440 return false;
2441 #[cfg(feature = "extra-children")]
2442 if !self.extra_children.is_empty() {
2443 return false;
2444 }
2445 true
2446 }
2447}
2448
2449impl ToXml for CTTblGridChange {
2450 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2451 #[allow(unused_mut)]
2452 let mut start = start;
2453 {
2454 let val = &self.id;
2455 {
2456 let s = val.to_string();
2457 start.push_attribute(("w:id", s.as_str()));
2458 }
2459 }
2460 #[cfg(feature = "extra-attrs")]
2461 for (key, value) in &self.extra_attrs {
2462 start.push_attribute((key.as_str(), value.as_str()));
2463 }
2464 start
2465 }
2466
2467 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2468 #[cfg(feature = "extra-children")]
2469 let mut extra_iter = self.extra_children.iter().peekable();
2470 #[cfg(feature = "extra-children")]
2471 let mut emit_idx: usize = 0;
2472 #[cfg(feature = "extra-children")]
2473 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2474 extra_iter
2475 .next()
2476 .unwrap()
2477 .node
2478 .write_to(writer)
2479 .map_err(SerializeError::from)?;
2480 }
2481 #[cfg(feature = "wml-track-changes")]
2482 {
2483 let val = &self.tbl_grid;
2484 val.write_element("w:tblGrid", writer)?;
2485 }
2486 #[cfg(feature = "extra-children")]
2487 {
2488 emit_idx += 1;
2489 }
2490 #[cfg(feature = "extra-children")]
2491 for extra in extra_iter {
2492 extra.node.write_to(writer).map_err(SerializeError::from)?;
2493 }
2494 Ok(())
2495 }
2496
2497 fn is_empty_element(&self) -> bool {
2498 #[cfg(feature = "wml-track-changes")]
2499 return false;
2500 #[cfg(feature = "extra-children")]
2501 if !self.extra_children.is_empty() {
2502 return false;
2503 }
2504 true
2505 }
2506}
2507
2508impl ToXml for CTTblPrChange {
2509 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2510 #[allow(unused_mut)]
2511 let mut start = start;
2512 {
2513 let val = &self.id;
2514 {
2515 let s = val.to_string();
2516 start.push_attribute(("w:id", s.as_str()));
2517 }
2518 }
2519 {
2520 let val = &self.author;
2521 start.push_attribute(("w:author", val.as_str()));
2522 }
2523 if let Some(ref val) = self.date {
2524 start.push_attribute(("w:date", val.as_str()));
2525 }
2526 #[cfg(feature = "extra-attrs")]
2527 for (key, value) in &self.extra_attrs {
2528 start.push_attribute((key.as_str(), value.as_str()));
2529 }
2530 start
2531 }
2532
2533 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2534 #[cfg(feature = "extra-children")]
2535 let mut extra_iter = self.extra_children.iter().peekable();
2536 #[cfg(feature = "extra-children")]
2537 let mut emit_idx: usize = 0;
2538 #[cfg(feature = "extra-children")]
2539 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2540 extra_iter
2541 .next()
2542 .unwrap()
2543 .node
2544 .write_to(writer)
2545 .map_err(SerializeError::from)?;
2546 }
2547 #[cfg(feature = "wml-track-changes")]
2548 {
2549 let val = &self.table_properties;
2550 val.write_element("w:tblPr", writer)?;
2551 }
2552 #[cfg(feature = "extra-children")]
2553 {
2554 emit_idx += 1;
2555 }
2556 #[cfg(feature = "extra-children")]
2557 for extra in extra_iter {
2558 extra.node.write_to(writer).map_err(SerializeError::from)?;
2559 }
2560 Ok(())
2561 }
2562
2563 fn is_empty_element(&self) -> bool {
2564 #[cfg(feature = "wml-track-changes")]
2565 return false;
2566 #[cfg(feature = "extra-children")]
2567 if !self.extra_children.is_empty() {
2568 return false;
2569 }
2570 true
2571 }
2572}
2573
2574impl ToXml for CTSectPrChange {
2575 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2576 #[allow(unused_mut)]
2577 let mut start = start;
2578 {
2579 let val = &self.id;
2580 {
2581 let s = val.to_string();
2582 start.push_attribute(("w:id", s.as_str()));
2583 }
2584 }
2585 {
2586 let val = &self.author;
2587 start.push_attribute(("w:author", val.as_str()));
2588 }
2589 if let Some(ref val) = self.date {
2590 start.push_attribute(("w:date", val.as_str()));
2591 }
2592 #[cfg(feature = "extra-attrs")]
2593 for (key, value) in &self.extra_attrs {
2594 start.push_attribute((key.as_str(), value.as_str()));
2595 }
2596 start
2597 }
2598
2599 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2600 #[cfg(feature = "extra-children")]
2601 let mut extra_iter = self.extra_children.iter().peekable();
2602 #[cfg(feature = "extra-children")]
2603 let mut emit_idx: usize = 0;
2604 #[cfg(feature = "extra-children")]
2605 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2606 extra_iter
2607 .next()
2608 .unwrap()
2609 .node
2610 .write_to(writer)
2611 .map_err(SerializeError::from)?;
2612 }
2613 #[cfg(feature = "wml-track-changes")]
2614 if let Some(ref val) = self.sect_pr {
2615 val.write_element("w:sectPr", writer)?;
2616 }
2617 #[cfg(feature = "extra-children")]
2618 {
2619 emit_idx += 1;
2620 }
2621 #[cfg(feature = "extra-children")]
2622 for extra in extra_iter {
2623 extra.node.write_to(writer).map_err(SerializeError::from)?;
2624 }
2625 Ok(())
2626 }
2627
2628 fn is_empty_element(&self) -> bool {
2629 #[cfg(feature = "wml-track-changes")]
2630 if self.sect_pr.is_some() {
2631 return false;
2632 }
2633 #[cfg(feature = "extra-children")]
2634 if !self.extra_children.is_empty() {
2635 return false;
2636 }
2637 true
2638 }
2639}
2640
2641impl ToXml for CTPPrChange {
2642 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2643 #[allow(unused_mut)]
2644 let mut start = start;
2645 {
2646 let val = &self.id;
2647 {
2648 let s = val.to_string();
2649 start.push_attribute(("w:id", s.as_str()));
2650 }
2651 }
2652 {
2653 let val = &self.author;
2654 start.push_attribute(("w:author", val.as_str()));
2655 }
2656 if let Some(ref val) = self.date {
2657 start.push_attribute(("w:date", val.as_str()));
2658 }
2659 #[cfg(feature = "extra-attrs")]
2660 for (key, value) in &self.extra_attrs {
2661 start.push_attribute((key.as_str(), value.as_str()));
2662 }
2663 start
2664 }
2665
2666 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2667 #[cfg(feature = "extra-children")]
2668 let mut extra_iter = self.extra_children.iter().peekable();
2669 #[cfg(feature = "extra-children")]
2670 let mut emit_idx: usize = 0;
2671 #[cfg(feature = "extra-children")]
2672 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2673 extra_iter
2674 .next()
2675 .unwrap()
2676 .node
2677 .write_to(writer)
2678 .map_err(SerializeError::from)?;
2679 }
2680 #[cfg(feature = "wml-track-changes")]
2681 {
2682 let val = &self.p_pr;
2683 val.write_element("w:pPr", writer)?;
2684 }
2685 #[cfg(feature = "extra-children")]
2686 {
2687 emit_idx += 1;
2688 }
2689 #[cfg(feature = "extra-children")]
2690 for extra in extra_iter {
2691 extra.node.write_to(writer).map_err(SerializeError::from)?;
2692 }
2693 Ok(())
2694 }
2695
2696 fn is_empty_element(&self) -> bool {
2697 #[cfg(feature = "wml-track-changes")]
2698 return false;
2699 #[cfg(feature = "extra-children")]
2700 if !self.extra_children.is_empty() {
2701 return false;
2702 }
2703 true
2704 }
2705}
2706
2707impl ToXml for CTRPrChange {
2708 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2709 #[allow(unused_mut)]
2710 let mut start = start;
2711 {
2712 let val = &self.id;
2713 {
2714 let s = val.to_string();
2715 start.push_attribute(("w:id", s.as_str()));
2716 }
2717 }
2718 {
2719 let val = &self.author;
2720 start.push_attribute(("w:author", val.as_str()));
2721 }
2722 if let Some(ref val) = self.date {
2723 start.push_attribute(("w:date", val.as_str()));
2724 }
2725 #[cfg(feature = "extra-attrs")]
2726 for (key, value) in &self.extra_attrs {
2727 start.push_attribute((key.as_str(), value.as_str()));
2728 }
2729 start
2730 }
2731
2732 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2733 #[cfg(feature = "extra-children")]
2734 let mut extra_iter = self.extra_children.iter().peekable();
2735 #[cfg(feature = "extra-children")]
2736 let mut emit_idx: usize = 0;
2737 #[cfg(feature = "extra-children")]
2738 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2739 extra_iter
2740 .next()
2741 .unwrap()
2742 .node
2743 .write_to(writer)
2744 .map_err(SerializeError::from)?;
2745 }
2746 #[cfg(feature = "wml-track-changes")]
2747 {
2748 let val = &self.r_pr;
2749 val.write_element("w:rPr", writer)?;
2750 }
2751 #[cfg(feature = "extra-children")]
2752 {
2753 emit_idx += 1;
2754 }
2755 #[cfg(feature = "extra-children")]
2756 for extra in extra_iter {
2757 extra.node.write_to(writer).map_err(SerializeError::from)?;
2758 }
2759 Ok(())
2760 }
2761
2762 fn is_empty_element(&self) -> bool {
2763 #[cfg(feature = "wml-track-changes")]
2764 return false;
2765 #[cfg(feature = "extra-children")]
2766 if !self.extra_children.is_empty() {
2767 return false;
2768 }
2769 true
2770 }
2771}
2772
2773impl ToXml for CTParaRPrChange {
2774 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2775 #[allow(unused_mut)]
2776 let mut start = start;
2777 {
2778 let val = &self.id;
2779 {
2780 let s = val.to_string();
2781 start.push_attribute(("w:id", s.as_str()));
2782 }
2783 }
2784 {
2785 let val = &self.author;
2786 start.push_attribute(("w:author", val.as_str()));
2787 }
2788 if let Some(ref val) = self.date {
2789 start.push_attribute(("w:date", val.as_str()));
2790 }
2791 #[cfg(feature = "extra-attrs")]
2792 for (key, value) in &self.extra_attrs {
2793 start.push_attribute((key.as_str(), value.as_str()));
2794 }
2795 start
2796 }
2797
2798 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2799 #[cfg(feature = "extra-children")]
2800 let mut extra_iter = self.extra_children.iter().peekable();
2801 #[cfg(feature = "extra-children")]
2802 let mut emit_idx: usize = 0;
2803 #[cfg(feature = "extra-children")]
2804 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2805 extra_iter
2806 .next()
2807 .unwrap()
2808 .node
2809 .write_to(writer)
2810 .map_err(SerializeError::from)?;
2811 }
2812 #[cfg(feature = "wml-track-changes")]
2813 {
2814 let val = &self.r_pr;
2815 val.write_element("w:rPr", writer)?;
2816 }
2817 #[cfg(feature = "extra-children")]
2818 {
2819 emit_idx += 1;
2820 }
2821 #[cfg(feature = "extra-children")]
2822 for extra in extra_iter {
2823 extra.node.write_to(writer).map_err(SerializeError::from)?;
2824 }
2825 Ok(())
2826 }
2827
2828 fn is_empty_element(&self) -> bool {
2829 #[cfg(feature = "wml-track-changes")]
2830 return false;
2831 #[cfg(feature = "extra-children")]
2832 if !self.extra_children.is_empty() {
2833 return false;
2834 }
2835 true
2836 }
2837}
2838
2839impl ToXml for CTRunTrackChange {
2840 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2841 #[allow(unused_mut)]
2842 let mut start = start;
2843 #[cfg(feature = "wml-track-changes")]
2844 {
2845 let val = &self.id;
2846 {
2847 let s = val.to_string();
2848 start.push_attribute(("w:id", s.as_str()));
2849 }
2850 }
2851 #[cfg(feature = "wml-track-changes")]
2852 {
2853 let val = &self.author;
2854 start.push_attribute(("w:author", val.as_str()));
2855 }
2856 #[cfg(feature = "wml-track-changes")]
2857 if let Some(ref val) = self.date {
2858 start.push_attribute(("w:date", val.as_str()));
2859 }
2860 #[cfg(feature = "extra-attrs")]
2861 for (key, value) in &self.extra_attrs {
2862 start.push_attribute((key.as_str(), value.as_str()));
2863 }
2864 start
2865 }
2866
2867 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2868 #[cfg(feature = "extra-children")]
2869 let mut extra_iter = self.extra_children.iter().peekable();
2870 #[cfg(feature = "extra-children")]
2871 let mut emit_idx: usize = 0;
2872 #[cfg(feature = "wml-track-changes")]
2873 for item in &self.run_content {
2874 #[cfg(feature = "extra-children")]
2875 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2876 extra_iter
2877 .next()
2878 .unwrap()
2879 .node
2880 .write_to(writer)
2881 .map_err(SerializeError::from)?;
2882 }
2883 item.write_element("", writer)?;
2884 #[cfg(feature = "extra-children")]
2885 {
2886 emit_idx += 1;
2887 }
2888 }
2889 #[cfg(feature = "extra-children")]
2890 for extra in extra_iter {
2891 extra.node.write_to(writer).map_err(SerializeError::from)?;
2892 }
2893 Ok(())
2894 }
2895
2896 fn is_empty_element(&self) -> bool {
2897 #[cfg(feature = "wml-track-changes")]
2898 if !self.run_content.is_empty() {
2899 return false;
2900 }
2901 #[cfg(feature = "extra-children")]
2902 if !self.extra_children.is_empty() {
2903 return false;
2904 }
2905 true
2906 }
2907}
2908
2909impl ToXml for MathContent {
2910 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2911 #[cfg(feature = "extra-children")]
2912 let mut extra_iter = self.extra_children.iter().peekable();
2913 #[cfg(feature = "extra-children")]
2914 let mut emit_idx: usize = 0;
2915 for item in &self.p_content_base {
2916 #[cfg(feature = "extra-children")]
2917 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2918 extra_iter
2919 .next()
2920 .unwrap()
2921 .node
2922 .write_to(writer)
2923 .map_err(SerializeError::from)?;
2924 }
2925 item.write_element("", writer)?;
2926 #[cfg(feature = "extra-children")]
2927 {
2928 emit_idx += 1;
2929 }
2930 }
2931 for item in &self.content_run_content_base {
2932 #[cfg(feature = "extra-children")]
2933 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2934 extra_iter
2935 .next()
2936 .unwrap()
2937 .node
2938 .write_to(writer)
2939 .map_err(SerializeError::from)?;
2940 }
2941 item.write_element("", writer)?;
2942 #[cfg(feature = "extra-children")]
2943 {
2944 emit_idx += 1;
2945 }
2946 }
2947 #[cfg(feature = "extra-children")]
2948 for extra in extra_iter {
2949 extra.node.write_to(writer).map_err(SerializeError::from)?;
2950 }
2951 Ok(())
2952 }
2953
2954 fn is_empty_element(&self) -> bool {
2955 if !self.p_content_base.is_empty() {
2956 return false;
2957 }
2958 if !self.content_run_content_base.is_empty() {
2959 return false;
2960 }
2961 #[cfg(feature = "extra-children")]
2962 if !self.extra_children.is_empty() {
2963 return false;
2964 }
2965 true
2966 }
2967}
2968
2969impl ToXml for ParagraphContentBase {
2970 fn write_element<W: Write>(
2971 &self,
2972 _tag: &str,
2973 writer: &mut Writer<W>,
2974 ) -> Result<(), SerializeError> {
2975 match self {
2976 Self::CustomXml(inner) => inner.write_element("w:customXml", writer)?,
2977 Self::FldSimple(inner) => inner.write_element("w:fldSimple", writer)?,
2978 Self::Hyperlink(inner) => inner.write_element("w:hyperlink", writer)?,
2979 }
2980 Ok(())
2981 }
2982}
2983
2984impl ToXml for RunContentBase {
2985 fn write_element<W: Write>(
2986 &self,
2987 _tag: &str,
2988 writer: &mut Writer<W>,
2989 ) -> Result<(), SerializeError> {
2990 match self {
2991 Self::SmartTag(inner) => inner.write_element("w:smartTag", writer)?,
2992 Self::Sdt(inner) => inner.write_element("w:sdt", writer)?,
2993 Self::ProofErr(inner) => inner.write_element("w:proofErr", writer)?,
2994 Self::PermStart(inner) => inner.write_element("w:permStart", writer)?,
2995 Self::PermEnd(inner) => inner.write_element("w:permEnd", writer)?,
2996 Self::BookmarkStart(inner) => inner.write_element("w:bookmarkStart", writer)?,
2997 Self::BookmarkEnd(inner) => inner.write_element("w:bookmarkEnd", writer)?,
2998 Self::MoveFromRangeStart(inner) => {
2999 inner.write_element("w:moveFromRangeStart", writer)?
3000 }
3001 Self::MoveFromRangeEnd(inner) => inner.write_element("w:moveFromRangeEnd", writer)?,
3002 Self::MoveToRangeStart(inner) => inner.write_element("w:moveToRangeStart", writer)?,
3003 Self::MoveToRangeEnd(inner) => inner.write_element("w:moveToRangeEnd", writer)?,
3004 Self::CommentRangeStart(inner) => inner.write_element("w:commentRangeStart", writer)?,
3005 Self::CommentRangeEnd(inner) => inner.write_element("w:commentRangeEnd", writer)?,
3006 Self::CustomXmlInsRangeStart(inner) => {
3007 inner.write_element("w:customXmlInsRangeStart", writer)?
3008 }
3009 Self::CustomXmlInsRangeEnd(inner) => {
3010 inner.write_element("w:customXmlInsRangeEnd", writer)?
3011 }
3012 Self::CustomXmlDelRangeStart(inner) => {
3013 inner.write_element("w:customXmlDelRangeStart", writer)?
3014 }
3015 Self::CustomXmlDelRangeEnd(inner) => {
3016 inner.write_element("w:customXmlDelRangeEnd", writer)?
3017 }
3018 Self::CustomXmlMoveFromRangeStart(inner) => {
3019 inner.write_element("w:customXmlMoveFromRangeStart", writer)?
3020 }
3021 Self::CustomXmlMoveFromRangeEnd(inner) => {
3022 inner.write_element("w:customXmlMoveFromRangeEnd", writer)?
3023 }
3024 Self::CustomXmlMoveToRangeStart(inner) => {
3025 inner.write_element("w:customXmlMoveToRangeStart", writer)?
3026 }
3027 Self::CustomXmlMoveToRangeEnd(inner) => {
3028 inner.write_element("w:customXmlMoveToRangeEnd", writer)?
3029 }
3030 Self::Ins(inner) => inner.write_element("w:ins", writer)?,
3031 Self::Del(inner) => inner.write_element("w:del", writer)?,
3032 Self::MoveFrom(inner) => inner.write_element("w:moveFrom", writer)?,
3033 Self::MoveTo(inner) => inner.write_element("w:moveTo", writer)?,
3034 }
3035 Ok(())
3036 }
3037}
3038
3039impl ToXml for CellMarkup {
3040 fn write_element<W: Write>(
3041 &self,
3042 _tag: &str,
3043 writer: &mut Writer<W>,
3044 ) -> Result<(), SerializeError> {
3045 match self {
3046 Self::CellIns(inner) => inner.write_element("w:cellIns", writer)?,
3047 Self::CellDel(inner) => inner.write_element("w:cellDel", writer)?,
3048 Self::CellMerge(inner) => inner.write_element("w:cellMerge", writer)?,
3049 }
3050 Ok(())
3051 }
3052}
3053
3054impl ToXml for RangeMarkup {
3055 fn write_element<W: Write>(
3056 &self,
3057 _tag: &str,
3058 writer: &mut Writer<W>,
3059 ) -> Result<(), SerializeError> {
3060 match self {
3061 Self::BookmarkStart(inner) => inner.write_element("w:bookmarkStart", writer)?,
3062 Self::BookmarkEnd(inner) => inner.write_element("w:bookmarkEnd", writer)?,
3063 Self::MoveFromRangeStart(inner) => {
3064 inner.write_element("w:moveFromRangeStart", writer)?
3065 }
3066 Self::MoveFromRangeEnd(inner) => inner.write_element("w:moveFromRangeEnd", writer)?,
3067 Self::MoveToRangeStart(inner) => inner.write_element("w:moveToRangeStart", writer)?,
3068 Self::MoveToRangeEnd(inner) => inner.write_element("w:moveToRangeEnd", writer)?,
3069 Self::CommentRangeStart(inner) => inner.write_element("w:commentRangeStart", writer)?,
3070 Self::CommentRangeEnd(inner) => inner.write_element("w:commentRangeEnd", writer)?,
3071 Self::CustomXmlInsRangeStart(inner) => {
3072 inner.write_element("w:customXmlInsRangeStart", writer)?
3073 }
3074 Self::CustomXmlInsRangeEnd(inner) => {
3075 inner.write_element("w:customXmlInsRangeEnd", writer)?
3076 }
3077 Self::CustomXmlDelRangeStart(inner) => {
3078 inner.write_element("w:customXmlDelRangeStart", writer)?
3079 }
3080 Self::CustomXmlDelRangeEnd(inner) => {
3081 inner.write_element("w:customXmlDelRangeEnd", writer)?
3082 }
3083 Self::CustomXmlMoveFromRangeStart(inner) => {
3084 inner.write_element("w:customXmlMoveFromRangeStart", writer)?
3085 }
3086 Self::CustomXmlMoveFromRangeEnd(inner) => {
3087 inner.write_element("w:customXmlMoveFromRangeEnd", writer)?
3088 }
3089 Self::CustomXmlMoveToRangeStart(inner) => {
3090 inner.write_element("w:customXmlMoveToRangeStart", writer)?
3091 }
3092 Self::CustomXmlMoveToRangeEnd(inner) => {
3093 inner.write_element("w:customXmlMoveToRangeEnd", writer)?
3094 }
3095 }
3096 Ok(())
3097 }
3098}
3099
3100impl ToXml for NumberingProperties {
3101 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
3102 #[cfg(feature = "extra-children")]
3103 let mut extra_iter = self.extra_children.iter().peekable();
3104 #[cfg(feature = "extra-children")]
3105 let mut emit_idx: usize = 0;
3106 #[cfg(feature = "extra-children")]
3107 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3108 extra_iter
3109 .next()
3110 .unwrap()
3111 .node
3112 .write_to(writer)
3113 .map_err(SerializeError::from)?;
3114 }
3115 #[cfg(feature = "wml-numbering")]
3116 if let Some(ref val) = self.ilvl {
3117 val.write_element("w:ilvl", writer)?;
3118 }
3119 #[cfg(feature = "extra-children")]
3120 {
3121 emit_idx += 1;
3122 }
3123 #[cfg(feature = "extra-children")]
3124 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3125 extra_iter
3126 .next()
3127 .unwrap()
3128 .node
3129 .write_to(writer)
3130 .map_err(SerializeError::from)?;
3131 }
3132 #[cfg(feature = "wml-numbering")]
3133 if let Some(ref val) = self.num_id {
3134 val.write_element("w:numId", writer)?;
3135 }
3136 #[cfg(feature = "extra-children")]
3137 {
3138 emit_idx += 1;
3139 }
3140 #[cfg(feature = "extra-children")]
3141 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3142 extra_iter
3143 .next()
3144 .unwrap()
3145 .node
3146 .write_to(writer)
3147 .map_err(SerializeError::from)?;
3148 }
3149 #[cfg(feature = "wml-track-changes")]
3150 if let Some(ref val) = self.numbering_change {
3151 val.write_element("w:numberingChange", writer)?;
3152 }
3153 #[cfg(feature = "extra-children")]
3154 {
3155 emit_idx += 1;
3156 }
3157 #[cfg(feature = "extra-children")]
3158 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3159 extra_iter
3160 .next()
3161 .unwrap()
3162 .node
3163 .write_to(writer)
3164 .map_err(SerializeError::from)?;
3165 }
3166 #[cfg(feature = "wml-track-changes")]
3167 if let Some(ref val) = self.ins {
3168 val.write_element("w:ins", writer)?;
3169 }
3170 #[cfg(feature = "extra-children")]
3171 {
3172 emit_idx += 1;
3173 }
3174 #[cfg(feature = "extra-children")]
3175 for extra in extra_iter {
3176 extra.node.write_to(writer).map_err(SerializeError::from)?;
3177 }
3178 Ok(())
3179 }
3180
3181 fn is_empty_element(&self) -> bool {
3182 #[cfg(feature = "wml-numbering")]
3183 if self.ilvl.is_some() {
3184 return false;
3185 }
3186 #[cfg(feature = "wml-numbering")]
3187 if self.num_id.is_some() {
3188 return false;
3189 }
3190 #[cfg(feature = "wml-track-changes")]
3191 if self.numbering_change.is_some() {
3192 return false;
3193 }
3194 #[cfg(feature = "wml-track-changes")]
3195 if self.ins.is_some() {
3196 return false;
3197 }
3198 #[cfg(feature = "extra-children")]
3199 if !self.extra_children.is_empty() {
3200 return false;
3201 }
3202 true
3203 }
3204}
3205
3206impl ToXml for CTPBdr {
3207 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
3208 #[cfg(feature = "extra-children")]
3209 let mut extra_iter = self.extra_children.iter().peekable();
3210 #[cfg(feature = "extra-children")]
3211 let mut emit_idx: usize = 0;
3212 #[cfg(feature = "extra-children")]
3213 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3214 extra_iter
3215 .next()
3216 .unwrap()
3217 .node
3218 .write_to(writer)
3219 .map_err(SerializeError::from)?;
3220 }
3221 #[cfg(feature = "wml-styling")]
3222 if let Some(ref val) = self.top {
3223 val.write_element("w:top", writer)?;
3224 }
3225 #[cfg(feature = "extra-children")]
3226 {
3227 emit_idx += 1;
3228 }
3229 #[cfg(feature = "extra-children")]
3230 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3231 extra_iter
3232 .next()
3233 .unwrap()
3234 .node
3235 .write_to(writer)
3236 .map_err(SerializeError::from)?;
3237 }
3238 #[cfg(feature = "wml-styling")]
3239 if let Some(ref val) = self.left {
3240 val.write_element("w:left", writer)?;
3241 }
3242 #[cfg(feature = "extra-children")]
3243 {
3244 emit_idx += 1;
3245 }
3246 #[cfg(feature = "extra-children")]
3247 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3248 extra_iter
3249 .next()
3250 .unwrap()
3251 .node
3252 .write_to(writer)
3253 .map_err(SerializeError::from)?;
3254 }
3255 #[cfg(feature = "wml-styling")]
3256 if let Some(ref val) = self.bottom {
3257 val.write_element("w:bottom", writer)?;
3258 }
3259 #[cfg(feature = "extra-children")]
3260 {
3261 emit_idx += 1;
3262 }
3263 #[cfg(feature = "extra-children")]
3264 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3265 extra_iter
3266 .next()
3267 .unwrap()
3268 .node
3269 .write_to(writer)
3270 .map_err(SerializeError::from)?;
3271 }
3272 #[cfg(feature = "wml-styling")]
3273 if let Some(ref val) = self.right {
3274 val.write_element("w:right", writer)?;
3275 }
3276 #[cfg(feature = "extra-children")]
3277 {
3278 emit_idx += 1;
3279 }
3280 #[cfg(feature = "extra-children")]
3281 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3282 extra_iter
3283 .next()
3284 .unwrap()
3285 .node
3286 .write_to(writer)
3287 .map_err(SerializeError::from)?;
3288 }
3289 #[cfg(feature = "wml-styling")]
3290 if let Some(ref val) = self.between {
3291 val.write_element("w:between", writer)?;
3292 }
3293 #[cfg(feature = "extra-children")]
3294 {
3295 emit_idx += 1;
3296 }
3297 #[cfg(feature = "extra-children")]
3298 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3299 extra_iter
3300 .next()
3301 .unwrap()
3302 .node
3303 .write_to(writer)
3304 .map_err(SerializeError::from)?;
3305 }
3306 #[cfg(feature = "wml-styling")]
3307 if let Some(ref val) = self.bar {
3308 val.write_element("w:bar", writer)?;
3309 }
3310 #[cfg(feature = "extra-children")]
3311 {
3312 emit_idx += 1;
3313 }
3314 #[cfg(feature = "extra-children")]
3315 for extra in extra_iter {
3316 extra.node.write_to(writer).map_err(SerializeError::from)?;
3317 }
3318 Ok(())
3319 }
3320
3321 fn is_empty_element(&self) -> bool {
3322 #[cfg(feature = "wml-styling")]
3323 if self.top.is_some() {
3324 return false;
3325 }
3326 #[cfg(feature = "wml-styling")]
3327 if self.left.is_some() {
3328 return false;
3329 }
3330 #[cfg(feature = "wml-styling")]
3331 if self.bottom.is_some() {
3332 return false;
3333 }
3334 #[cfg(feature = "wml-styling")]
3335 if self.right.is_some() {
3336 return false;
3337 }
3338 #[cfg(feature = "wml-styling")]
3339 if self.between.is_some() {
3340 return false;
3341 }
3342 #[cfg(feature = "wml-styling")]
3343 if self.bar.is_some() {
3344 return false;
3345 }
3346 #[cfg(feature = "extra-children")]
3347 if !self.extra_children.is_empty() {
3348 return false;
3349 }
3350 true
3351 }
3352}
3353
3354impl ToXml for CTTabs {
3355 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
3356 #[cfg(feature = "extra-children")]
3357 let mut extra_iter = self.extra_children.iter().peekable();
3358 #[cfg(feature = "extra-children")]
3359 let mut emit_idx: usize = 0;
3360 for item in &self.tab {
3361 #[cfg(feature = "extra-children")]
3362 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3363 extra_iter
3364 .next()
3365 .unwrap()
3366 .node
3367 .write_to(writer)
3368 .map_err(SerializeError::from)?;
3369 }
3370 item.write_element("w:tab", writer)?;
3371 #[cfg(feature = "extra-children")]
3372 {
3373 emit_idx += 1;
3374 }
3375 }
3376 #[cfg(feature = "extra-children")]
3377 for extra in extra_iter {
3378 extra.node.write_to(writer).map_err(SerializeError::from)?;
3379 }
3380 Ok(())
3381 }
3382
3383 fn is_empty_element(&self) -> bool {
3384 if !self.tab.is_empty() {
3385 return false;
3386 }
3387 #[cfg(feature = "extra-children")]
3388 if !self.extra_children.is_empty() {
3389 return false;
3390 }
3391 true
3392 }
3393}
3394
3395impl ToXml for CTTextboxTightWrap {
3396 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
3397 #[allow(unused_mut)]
3398 let mut start = start;
3399 {
3400 let val = &self.value;
3401 {
3402 let s = val.to_string();
3403 start.push_attribute(("w:val", s.as_str()));
3404 }
3405 }
3406 #[cfg(feature = "extra-attrs")]
3407 for (key, value) in &self.extra_attrs {
3408 start.push_attribute((key.as_str(), value.as_str()));
3409 }
3410 start
3411 }
3412
3413 fn is_empty_element(&self) -> bool {
3414 true
3415 }
3416}
3417
3418impl ToXml for ParagraphProperties {
3419 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
3420 #[cfg(feature = "extra-children")]
3421 let mut extra_iter = self.extra_children.iter().peekable();
3422 #[cfg(feature = "extra-children")]
3423 let mut emit_idx: usize = 0;
3424 #[cfg(feature = "extra-children")]
3425 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3426 extra_iter
3427 .next()
3428 .unwrap()
3429 .node
3430 .write_to(writer)
3431 .map_err(SerializeError::from)?;
3432 }
3433 if let Some(ref val) = self.paragraph_style {
3434 val.write_element("w:pStyle", writer)?;
3435 }
3436 #[cfg(feature = "extra-children")]
3437 {
3438 emit_idx += 1;
3439 }
3440 #[cfg(feature = "extra-children")]
3441 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3442 extra_iter
3443 .next()
3444 .unwrap()
3445 .node
3446 .write_to(writer)
3447 .map_err(SerializeError::from)?;
3448 }
3449 #[cfg(feature = "wml-layout")]
3450 if let Some(ref val) = self.keep_next {
3451 val.write_element("w:keepNext", writer)?;
3452 }
3453 #[cfg(feature = "extra-children")]
3454 {
3455 emit_idx += 1;
3456 }
3457 #[cfg(feature = "extra-children")]
3458 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3459 extra_iter
3460 .next()
3461 .unwrap()
3462 .node
3463 .write_to(writer)
3464 .map_err(SerializeError::from)?;
3465 }
3466 #[cfg(feature = "wml-layout")]
3467 if let Some(ref val) = self.keep_lines {
3468 val.write_element("w:keepLines", writer)?;
3469 }
3470 #[cfg(feature = "extra-children")]
3471 {
3472 emit_idx += 1;
3473 }
3474 #[cfg(feature = "extra-children")]
3475 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3476 extra_iter
3477 .next()
3478 .unwrap()
3479 .node
3480 .write_to(writer)
3481 .map_err(SerializeError::from)?;
3482 }
3483 #[cfg(feature = "wml-layout")]
3484 if let Some(ref val) = self.page_break_before {
3485 val.write_element("w:pageBreakBefore", writer)?;
3486 }
3487 #[cfg(feature = "extra-children")]
3488 {
3489 emit_idx += 1;
3490 }
3491 #[cfg(feature = "extra-children")]
3492 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3493 extra_iter
3494 .next()
3495 .unwrap()
3496 .node
3497 .write_to(writer)
3498 .map_err(SerializeError::from)?;
3499 }
3500 #[cfg(feature = "wml-layout")]
3501 if let Some(ref val) = self.frame_pr {
3502 val.write_element("w:framePr", writer)?;
3503 }
3504 #[cfg(feature = "extra-children")]
3505 {
3506 emit_idx += 1;
3507 }
3508 #[cfg(feature = "extra-children")]
3509 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3510 extra_iter
3511 .next()
3512 .unwrap()
3513 .node
3514 .write_to(writer)
3515 .map_err(SerializeError::from)?;
3516 }
3517 #[cfg(feature = "wml-layout")]
3518 if let Some(ref val) = self.widow_control {
3519 val.write_element("w:widowControl", writer)?;
3520 }
3521 #[cfg(feature = "extra-children")]
3522 {
3523 emit_idx += 1;
3524 }
3525 #[cfg(feature = "extra-children")]
3526 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3527 extra_iter
3528 .next()
3529 .unwrap()
3530 .node
3531 .write_to(writer)
3532 .map_err(SerializeError::from)?;
3533 }
3534 #[cfg(feature = "wml-numbering")]
3535 if let Some(ref val) = self.num_pr {
3536 val.write_element("w:numPr", writer)?;
3537 }
3538 #[cfg(feature = "extra-children")]
3539 {
3540 emit_idx += 1;
3541 }
3542 #[cfg(feature = "extra-children")]
3543 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3544 extra_iter
3545 .next()
3546 .unwrap()
3547 .node
3548 .write_to(writer)
3549 .map_err(SerializeError::from)?;
3550 }
3551 #[cfg(feature = "wml-layout")]
3552 if let Some(ref val) = self.suppress_line_numbers {
3553 val.write_element("w:suppressLineNumbers", writer)?;
3554 }
3555 #[cfg(feature = "extra-children")]
3556 {
3557 emit_idx += 1;
3558 }
3559 #[cfg(feature = "extra-children")]
3560 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3561 extra_iter
3562 .next()
3563 .unwrap()
3564 .node
3565 .write_to(writer)
3566 .map_err(SerializeError::from)?;
3567 }
3568 #[cfg(feature = "wml-styling")]
3569 if let Some(ref val) = self.paragraph_border {
3570 val.write_element("w:pBdr", writer)?;
3571 }
3572 #[cfg(feature = "extra-children")]
3573 {
3574 emit_idx += 1;
3575 }
3576 #[cfg(feature = "extra-children")]
3577 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3578 extra_iter
3579 .next()
3580 .unwrap()
3581 .node
3582 .write_to(writer)
3583 .map_err(SerializeError::from)?;
3584 }
3585 #[cfg(feature = "wml-styling")]
3586 if let Some(ref val) = self.shading {
3587 val.write_element("w:shd", writer)?;
3588 }
3589 #[cfg(feature = "extra-children")]
3590 {
3591 emit_idx += 1;
3592 }
3593 #[cfg(feature = "extra-children")]
3594 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3595 extra_iter
3596 .next()
3597 .unwrap()
3598 .node
3599 .write_to(writer)
3600 .map_err(SerializeError::from)?;
3601 }
3602 #[cfg(feature = "wml-styling")]
3603 if let Some(ref val) = self.tabs {
3604 val.write_element("w:tabs", writer)?;
3605 }
3606 #[cfg(feature = "extra-children")]
3607 {
3608 emit_idx += 1;
3609 }
3610 #[cfg(feature = "extra-children")]
3611 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3612 extra_iter
3613 .next()
3614 .unwrap()
3615 .node
3616 .write_to(writer)
3617 .map_err(SerializeError::from)?;
3618 }
3619 #[cfg(feature = "wml-styling")]
3620 if let Some(ref val) = self.suppress_auto_hyphens {
3621 val.write_element("w:suppressAutoHyphens", writer)?;
3622 }
3623 #[cfg(feature = "extra-children")]
3624 {
3625 emit_idx += 1;
3626 }
3627 #[cfg(feature = "extra-children")]
3628 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3629 extra_iter
3630 .next()
3631 .unwrap()
3632 .node
3633 .write_to(writer)
3634 .map_err(SerializeError::from)?;
3635 }
3636 #[cfg(feature = "wml-styling")]
3637 if let Some(ref val) = self.kinsoku {
3638 val.write_element("w:kinsoku", writer)?;
3639 }
3640 #[cfg(feature = "extra-children")]
3641 {
3642 emit_idx += 1;
3643 }
3644 #[cfg(feature = "extra-children")]
3645 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3646 extra_iter
3647 .next()
3648 .unwrap()
3649 .node
3650 .write_to(writer)
3651 .map_err(SerializeError::from)?;
3652 }
3653 #[cfg(feature = "wml-styling")]
3654 if let Some(ref val) = self.word_wrap {
3655 val.write_element("w:wordWrap", writer)?;
3656 }
3657 #[cfg(feature = "extra-children")]
3658 {
3659 emit_idx += 1;
3660 }
3661 #[cfg(feature = "extra-children")]
3662 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3663 extra_iter
3664 .next()
3665 .unwrap()
3666 .node
3667 .write_to(writer)
3668 .map_err(SerializeError::from)?;
3669 }
3670 #[cfg(feature = "wml-styling")]
3671 if let Some(ref val) = self.overflow_punct {
3672 val.write_element("w:overflowPunct", writer)?;
3673 }
3674 #[cfg(feature = "extra-children")]
3675 {
3676 emit_idx += 1;
3677 }
3678 #[cfg(feature = "extra-children")]
3679 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3680 extra_iter
3681 .next()
3682 .unwrap()
3683 .node
3684 .write_to(writer)
3685 .map_err(SerializeError::from)?;
3686 }
3687 #[cfg(feature = "wml-styling")]
3688 if let Some(ref val) = self.top_line_punct {
3689 val.write_element("w:topLinePunct", writer)?;
3690 }
3691 #[cfg(feature = "extra-children")]
3692 {
3693 emit_idx += 1;
3694 }
3695 #[cfg(feature = "extra-children")]
3696 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3697 extra_iter
3698 .next()
3699 .unwrap()
3700 .node
3701 .write_to(writer)
3702 .map_err(SerializeError::from)?;
3703 }
3704 #[cfg(feature = "wml-styling")]
3705 if let Some(ref val) = self.auto_space_d_e {
3706 val.write_element("w:autoSpaceDE", writer)?;
3707 }
3708 #[cfg(feature = "extra-children")]
3709 {
3710 emit_idx += 1;
3711 }
3712 #[cfg(feature = "extra-children")]
3713 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3714 extra_iter
3715 .next()
3716 .unwrap()
3717 .node
3718 .write_to(writer)
3719 .map_err(SerializeError::from)?;
3720 }
3721 #[cfg(feature = "wml-styling")]
3722 if let Some(ref val) = self.auto_space_d_n {
3723 val.write_element("w:autoSpaceDN", writer)?;
3724 }
3725 #[cfg(feature = "extra-children")]
3726 {
3727 emit_idx += 1;
3728 }
3729 #[cfg(feature = "extra-children")]
3730 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3731 extra_iter
3732 .next()
3733 .unwrap()
3734 .node
3735 .write_to(writer)
3736 .map_err(SerializeError::from)?;
3737 }
3738 #[cfg(feature = "wml-styling")]
3739 if let Some(ref val) = self.bidi {
3740 val.write_element("w:bidi", writer)?;
3741 }
3742 #[cfg(feature = "extra-children")]
3743 {
3744 emit_idx += 1;
3745 }
3746 #[cfg(feature = "extra-children")]
3747 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3748 extra_iter
3749 .next()
3750 .unwrap()
3751 .node
3752 .write_to(writer)
3753 .map_err(SerializeError::from)?;
3754 }
3755 #[cfg(feature = "wml-styling")]
3756 if let Some(ref val) = self.adjust_right_ind {
3757 val.write_element("w:adjustRightInd", writer)?;
3758 }
3759 #[cfg(feature = "extra-children")]
3760 {
3761 emit_idx += 1;
3762 }
3763 #[cfg(feature = "extra-children")]
3764 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3765 extra_iter
3766 .next()
3767 .unwrap()
3768 .node
3769 .write_to(writer)
3770 .map_err(SerializeError::from)?;
3771 }
3772 #[cfg(feature = "wml-layout")]
3773 if let Some(ref val) = self.snap_to_grid {
3774 val.write_element("w:snapToGrid", writer)?;
3775 }
3776 #[cfg(feature = "extra-children")]
3777 {
3778 emit_idx += 1;
3779 }
3780 #[cfg(feature = "extra-children")]
3781 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3782 extra_iter
3783 .next()
3784 .unwrap()
3785 .node
3786 .write_to(writer)
3787 .map_err(SerializeError::from)?;
3788 }
3789 #[cfg(feature = "wml-styling")]
3790 if let Some(ref val) = self.spacing {
3791 val.write_element("w:spacing", writer)?;
3792 }
3793 #[cfg(feature = "extra-children")]
3794 {
3795 emit_idx += 1;
3796 }
3797 #[cfg(feature = "extra-children")]
3798 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3799 extra_iter
3800 .next()
3801 .unwrap()
3802 .node
3803 .write_to(writer)
3804 .map_err(SerializeError::from)?;
3805 }
3806 #[cfg(feature = "wml-styling")]
3807 if let Some(ref val) = self.indentation {
3808 val.write_element("w:ind", writer)?;
3809 }
3810 #[cfg(feature = "extra-children")]
3811 {
3812 emit_idx += 1;
3813 }
3814 #[cfg(feature = "extra-children")]
3815 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3816 extra_iter
3817 .next()
3818 .unwrap()
3819 .node
3820 .write_to(writer)
3821 .map_err(SerializeError::from)?;
3822 }
3823 #[cfg(feature = "wml-styling")]
3824 if let Some(ref val) = self.contextual_spacing {
3825 val.write_element("w:contextualSpacing", writer)?;
3826 }
3827 #[cfg(feature = "extra-children")]
3828 {
3829 emit_idx += 1;
3830 }
3831 #[cfg(feature = "extra-children")]
3832 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3833 extra_iter
3834 .next()
3835 .unwrap()
3836 .node
3837 .write_to(writer)
3838 .map_err(SerializeError::from)?;
3839 }
3840 #[cfg(feature = "wml-styling")]
3841 if let Some(ref val) = self.mirror_indents {
3842 val.write_element("w:mirrorIndents", writer)?;
3843 }
3844 #[cfg(feature = "extra-children")]
3845 {
3846 emit_idx += 1;
3847 }
3848 #[cfg(feature = "extra-children")]
3849 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3850 extra_iter
3851 .next()
3852 .unwrap()
3853 .node
3854 .write_to(writer)
3855 .map_err(SerializeError::from)?;
3856 }
3857 #[cfg(feature = "wml-layout")]
3858 if let Some(ref val) = self.suppress_overlap {
3859 val.write_element("w:suppressOverlap", writer)?;
3860 }
3861 #[cfg(feature = "extra-children")]
3862 {
3863 emit_idx += 1;
3864 }
3865 #[cfg(feature = "extra-children")]
3866 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3867 extra_iter
3868 .next()
3869 .unwrap()
3870 .node
3871 .write_to(writer)
3872 .map_err(SerializeError::from)?;
3873 }
3874 #[cfg(feature = "wml-styling")]
3875 if let Some(ref val) = self.justification {
3876 val.write_element("w:jc", writer)?;
3877 }
3878 #[cfg(feature = "extra-children")]
3879 {
3880 emit_idx += 1;
3881 }
3882 #[cfg(feature = "extra-children")]
3883 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3884 extra_iter
3885 .next()
3886 .unwrap()
3887 .node
3888 .write_to(writer)
3889 .map_err(SerializeError::from)?;
3890 }
3891 #[cfg(feature = "wml-styling")]
3892 if let Some(ref val) = self.text_direction {
3893 val.write_element("w:textDirection", writer)?;
3894 }
3895 #[cfg(feature = "extra-children")]
3896 {
3897 emit_idx += 1;
3898 }
3899 #[cfg(feature = "extra-children")]
3900 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3901 extra_iter
3902 .next()
3903 .unwrap()
3904 .node
3905 .write_to(writer)
3906 .map_err(SerializeError::from)?;
3907 }
3908 #[cfg(feature = "wml-styling")]
3909 if let Some(ref val) = self.text_alignment {
3910 val.write_element("w:textAlignment", writer)?;
3911 }
3912 #[cfg(feature = "extra-children")]
3913 {
3914 emit_idx += 1;
3915 }
3916 #[cfg(feature = "extra-children")]
3917 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3918 extra_iter
3919 .next()
3920 .unwrap()
3921 .node
3922 .write_to(writer)
3923 .map_err(SerializeError::from)?;
3924 }
3925 #[cfg(feature = "wml-styling")]
3926 if let Some(ref val) = self.textbox_tight_wrap {
3927 val.write_element("w:textboxTightWrap", writer)?;
3928 }
3929 #[cfg(feature = "extra-children")]
3930 {
3931 emit_idx += 1;
3932 }
3933 #[cfg(feature = "extra-children")]
3934 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3935 extra_iter
3936 .next()
3937 .unwrap()
3938 .node
3939 .write_to(writer)
3940 .map_err(SerializeError::from)?;
3941 }
3942 #[cfg(feature = "wml-styling")]
3943 if let Some(ref val) = self.outline_lvl {
3944 val.write_element("w:outlineLvl", writer)?;
3945 }
3946 #[cfg(feature = "extra-children")]
3947 {
3948 emit_idx += 1;
3949 }
3950 #[cfg(feature = "extra-children")]
3951 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3952 extra_iter
3953 .next()
3954 .unwrap()
3955 .node
3956 .write_to(writer)
3957 .map_err(SerializeError::from)?;
3958 }
3959 #[cfg(feature = "wml-styling")]
3960 if let Some(ref val) = self.div_id {
3961 val.write_element("w:divId", writer)?;
3962 }
3963 #[cfg(feature = "extra-children")]
3964 {
3965 emit_idx += 1;
3966 }
3967 #[cfg(feature = "extra-children")]
3968 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3969 extra_iter
3970 .next()
3971 .unwrap()
3972 .node
3973 .write_to(writer)
3974 .map_err(SerializeError::from)?;
3975 }
3976 #[cfg(feature = "wml-styling")]
3977 if let Some(ref val) = self.cnf_style {
3978 val.write_element("w:cnfStyle", writer)?;
3979 }
3980 #[cfg(feature = "extra-children")]
3981 {
3982 emit_idx += 1;
3983 }
3984 #[cfg(feature = "extra-children")]
3985 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3986 extra_iter
3987 .next()
3988 .unwrap()
3989 .node
3990 .write_to(writer)
3991 .map_err(SerializeError::from)?;
3992 }
3993 #[cfg(feature = "wml-styling")]
3994 if let Some(ref val) = self.r_pr {
3995 val.write_element("w:rPr", writer)?;
3996 }
3997 #[cfg(feature = "extra-children")]
3998 {
3999 emit_idx += 1;
4000 }
4001 #[cfg(feature = "extra-children")]
4002 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4003 extra_iter
4004 .next()
4005 .unwrap()
4006 .node
4007 .write_to(writer)
4008 .map_err(SerializeError::from)?;
4009 }
4010 #[cfg(feature = "wml-layout")]
4011 if let Some(ref val) = self.sect_pr {
4012 val.write_element("w:sectPr", writer)?;
4013 }
4014 #[cfg(feature = "extra-children")]
4015 {
4016 emit_idx += 1;
4017 }
4018 #[cfg(feature = "extra-children")]
4019 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4020 extra_iter
4021 .next()
4022 .unwrap()
4023 .node
4024 .write_to(writer)
4025 .map_err(SerializeError::from)?;
4026 }
4027 #[cfg(feature = "wml-track-changes")]
4028 if let Some(ref val) = self.p_pr_change {
4029 val.write_element("w:pPrChange", writer)?;
4030 }
4031 #[cfg(feature = "extra-children")]
4032 {
4033 emit_idx += 1;
4034 }
4035 #[cfg(feature = "extra-children")]
4036 for extra in extra_iter {
4037 extra.node.write_to(writer).map_err(SerializeError::from)?;
4038 }
4039 Ok(())
4040 }
4041
4042 fn is_empty_element(&self) -> bool {
4043 if self.paragraph_style.is_some() {
4044 return false;
4045 }
4046 #[cfg(feature = "wml-layout")]
4047 if self.keep_next.is_some() {
4048 return false;
4049 }
4050 #[cfg(feature = "wml-layout")]
4051 if self.keep_lines.is_some() {
4052 return false;
4053 }
4054 #[cfg(feature = "wml-layout")]
4055 if self.page_break_before.is_some() {
4056 return false;
4057 }
4058 #[cfg(feature = "wml-layout")]
4059 if self.frame_pr.is_some() {
4060 return false;
4061 }
4062 #[cfg(feature = "wml-layout")]
4063 if self.widow_control.is_some() {
4064 return false;
4065 }
4066 #[cfg(feature = "wml-numbering")]
4067 if self.num_pr.is_some() {
4068 return false;
4069 }
4070 #[cfg(feature = "wml-layout")]
4071 if self.suppress_line_numbers.is_some() {
4072 return false;
4073 }
4074 #[cfg(feature = "wml-styling")]
4075 if self.paragraph_border.is_some() {
4076 return false;
4077 }
4078 #[cfg(feature = "wml-styling")]
4079 if self.shading.is_some() {
4080 return false;
4081 }
4082 #[cfg(feature = "wml-styling")]
4083 if self.tabs.is_some() {
4084 return false;
4085 }
4086 #[cfg(feature = "wml-styling")]
4087 if self.suppress_auto_hyphens.is_some() {
4088 return false;
4089 }
4090 #[cfg(feature = "wml-styling")]
4091 if self.kinsoku.is_some() {
4092 return false;
4093 }
4094 #[cfg(feature = "wml-styling")]
4095 if self.word_wrap.is_some() {
4096 return false;
4097 }
4098 #[cfg(feature = "wml-styling")]
4099 if self.overflow_punct.is_some() {
4100 return false;
4101 }
4102 #[cfg(feature = "wml-styling")]
4103 if self.top_line_punct.is_some() {
4104 return false;
4105 }
4106 #[cfg(feature = "wml-styling")]
4107 if self.auto_space_d_e.is_some() {
4108 return false;
4109 }
4110 #[cfg(feature = "wml-styling")]
4111 if self.auto_space_d_n.is_some() {
4112 return false;
4113 }
4114 #[cfg(feature = "wml-styling")]
4115 if self.bidi.is_some() {
4116 return false;
4117 }
4118 #[cfg(feature = "wml-styling")]
4119 if self.adjust_right_ind.is_some() {
4120 return false;
4121 }
4122 #[cfg(feature = "wml-layout")]
4123 if self.snap_to_grid.is_some() {
4124 return false;
4125 }
4126 #[cfg(feature = "wml-styling")]
4127 if self.spacing.is_some() {
4128 return false;
4129 }
4130 #[cfg(feature = "wml-styling")]
4131 if self.indentation.is_some() {
4132 return false;
4133 }
4134 #[cfg(feature = "wml-styling")]
4135 if self.contextual_spacing.is_some() {
4136 return false;
4137 }
4138 #[cfg(feature = "wml-styling")]
4139 if self.mirror_indents.is_some() {
4140 return false;
4141 }
4142 #[cfg(feature = "wml-layout")]
4143 if self.suppress_overlap.is_some() {
4144 return false;
4145 }
4146 #[cfg(feature = "wml-styling")]
4147 if self.justification.is_some() {
4148 return false;
4149 }
4150 #[cfg(feature = "wml-styling")]
4151 if self.text_direction.is_some() {
4152 return false;
4153 }
4154 #[cfg(feature = "wml-styling")]
4155 if self.text_alignment.is_some() {
4156 return false;
4157 }
4158 #[cfg(feature = "wml-styling")]
4159 if self.textbox_tight_wrap.is_some() {
4160 return false;
4161 }
4162 #[cfg(feature = "wml-styling")]
4163 if self.outline_lvl.is_some() {
4164 return false;
4165 }
4166 #[cfg(feature = "wml-styling")]
4167 if self.div_id.is_some() {
4168 return false;
4169 }
4170 #[cfg(feature = "wml-styling")]
4171 if self.cnf_style.is_some() {
4172 return false;
4173 }
4174 #[cfg(feature = "wml-styling")]
4175 if self.r_pr.is_some() {
4176 return false;
4177 }
4178 #[cfg(feature = "wml-layout")]
4179 if self.sect_pr.is_some() {
4180 return false;
4181 }
4182 #[cfg(feature = "wml-track-changes")]
4183 if self.p_pr_change.is_some() {
4184 return false;
4185 }
4186 #[cfg(feature = "extra-children")]
4187 if !self.extra_children.is_empty() {
4188 return false;
4189 }
4190 true
4191 }
4192}
4193
4194impl ToXml for CTPPrBase {
4195 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
4196 #[cfg(feature = "extra-children")]
4197 let mut extra_iter = self.extra_children.iter().peekable();
4198 #[cfg(feature = "extra-children")]
4199 let mut emit_idx: usize = 0;
4200 #[cfg(feature = "extra-children")]
4201 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4202 extra_iter
4203 .next()
4204 .unwrap()
4205 .node
4206 .write_to(writer)
4207 .map_err(SerializeError::from)?;
4208 }
4209 if let Some(ref val) = self.paragraph_style {
4210 val.write_element("w:pStyle", writer)?;
4211 }
4212 #[cfg(feature = "extra-children")]
4213 {
4214 emit_idx += 1;
4215 }
4216 #[cfg(feature = "extra-children")]
4217 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4218 extra_iter
4219 .next()
4220 .unwrap()
4221 .node
4222 .write_to(writer)
4223 .map_err(SerializeError::from)?;
4224 }
4225 #[cfg(feature = "wml-layout")]
4226 if let Some(ref val) = self.keep_next {
4227 val.write_element("w:keepNext", writer)?;
4228 }
4229 #[cfg(feature = "extra-children")]
4230 {
4231 emit_idx += 1;
4232 }
4233 #[cfg(feature = "extra-children")]
4234 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4235 extra_iter
4236 .next()
4237 .unwrap()
4238 .node
4239 .write_to(writer)
4240 .map_err(SerializeError::from)?;
4241 }
4242 #[cfg(feature = "wml-layout")]
4243 if let Some(ref val) = self.keep_lines {
4244 val.write_element("w:keepLines", writer)?;
4245 }
4246 #[cfg(feature = "extra-children")]
4247 {
4248 emit_idx += 1;
4249 }
4250 #[cfg(feature = "extra-children")]
4251 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4252 extra_iter
4253 .next()
4254 .unwrap()
4255 .node
4256 .write_to(writer)
4257 .map_err(SerializeError::from)?;
4258 }
4259 #[cfg(feature = "wml-layout")]
4260 if let Some(ref val) = self.page_break_before {
4261 val.write_element("w:pageBreakBefore", writer)?;
4262 }
4263 #[cfg(feature = "extra-children")]
4264 {
4265 emit_idx += 1;
4266 }
4267 #[cfg(feature = "extra-children")]
4268 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4269 extra_iter
4270 .next()
4271 .unwrap()
4272 .node
4273 .write_to(writer)
4274 .map_err(SerializeError::from)?;
4275 }
4276 #[cfg(feature = "wml-layout")]
4277 if let Some(ref val) = self.frame_pr {
4278 val.write_element("w:framePr", writer)?;
4279 }
4280 #[cfg(feature = "extra-children")]
4281 {
4282 emit_idx += 1;
4283 }
4284 #[cfg(feature = "extra-children")]
4285 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4286 extra_iter
4287 .next()
4288 .unwrap()
4289 .node
4290 .write_to(writer)
4291 .map_err(SerializeError::from)?;
4292 }
4293 #[cfg(feature = "wml-layout")]
4294 if let Some(ref val) = self.widow_control {
4295 val.write_element("w:widowControl", writer)?;
4296 }
4297 #[cfg(feature = "extra-children")]
4298 {
4299 emit_idx += 1;
4300 }
4301 #[cfg(feature = "extra-children")]
4302 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4303 extra_iter
4304 .next()
4305 .unwrap()
4306 .node
4307 .write_to(writer)
4308 .map_err(SerializeError::from)?;
4309 }
4310 #[cfg(feature = "wml-numbering")]
4311 if let Some(ref val) = self.num_pr {
4312 val.write_element("w:numPr", writer)?;
4313 }
4314 #[cfg(feature = "extra-children")]
4315 {
4316 emit_idx += 1;
4317 }
4318 #[cfg(feature = "extra-children")]
4319 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4320 extra_iter
4321 .next()
4322 .unwrap()
4323 .node
4324 .write_to(writer)
4325 .map_err(SerializeError::from)?;
4326 }
4327 #[cfg(feature = "wml-layout")]
4328 if let Some(ref val) = self.suppress_line_numbers {
4329 val.write_element("w:suppressLineNumbers", writer)?;
4330 }
4331 #[cfg(feature = "extra-children")]
4332 {
4333 emit_idx += 1;
4334 }
4335 #[cfg(feature = "extra-children")]
4336 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4337 extra_iter
4338 .next()
4339 .unwrap()
4340 .node
4341 .write_to(writer)
4342 .map_err(SerializeError::from)?;
4343 }
4344 #[cfg(feature = "wml-styling")]
4345 if let Some(ref val) = self.paragraph_border {
4346 val.write_element("w:pBdr", writer)?;
4347 }
4348 #[cfg(feature = "extra-children")]
4349 {
4350 emit_idx += 1;
4351 }
4352 #[cfg(feature = "extra-children")]
4353 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4354 extra_iter
4355 .next()
4356 .unwrap()
4357 .node
4358 .write_to(writer)
4359 .map_err(SerializeError::from)?;
4360 }
4361 #[cfg(feature = "wml-styling")]
4362 if let Some(ref val) = self.shading {
4363 val.write_element("w:shd", writer)?;
4364 }
4365 #[cfg(feature = "extra-children")]
4366 {
4367 emit_idx += 1;
4368 }
4369 #[cfg(feature = "extra-children")]
4370 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4371 extra_iter
4372 .next()
4373 .unwrap()
4374 .node
4375 .write_to(writer)
4376 .map_err(SerializeError::from)?;
4377 }
4378 #[cfg(feature = "wml-styling")]
4379 if let Some(ref val) = self.tabs {
4380 val.write_element("w:tabs", writer)?;
4381 }
4382 #[cfg(feature = "extra-children")]
4383 {
4384 emit_idx += 1;
4385 }
4386 #[cfg(feature = "extra-children")]
4387 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4388 extra_iter
4389 .next()
4390 .unwrap()
4391 .node
4392 .write_to(writer)
4393 .map_err(SerializeError::from)?;
4394 }
4395 #[cfg(feature = "wml-styling")]
4396 if let Some(ref val) = self.suppress_auto_hyphens {
4397 val.write_element("w:suppressAutoHyphens", writer)?;
4398 }
4399 #[cfg(feature = "extra-children")]
4400 {
4401 emit_idx += 1;
4402 }
4403 #[cfg(feature = "extra-children")]
4404 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4405 extra_iter
4406 .next()
4407 .unwrap()
4408 .node
4409 .write_to(writer)
4410 .map_err(SerializeError::from)?;
4411 }
4412 #[cfg(feature = "wml-styling")]
4413 if let Some(ref val) = self.kinsoku {
4414 val.write_element("w:kinsoku", writer)?;
4415 }
4416 #[cfg(feature = "extra-children")]
4417 {
4418 emit_idx += 1;
4419 }
4420 #[cfg(feature = "extra-children")]
4421 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4422 extra_iter
4423 .next()
4424 .unwrap()
4425 .node
4426 .write_to(writer)
4427 .map_err(SerializeError::from)?;
4428 }
4429 #[cfg(feature = "wml-styling")]
4430 if let Some(ref val) = self.word_wrap {
4431 val.write_element("w:wordWrap", writer)?;
4432 }
4433 #[cfg(feature = "extra-children")]
4434 {
4435 emit_idx += 1;
4436 }
4437 #[cfg(feature = "extra-children")]
4438 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4439 extra_iter
4440 .next()
4441 .unwrap()
4442 .node
4443 .write_to(writer)
4444 .map_err(SerializeError::from)?;
4445 }
4446 #[cfg(feature = "wml-styling")]
4447 if let Some(ref val) = self.overflow_punct {
4448 val.write_element("w:overflowPunct", writer)?;
4449 }
4450 #[cfg(feature = "extra-children")]
4451 {
4452 emit_idx += 1;
4453 }
4454 #[cfg(feature = "extra-children")]
4455 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4456 extra_iter
4457 .next()
4458 .unwrap()
4459 .node
4460 .write_to(writer)
4461 .map_err(SerializeError::from)?;
4462 }
4463 #[cfg(feature = "wml-styling")]
4464 if let Some(ref val) = self.top_line_punct {
4465 val.write_element("w:topLinePunct", writer)?;
4466 }
4467 #[cfg(feature = "extra-children")]
4468 {
4469 emit_idx += 1;
4470 }
4471 #[cfg(feature = "extra-children")]
4472 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4473 extra_iter
4474 .next()
4475 .unwrap()
4476 .node
4477 .write_to(writer)
4478 .map_err(SerializeError::from)?;
4479 }
4480 #[cfg(feature = "wml-styling")]
4481 if let Some(ref val) = self.auto_space_d_e {
4482 val.write_element("w:autoSpaceDE", writer)?;
4483 }
4484 #[cfg(feature = "extra-children")]
4485 {
4486 emit_idx += 1;
4487 }
4488 #[cfg(feature = "extra-children")]
4489 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4490 extra_iter
4491 .next()
4492 .unwrap()
4493 .node
4494 .write_to(writer)
4495 .map_err(SerializeError::from)?;
4496 }
4497 #[cfg(feature = "wml-styling")]
4498 if let Some(ref val) = self.auto_space_d_n {
4499 val.write_element("w:autoSpaceDN", writer)?;
4500 }
4501 #[cfg(feature = "extra-children")]
4502 {
4503 emit_idx += 1;
4504 }
4505 #[cfg(feature = "extra-children")]
4506 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4507 extra_iter
4508 .next()
4509 .unwrap()
4510 .node
4511 .write_to(writer)
4512 .map_err(SerializeError::from)?;
4513 }
4514 #[cfg(feature = "wml-styling")]
4515 if let Some(ref val) = self.bidi {
4516 val.write_element("w:bidi", writer)?;
4517 }
4518 #[cfg(feature = "extra-children")]
4519 {
4520 emit_idx += 1;
4521 }
4522 #[cfg(feature = "extra-children")]
4523 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4524 extra_iter
4525 .next()
4526 .unwrap()
4527 .node
4528 .write_to(writer)
4529 .map_err(SerializeError::from)?;
4530 }
4531 #[cfg(feature = "wml-styling")]
4532 if let Some(ref val) = self.adjust_right_ind {
4533 val.write_element("w:adjustRightInd", writer)?;
4534 }
4535 #[cfg(feature = "extra-children")]
4536 {
4537 emit_idx += 1;
4538 }
4539 #[cfg(feature = "extra-children")]
4540 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4541 extra_iter
4542 .next()
4543 .unwrap()
4544 .node
4545 .write_to(writer)
4546 .map_err(SerializeError::from)?;
4547 }
4548 #[cfg(feature = "wml-layout")]
4549 if let Some(ref val) = self.snap_to_grid {
4550 val.write_element("w:snapToGrid", writer)?;
4551 }
4552 #[cfg(feature = "extra-children")]
4553 {
4554 emit_idx += 1;
4555 }
4556 #[cfg(feature = "extra-children")]
4557 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4558 extra_iter
4559 .next()
4560 .unwrap()
4561 .node
4562 .write_to(writer)
4563 .map_err(SerializeError::from)?;
4564 }
4565 #[cfg(feature = "wml-styling")]
4566 if let Some(ref val) = self.spacing {
4567 val.write_element("w:spacing", writer)?;
4568 }
4569 #[cfg(feature = "extra-children")]
4570 {
4571 emit_idx += 1;
4572 }
4573 #[cfg(feature = "extra-children")]
4574 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4575 extra_iter
4576 .next()
4577 .unwrap()
4578 .node
4579 .write_to(writer)
4580 .map_err(SerializeError::from)?;
4581 }
4582 #[cfg(feature = "wml-styling")]
4583 if let Some(ref val) = self.indentation {
4584 val.write_element("w:ind", writer)?;
4585 }
4586 #[cfg(feature = "extra-children")]
4587 {
4588 emit_idx += 1;
4589 }
4590 #[cfg(feature = "extra-children")]
4591 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4592 extra_iter
4593 .next()
4594 .unwrap()
4595 .node
4596 .write_to(writer)
4597 .map_err(SerializeError::from)?;
4598 }
4599 #[cfg(feature = "wml-styling")]
4600 if let Some(ref val) = self.contextual_spacing {
4601 val.write_element("w:contextualSpacing", writer)?;
4602 }
4603 #[cfg(feature = "extra-children")]
4604 {
4605 emit_idx += 1;
4606 }
4607 #[cfg(feature = "extra-children")]
4608 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4609 extra_iter
4610 .next()
4611 .unwrap()
4612 .node
4613 .write_to(writer)
4614 .map_err(SerializeError::from)?;
4615 }
4616 #[cfg(feature = "wml-styling")]
4617 if let Some(ref val) = self.mirror_indents {
4618 val.write_element("w:mirrorIndents", writer)?;
4619 }
4620 #[cfg(feature = "extra-children")]
4621 {
4622 emit_idx += 1;
4623 }
4624 #[cfg(feature = "extra-children")]
4625 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4626 extra_iter
4627 .next()
4628 .unwrap()
4629 .node
4630 .write_to(writer)
4631 .map_err(SerializeError::from)?;
4632 }
4633 #[cfg(feature = "wml-layout")]
4634 if let Some(ref val) = self.suppress_overlap {
4635 val.write_element("w:suppressOverlap", writer)?;
4636 }
4637 #[cfg(feature = "extra-children")]
4638 {
4639 emit_idx += 1;
4640 }
4641 #[cfg(feature = "extra-children")]
4642 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4643 extra_iter
4644 .next()
4645 .unwrap()
4646 .node
4647 .write_to(writer)
4648 .map_err(SerializeError::from)?;
4649 }
4650 #[cfg(feature = "wml-styling")]
4651 if let Some(ref val) = self.justification {
4652 val.write_element("w:jc", writer)?;
4653 }
4654 #[cfg(feature = "extra-children")]
4655 {
4656 emit_idx += 1;
4657 }
4658 #[cfg(feature = "extra-children")]
4659 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4660 extra_iter
4661 .next()
4662 .unwrap()
4663 .node
4664 .write_to(writer)
4665 .map_err(SerializeError::from)?;
4666 }
4667 #[cfg(feature = "wml-styling")]
4668 if let Some(ref val) = self.text_direction {
4669 val.write_element("w:textDirection", writer)?;
4670 }
4671 #[cfg(feature = "extra-children")]
4672 {
4673 emit_idx += 1;
4674 }
4675 #[cfg(feature = "extra-children")]
4676 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4677 extra_iter
4678 .next()
4679 .unwrap()
4680 .node
4681 .write_to(writer)
4682 .map_err(SerializeError::from)?;
4683 }
4684 #[cfg(feature = "wml-styling")]
4685 if let Some(ref val) = self.text_alignment {
4686 val.write_element("w:textAlignment", writer)?;
4687 }
4688 #[cfg(feature = "extra-children")]
4689 {
4690 emit_idx += 1;
4691 }
4692 #[cfg(feature = "extra-children")]
4693 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4694 extra_iter
4695 .next()
4696 .unwrap()
4697 .node
4698 .write_to(writer)
4699 .map_err(SerializeError::from)?;
4700 }
4701 #[cfg(feature = "wml-styling")]
4702 if let Some(ref val) = self.textbox_tight_wrap {
4703 val.write_element("w:textboxTightWrap", writer)?;
4704 }
4705 #[cfg(feature = "extra-children")]
4706 {
4707 emit_idx += 1;
4708 }
4709 #[cfg(feature = "extra-children")]
4710 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4711 extra_iter
4712 .next()
4713 .unwrap()
4714 .node
4715 .write_to(writer)
4716 .map_err(SerializeError::from)?;
4717 }
4718 #[cfg(feature = "wml-styling")]
4719 if let Some(ref val) = self.outline_lvl {
4720 val.write_element("w:outlineLvl", writer)?;
4721 }
4722 #[cfg(feature = "extra-children")]
4723 {
4724 emit_idx += 1;
4725 }
4726 #[cfg(feature = "extra-children")]
4727 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4728 extra_iter
4729 .next()
4730 .unwrap()
4731 .node
4732 .write_to(writer)
4733 .map_err(SerializeError::from)?;
4734 }
4735 #[cfg(feature = "wml-styling")]
4736 if let Some(ref val) = self.div_id {
4737 val.write_element("w:divId", writer)?;
4738 }
4739 #[cfg(feature = "extra-children")]
4740 {
4741 emit_idx += 1;
4742 }
4743 #[cfg(feature = "extra-children")]
4744 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4745 extra_iter
4746 .next()
4747 .unwrap()
4748 .node
4749 .write_to(writer)
4750 .map_err(SerializeError::from)?;
4751 }
4752 #[cfg(feature = "wml-styling")]
4753 if let Some(ref val) = self.cnf_style {
4754 val.write_element("w:cnfStyle", writer)?;
4755 }
4756 #[cfg(feature = "extra-children")]
4757 {
4758 emit_idx += 1;
4759 }
4760 #[cfg(feature = "extra-children")]
4761 for extra in extra_iter {
4762 extra.node.write_to(writer).map_err(SerializeError::from)?;
4763 }
4764 Ok(())
4765 }
4766
4767 fn is_empty_element(&self) -> bool {
4768 if self.paragraph_style.is_some() {
4769 return false;
4770 }
4771 #[cfg(feature = "wml-layout")]
4772 if self.keep_next.is_some() {
4773 return false;
4774 }
4775 #[cfg(feature = "wml-layout")]
4776 if self.keep_lines.is_some() {
4777 return false;
4778 }
4779 #[cfg(feature = "wml-layout")]
4780 if self.page_break_before.is_some() {
4781 return false;
4782 }
4783 #[cfg(feature = "wml-layout")]
4784 if self.frame_pr.is_some() {
4785 return false;
4786 }
4787 #[cfg(feature = "wml-layout")]
4788 if self.widow_control.is_some() {
4789 return false;
4790 }
4791 #[cfg(feature = "wml-numbering")]
4792 if self.num_pr.is_some() {
4793 return false;
4794 }
4795 #[cfg(feature = "wml-layout")]
4796 if self.suppress_line_numbers.is_some() {
4797 return false;
4798 }
4799 #[cfg(feature = "wml-styling")]
4800 if self.paragraph_border.is_some() {
4801 return false;
4802 }
4803 #[cfg(feature = "wml-styling")]
4804 if self.shading.is_some() {
4805 return false;
4806 }
4807 #[cfg(feature = "wml-styling")]
4808 if self.tabs.is_some() {
4809 return false;
4810 }
4811 #[cfg(feature = "wml-styling")]
4812 if self.suppress_auto_hyphens.is_some() {
4813 return false;
4814 }
4815 #[cfg(feature = "wml-styling")]
4816 if self.kinsoku.is_some() {
4817 return false;
4818 }
4819 #[cfg(feature = "wml-styling")]
4820 if self.word_wrap.is_some() {
4821 return false;
4822 }
4823 #[cfg(feature = "wml-styling")]
4824 if self.overflow_punct.is_some() {
4825 return false;
4826 }
4827 #[cfg(feature = "wml-styling")]
4828 if self.top_line_punct.is_some() {
4829 return false;
4830 }
4831 #[cfg(feature = "wml-styling")]
4832 if self.auto_space_d_e.is_some() {
4833 return false;
4834 }
4835 #[cfg(feature = "wml-styling")]
4836 if self.auto_space_d_n.is_some() {
4837 return false;
4838 }
4839 #[cfg(feature = "wml-styling")]
4840 if self.bidi.is_some() {
4841 return false;
4842 }
4843 #[cfg(feature = "wml-styling")]
4844 if self.adjust_right_ind.is_some() {
4845 return false;
4846 }
4847 #[cfg(feature = "wml-layout")]
4848 if self.snap_to_grid.is_some() {
4849 return false;
4850 }
4851 #[cfg(feature = "wml-styling")]
4852 if self.spacing.is_some() {
4853 return false;
4854 }
4855 #[cfg(feature = "wml-styling")]
4856 if self.indentation.is_some() {
4857 return false;
4858 }
4859 #[cfg(feature = "wml-styling")]
4860 if self.contextual_spacing.is_some() {
4861 return false;
4862 }
4863 #[cfg(feature = "wml-styling")]
4864 if self.mirror_indents.is_some() {
4865 return false;
4866 }
4867 #[cfg(feature = "wml-layout")]
4868 if self.suppress_overlap.is_some() {
4869 return false;
4870 }
4871 #[cfg(feature = "wml-styling")]
4872 if self.justification.is_some() {
4873 return false;
4874 }
4875 #[cfg(feature = "wml-styling")]
4876 if self.text_direction.is_some() {
4877 return false;
4878 }
4879 #[cfg(feature = "wml-styling")]
4880 if self.text_alignment.is_some() {
4881 return false;
4882 }
4883 #[cfg(feature = "wml-styling")]
4884 if self.textbox_tight_wrap.is_some() {
4885 return false;
4886 }
4887 #[cfg(feature = "wml-styling")]
4888 if self.outline_lvl.is_some() {
4889 return false;
4890 }
4891 #[cfg(feature = "wml-styling")]
4892 if self.div_id.is_some() {
4893 return false;
4894 }
4895 #[cfg(feature = "wml-styling")]
4896 if self.cnf_style.is_some() {
4897 return false;
4898 }
4899 #[cfg(feature = "extra-children")]
4900 if !self.extra_children.is_empty() {
4901 return false;
4902 }
4903 true
4904 }
4905}
4906
4907impl ToXml for CTPPrGeneral {
4908 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
4909 #[cfg(feature = "extra-children")]
4910 let mut extra_iter = self.extra_children.iter().peekable();
4911 #[cfg(feature = "extra-children")]
4912 let mut emit_idx: usize = 0;
4913 #[cfg(feature = "extra-children")]
4914 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4915 extra_iter
4916 .next()
4917 .unwrap()
4918 .node
4919 .write_to(writer)
4920 .map_err(SerializeError::from)?;
4921 }
4922 if let Some(ref val) = self.paragraph_style {
4923 val.write_element("w:pStyle", writer)?;
4924 }
4925 #[cfg(feature = "extra-children")]
4926 {
4927 emit_idx += 1;
4928 }
4929 #[cfg(feature = "extra-children")]
4930 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4931 extra_iter
4932 .next()
4933 .unwrap()
4934 .node
4935 .write_to(writer)
4936 .map_err(SerializeError::from)?;
4937 }
4938 if let Some(ref val) = self.keep_next {
4939 val.write_element("w:keepNext", writer)?;
4940 }
4941 #[cfg(feature = "extra-children")]
4942 {
4943 emit_idx += 1;
4944 }
4945 #[cfg(feature = "extra-children")]
4946 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4947 extra_iter
4948 .next()
4949 .unwrap()
4950 .node
4951 .write_to(writer)
4952 .map_err(SerializeError::from)?;
4953 }
4954 if let Some(ref val) = self.keep_lines {
4955 val.write_element("w:keepLines", writer)?;
4956 }
4957 #[cfg(feature = "extra-children")]
4958 {
4959 emit_idx += 1;
4960 }
4961 #[cfg(feature = "extra-children")]
4962 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4963 extra_iter
4964 .next()
4965 .unwrap()
4966 .node
4967 .write_to(writer)
4968 .map_err(SerializeError::from)?;
4969 }
4970 if let Some(ref val) = self.page_break_before {
4971 val.write_element("w:pageBreakBefore", writer)?;
4972 }
4973 #[cfg(feature = "extra-children")]
4974 {
4975 emit_idx += 1;
4976 }
4977 #[cfg(feature = "extra-children")]
4978 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4979 extra_iter
4980 .next()
4981 .unwrap()
4982 .node
4983 .write_to(writer)
4984 .map_err(SerializeError::from)?;
4985 }
4986 if let Some(ref val) = self.frame_pr {
4987 val.write_element("w:framePr", writer)?;
4988 }
4989 #[cfg(feature = "extra-children")]
4990 {
4991 emit_idx += 1;
4992 }
4993 #[cfg(feature = "extra-children")]
4994 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4995 extra_iter
4996 .next()
4997 .unwrap()
4998 .node
4999 .write_to(writer)
5000 .map_err(SerializeError::from)?;
5001 }
5002 if let Some(ref val) = self.widow_control {
5003 val.write_element("w:widowControl", writer)?;
5004 }
5005 #[cfg(feature = "extra-children")]
5006 {
5007 emit_idx += 1;
5008 }
5009 #[cfg(feature = "extra-children")]
5010 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5011 extra_iter
5012 .next()
5013 .unwrap()
5014 .node
5015 .write_to(writer)
5016 .map_err(SerializeError::from)?;
5017 }
5018 if let Some(ref val) = self.num_pr {
5019 val.write_element("w:numPr", writer)?;
5020 }
5021 #[cfg(feature = "extra-children")]
5022 {
5023 emit_idx += 1;
5024 }
5025 #[cfg(feature = "extra-children")]
5026 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5027 extra_iter
5028 .next()
5029 .unwrap()
5030 .node
5031 .write_to(writer)
5032 .map_err(SerializeError::from)?;
5033 }
5034 if let Some(ref val) = self.suppress_line_numbers {
5035 val.write_element("w:suppressLineNumbers", writer)?;
5036 }
5037 #[cfg(feature = "extra-children")]
5038 {
5039 emit_idx += 1;
5040 }
5041 #[cfg(feature = "extra-children")]
5042 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5043 extra_iter
5044 .next()
5045 .unwrap()
5046 .node
5047 .write_to(writer)
5048 .map_err(SerializeError::from)?;
5049 }
5050 if let Some(ref val) = self.paragraph_border {
5051 val.write_element("w:pBdr", writer)?;
5052 }
5053 #[cfg(feature = "extra-children")]
5054 {
5055 emit_idx += 1;
5056 }
5057 #[cfg(feature = "extra-children")]
5058 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5059 extra_iter
5060 .next()
5061 .unwrap()
5062 .node
5063 .write_to(writer)
5064 .map_err(SerializeError::from)?;
5065 }
5066 if let Some(ref val) = self.shading {
5067 val.write_element("w:shd", writer)?;
5068 }
5069 #[cfg(feature = "extra-children")]
5070 {
5071 emit_idx += 1;
5072 }
5073 #[cfg(feature = "extra-children")]
5074 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5075 extra_iter
5076 .next()
5077 .unwrap()
5078 .node
5079 .write_to(writer)
5080 .map_err(SerializeError::from)?;
5081 }
5082 if let Some(ref val) = self.tabs {
5083 val.write_element("w:tabs", writer)?;
5084 }
5085 #[cfg(feature = "extra-children")]
5086 {
5087 emit_idx += 1;
5088 }
5089 #[cfg(feature = "extra-children")]
5090 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5091 extra_iter
5092 .next()
5093 .unwrap()
5094 .node
5095 .write_to(writer)
5096 .map_err(SerializeError::from)?;
5097 }
5098 if let Some(ref val) = self.suppress_auto_hyphens {
5099 val.write_element("w:suppressAutoHyphens", writer)?;
5100 }
5101 #[cfg(feature = "extra-children")]
5102 {
5103 emit_idx += 1;
5104 }
5105 #[cfg(feature = "extra-children")]
5106 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5107 extra_iter
5108 .next()
5109 .unwrap()
5110 .node
5111 .write_to(writer)
5112 .map_err(SerializeError::from)?;
5113 }
5114 if let Some(ref val) = self.kinsoku {
5115 val.write_element("w:kinsoku", writer)?;
5116 }
5117 #[cfg(feature = "extra-children")]
5118 {
5119 emit_idx += 1;
5120 }
5121 #[cfg(feature = "extra-children")]
5122 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5123 extra_iter
5124 .next()
5125 .unwrap()
5126 .node
5127 .write_to(writer)
5128 .map_err(SerializeError::from)?;
5129 }
5130 if let Some(ref val) = self.word_wrap {
5131 val.write_element("w:wordWrap", writer)?;
5132 }
5133 #[cfg(feature = "extra-children")]
5134 {
5135 emit_idx += 1;
5136 }
5137 #[cfg(feature = "extra-children")]
5138 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5139 extra_iter
5140 .next()
5141 .unwrap()
5142 .node
5143 .write_to(writer)
5144 .map_err(SerializeError::from)?;
5145 }
5146 if let Some(ref val) = self.overflow_punct {
5147 val.write_element("w:overflowPunct", writer)?;
5148 }
5149 #[cfg(feature = "extra-children")]
5150 {
5151 emit_idx += 1;
5152 }
5153 #[cfg(feature = "extra-children")]
5154 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5155 extra_iter
5156 .next()
5157 .unwrap()
5158 .node
5159 .write_to(writer)
5160 .map_err(SerializeError::from)?;
5161 }
5162 if let Some(ref val) = self.top_line_punct {
5163 val.write_element("w:topLinePunct", writer)?;
5164 }
5165 #[cfg(feature = "extra-children")]
5166 {
5167 emit_idx += 1;
5168 }
5169 #[cfg(feature = "extra-children")]
5170 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5171 extra_iter
5172 .next()
5173 .unwrap()
5174 .node
5175 .write_to(writer)
5176 .map_err(SerializeError::from)?;
5177 }
5178 if let Some(ref val) = self.auto_space_d_e {
5179 val.write_element("w:autoSpaceDE", writer)?;
5180 }
5181 #[cfg(feature = "extra-children")]
5182 {
5183 emit_idx += 1;
5184 }
5185 #[cfg(feature = "extra-children")]
5186 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5187 extra_iter
5188 .next()
5189 .unwrap()
5190 .node
5191 .write_to(writer)
5192 .map_err(SerializeError::from)?;
5193 }
5194 if let Some(ref val) = self.auto_space_d_n {
5195 val.write_element("w:autoSpaceDN", writer)?;
5196 }
5197 #[cfg(feature = "extra-children")]
5198 {
5199 emit_idx += 1;
5200 }
5201 #[cfg(feature = "extra-children")]
5202 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5203 extra_iter
5204 .next()
5205 .unwrap()
5206 .node
5207 .write_to(writer)
5208 .map_err(SerializeError::from)?;
5209 }
5210 if let Some(ref val) = self.bidi {
5211 val.write_element("w:bidi", writer)?;
5212 }
5213 #[cfg(feature = "extra-children")]
5214 {
5215 emit_idx += 1;
5216 }
5217 #[cfg(feature = "extra-children")]
5218 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5219 extra_iter
5220 .next()
5221 .unwrap()
5222 .node
5223 .write_to(writer)
5224 .map_err(SerializeError::from)?;
5225 }
5226 if let Some(ref val) = self.adjust_right_ind {
5227 val.write_element("w:adjustRightInd", writer)?;
5228 }
5229 #[cfg(feature = "extra-children")]
5230 {
5231 emit_idx += 1;
5232 }
5233 #[cfg(feature = "extra-children")]
5234 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5235 extra_iter
5236 .next()
5237 .unwrap()
5238 .node
5239 .write_to(writer)
5240 .map_err(SerializeError::from)?;
5241 }
5242 if let Some(ref val) = self.snap_to_grid {
5243 val.write_element("w:snapToGrid", writer)?;
5244 }
5245 #[cfg(feature = "extra-children")]
5246 {
5247 emit_idx += 1;
5248 }
5249 #[cfg(feature = "extra-children")]
5250 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5251 extra_iter
5252 .next()
5253 .unwrap()
5254 .node
5255 .write_to(writer)
5256 .map_err(SerializeError::from)?;
5257 }
5258 if let Some(ref val) = self.spacing {
5259 val.write_element("w:spacing", writer)?;
5260 }
5261 #[cfg(feature = "extra-children")]
5262 {
5263 emit_idx += 1;
5264 }
5265 #[cfg(feature = "extra-children")]
5266 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5267 extra_iter
5268 .next()
5269 .unwrap()
5270 .node
5271 .write_to(writer)
5272 .map_err(SerializeError::from)?;
5273 }
5274 if let Some(ref val) = self.indentation {
5275 val.write_element("w:ind", writer)?;
5276 }
5277 #[cfg(feature = "extra-children")]
5278 {
5279 emit_idx += 1;
5280 }
5281 #[cfg(feature = "extra-children")]
5282 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5283 extra_iter
5284 .next()
5285 .unwrap()
5286 .node
5287 .write_to(writer)
5288 .map_err(SerializeError::from)?;
5289 }
5290 if let Some(ref val) = self.contextual_spacing {
5291 val.write_element("w:contextualSpacing", writer)?;
5292 }
5293 #[cfg(feature = "extra-children")]
5294 {
5295 emit_idx += 1;
5296 }
5297 #[cfg(feature = "extra-children")]
5298 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5299 extra_iter
5300 .next()
5301 .unwrap()
5302 .node
5303 .write_to(writer)
5304 .map_err(SerializeError::from)?;
5305 }
5306 if let Some(ref val) = self.mirror_indents {
5307 val.write_element("w:mirrorIndents", writer)?;
5308 }
5309 #[cfg(feature = "extra-children")]
5310 {
5311 emit_idx += 1;
5312 }
5313 #[cfg(feature = "extra-children")]
5314 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5315 extra_iter
5316 .next()
5317 .unwrap()
5318 .node
5319 .write_to(writer)
5320 .map_err(SerializeError::from)?;
5321 }
5322 if let Some(ref val) = self.suppress_overlap {
5323 val.write_element("w:suppressOverlap", writer)?;
5324 }
5325 #[cfg(feature = "extra-children")]
5326 {
5327 emit_idx += 1;
5328 }
5329 #[cfg(feature = "extra-children")]
5330 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5331 extra_iter
5332 .next()
5333 .unwrap()
5334 .node
5335 .write_to(writer)
5336 .map_err(SerializeError::from)?;
5337 }
5338 if let Some(ref val) = self.justification {
5339 val.write_element("w:jc", writer)?;
5340 }
5341 #[cfg(feature = "extra-children")]
5342 {
5343 emit_idx += 1;
5344 }
5345 #[cfg(feature = "extra-children")]
5346 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5347 extra_iter
5348 .next()
5349 .unwrap()
5350 .node
5351 .write_to(writer)
5352 .map_err(SerializeError::from)?;
5353 }
5354 if let Some(ref val) = self.text_direction {
5355 val.write_element("w:textDirection", writer)?;
5356 }
5357 #[cfg(feature = "extra-children")]
5358 {
5359 emit_idx += 1;
5360 }
5361 #[cfg(feature = "extra-children")]
5362 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5363 extra_iter
5364 .next()
5365 .unwrap()
5366 .node
5367 .write_to(writer)
5368 .map_err(SerializeError::from)?;
5369 }
5370 if let Some(ref val) = self.text_alignment {
5371 val.write_element("w:textAlignment", writer)?;
5372 }
5373 #[cfg(feature = "extra-children")]
5374 {
5375 emit_idx += 1;
5376 }
5377 #[cfg(feature = "extra-children")]
5378 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5379 extra_iter
5380 .next()
5381 .unwrap()
5382 .node
5383 .write_to(writer)
5384 .map_err(SerializeError::from)?;
5385 }
5386 if let Some(ref val) = self.textbox_tight_wrap {
5387 val.write_element("w:textboxTightWrap", writer)?;
5388 }
5389 #[cfg(feature = "extra-children")]
5390 {
5391 emit_idx += 1;
5392 }
5393 #[cfg(feature = "extra-children")]
5394 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5395 extra_iter
5396 .next()
5397 .unwrap()
5398 .node
5399 .write_to(writer)
5400 .map_err(SerializeError::from)?;
5401 }
5402 if let Some(ref val) = self.outline_lvl {
5403 val.write_element("w:outlineLvl", writer)?;
5404 }
5405 #[cfg(feature = "extra-children")]
5406 {
5407 emit_idx += 1;
5408 }
5409 #[cfg(feature = "extra-children")]
5410 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5411 extra_iter
5412 .next()
5413 .unwrap()
5414 .node
5415 .write_to(writer)
5416 .map_err(SerializeError::from)?;
5417 }
5418 if let Some(ref val) = self.div_id {
5419 val.write_element("w:divId", writer)?;
5420 }
5421 #[cfg(feature = "extra-children")]
5422 {
5423 emit_idx += 1;
5424 }
5425 #[cfg(feature = "extra-children")]
5426 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5427 extra_iter
5428 .next()
5429 .unwrap()
5430 .node
5431 .write_to(writer)
5432 .map_err(SerializeError::from)?;
5433 }
5434 if let Some(ref val) = self.cnf_style {
5435 val.write_element("w:cnfStyle", writer)?;
5436 }
5437 #[cfg(feature = "extra-children")]
5438 {
5439 emit_idx += 1;
5440 }
5441 #[cfg(feature = "extra-children")]
5442 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5443 extra_iter
5444 .next()
5445 .unwrap()
5446 .node
5447 .write_to(writer)
5448 .map_err(SerializeError::from)?;
5449 }
5450 #[cfg(feature = "wml-track-changes")]
5451 if let Some(ref val) = self.p_pr_change {
5452 val.write_element("w:pPrChange", writer)?;
5453 }
5454 #[cfg(feature = "extra-children")]
5455 {
5456 emit_idx += 1;
5457 }
5458 #[cfg(feature = "extra-children")]
5459 for extra in extra_iter {
5460 extra.node.write_to(writer).map_err(SerializeError::from)?;
5461 }
5462 Ok(())
5463 }
5464
5465 fn is_empty_element(&self) -> bool {
5466 if self.paragraph_style.is_some() {
5467 return false;
5468 }
5469 if self.keep_next.is_some() {
5470 return false;
5471 }
5472 if self.keep_lines.is_some() {
5473 return false;
5474 }
5475 if self.page_break_before.is_some() {
5476 return false;
5477 }
5478 if self.frame_pr.is_some() {
5479 return false;
5480 }
5481 if self.widow_control.is_some() {
5482 return false;
5483 }
5484 if self.num_pr.is_some() {
5485 return false;
5486 }
5487 if self.suppress_line_numbers.is_some() {
5488 return false;
5489 }
5490 if self.paragraph_border.is_some() {
5491 return false;
5492 }
5493 if self.shading.is_some() {
5494 return false;
5495 }
5496 if self.tabs.is_some() {
5497 return false;
5498 }
5499 if self.suppress_auto_hyphens.is_some() {
5500 return false;
5501 }
5502 if self.kinsoku.is_some() {
5503 return false;
5504 }
5505 if self.word_wrap.is_some() {
5506 return false;
5507 }
5508 if self.overflow_punct.is_some() {
5509 return false;
5510 }
5511 if self.top_line_punct.is_some() {
5512 return false;
5513 }
5514 if self.auto_space_d_e.is_some() {
5515 return false;
5516 }
5517 if self.auto_space_d_n.is_some() {
5518 return false;
5519 }
5520 if self.bidi.is_some() {
5521 return false;
5522 }
5523 if self.adjust_right_ind.is_some() {
5524 return false;
5525 }
5526 if self.snap_to_grid.is_some() {
5527 return false;
5528 }
5529 if self.spacing.is_some() {
5530 return false;
5531 }
5532 if self.indentation.is_some() {
5533 return false;
5534 }
5535 if self.contextual_spacing.is_some() {
5536 return false;
5537 }
5538 if self.mirror_indents.is_some() {
5539 return false;
5540 }
5541 if self.suppress_overlap.is_some() {
5542 return false;
5543 }
5544 if self.justification.is_some() {
5545 return false;
5546 }
5547 if self.text_direction.is_some() {
5548 return false;
5549 }
5550 if self.text_alignment.is_some() {
5551 return false;
5552 }
5553 if self.textbox_tight_wrap.is_some() {
5554 return false;
5555 }
5556 if self.outline_lvl.is_some() {
5557 return false;
5558 }
5559 if self.div_id.is_some() {
5560 return false;
5561 }
5562 if self.cnf_style.is_some() {
5563 return false;
5564 }
5565 #[cfg(feature = "wml-track-changes")]
5566 if self.p_pr_change.is_some() {
5567 return false;
5568 }
5569 #[cfg(feature = "extra-children")]
5570 if !self.extra_children.is_empty() {
5571 return false;
5572 }
5573 true
5574 }
5575}
5576
5577impl ToXml for CTControl {
5578 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5579 #[allow(unused_mut)]
5580 let mut start = start;
5581 #[cfg(feature = "wml-drawings")]
5582 if let Some(ref val) = self.name {
5583 start.push_attribute(("w:name", val.as_str()));
5584 }
5585 #[cfg(feature = "wml-drawings")]
5586 if let Some(ref val) = self.shapeid {
5587 start.push_attribute(("w:shapeid", val.as_str()));
5588 }
5589 #[cfg(feature = "wml-drawings")]
5590 if let Some(ref val) = self.id {
5591 start.push_attribute(("r:id", val.as_str()));
5592 }
5593 #[cfg(feature = "extra-attrs")]
5594 for (key, value) in &self.extra_attrs {
5595 start.push_attribute((key.as_str(), value.as_str()));
5596 }
5597 start
5598 }
5599
5600 fn is_empty_element(&self) -> bool {
5601 true
5602 }
5603}
5604
5605impl ToXml for CTBackground {
5606 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5607 #[allow(unused_mut)]
5608 let mut start = start;
5609 #[cfg(feature = "wml-styling")]
5610 if let Some(ref val) = self.color {
5611 {
5612 let s = val.to_string();
5613 start.push_attribute(("w:color", s.as_str()));
5614 }
5615 }
5616 #[cfg(feature = "wml-styling")]
5617 if let Some(ref val) = self.theme_color {
5618 {
5619 let s = val.to_string();
5620 start.push_attribute(("w:themeColor", s.as_str()));
5621 }
5622 }
5623 #[cfg(feature = "wml-styling")]
5624 if let Some(ref val) = self.theme_tint {
5625 {
5626 let hex = encode_hex(val);
5627 start.push_attribute(("w:themeTint", hex.as_str()));
5628 }
5629 }
5630 #[cfg(feature = "wml-styling")]
5631 if let Some(ref val) = self.theme_shade {
5632 {
5633 let hex = encode_hex(val);
5634 start.push_attribute(("w:themeShade", hex.as_str()));
5635 }
5636 }
5637 #[cfg(feature = "extra-attrs")]
5638 for (key, value) in &self.extra_attrs {
5639 start.push_attribute((key.as_str(), value.as_str()));
5640 }
5641 start
5642 }
5643
5644 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
5645 #[cfg(feature = "extra-children")]
5646 let mut extra_iter = self.extra_children.iter().peekable();
5647 #[cfg(feature = "extra-children")]
5648 let mut emit_idx: usize = 0;
5649 #[cfg(feature = "extra-children")]
5650 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5651 extra_iter
5652 .next()
5653 .unwrap()
5654 .node
5655 .write_to(writer)
5656 .map_err(SerializeError::from)?;
5657 }
5658 #[cfg(feature = "wml-drawings")]
5659 if let Some(ref val) = self.drawing {
5660 val.write_element("w:drawing", writer)?;
5661 }
5662 #[cfg(feature = "extra-children")]
5663 {
5664 emit_idx += 1;
5665 }
5666 #[cfg(feature = "extra-children")]
5667 for extra in extra_iter {
5668 extra.node.write_to(writer).map_err(SerializeError::from)?;
5669 }
5670 Ok(())
5671 }
5672
5673 fn is_empty_element(&self) -> bool {
5674 #[cfg(feature = "wml-drawings")]
5675 if self.drawing.is_some() {
5676 return false;
5677 }
5678 #[cfg(feature = "extra-children")]
5679 if !self.extra_children.is_empty() {
5680 return false;
5681 }
5682 true
5683 }
5684}
5685
5686impl ToXml for CTRel {
5687 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5688 #[allow(unused_mut)]
5689 let mut start = start;
5690 {
5691 let val = &self.id;
5692 start.push_attribute(("r:id", val.as_str()));
5693 }
5694 #[cfg(feature = "extra-attrs")]
5695 for (key, value) in &self.extra_attrs {
5696 start.push_attribute((key.as_str(), value.as_str()));
5697 }
5698 start
5699 }
5700
5701 fn is_empty_element(&self) -> bool {
5702 true
5703 }
5704}
5705
5706impl ToXml for CTObject {
5707 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5708 #[allow(unused_mut)]
5709 let mut start = start;
5710 #[cfg(feature = "wml-drawings")]
5711 if let Some(ref val) = self.dxa_orig {
5712 {
5713 let s = val.to_string();
5714 start.push_attribute(("w:dxaOrig", s.as_str()));
5715 }
5716 }
5717 #[cfg(feature = "wml-drawings")]
5718 if let Some(ref val) = self.dya_orig {
5719 {
5720 let s = val.to_string();
5721 start.push_attribute(("w:dyaOrig", s.as_str()));
5722 }
5723 }
5724 #[cfg(feature = "extra-attrs")]
5725 for (key, value) in &self.extra_attrs {
5726 start.push_attribute((key.as_str(), value.as_str()));
5727 }
5728 start
5729 }
5730
5731 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
5732 #[cfg(feature = "extra-children")]
5733 let mut extra_iter = self.extra_children.iter().peekable();
5734 #[cfg(feature = "extra-children")]
5735 let mut emit_idx: usize = 0;
5736 #[cfg(feature = "extra-children")]
5737 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5738 extra_iter
5739 .next()
5740 .unwrap()
5741 .node
5742 .write_to(writer)
5743 .map_err(SerializeError::from)?;
5744 }
5745 #[cfg(feature = "wml-drawings")]
5746 if let Some(ref val) = self.drawing {
5747 val.write_element("w:drawing", writer)?;
5748 }
5749 #[cfg(feature = "extra-children")]
5750 {
5751 emit_idx += 1;
5752 }
5753 #[cfg(feature = "extra-children")]
5754 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5755 extra_iter
5756 .next()
5757 .unwrap()
5758 .node
5759 .write_to(writer)
5760 .map_err(SerializeError::from)?;
5761 }
5762 #[cfg(feature = "wml-drawings")]
5763 if let Some(ref val) = self.control {
5764 val.write_element("w:control", writer)?;
5765 }
5766 #[cfg(feature = "extra-children")]
5767 {
5768 emit_idx += 1;
5769 }
5770 #[cfg(feature = "extra-children")]
5771 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5772 extra_iter
5773 .next()
5774 .unwrap()
5775 .node
5776 .write_to(writer)
5777 .map_err(SerializeError::from)?;
5778 }
5779 #[cfg(feature = "wml-drawings")]
5780 if let Some(ref val) = self.object_link {
5781 val.write_element("w:objectLink", writer)?;
5782 }
5783 #[cfg(feature = "extra-children")]
5784 {
5785 emit_idx += 1;
5786 }
5787 #[cfg(feature = "extra-children")]
5788 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5789 extra_iter
5790 .next()
5791 .unwrap()
5792 .node
5793 .write_to(writer)
5794 .map_err(SerializeError::from)?;
5795 }
5796 #[cfg(feature = "wml-drawings")]
5797 if let Some(ref val) = self.object_embed {
5798 val.write_element("w:objectEmbed", writer)?;
5799 }
5800 #[cfg(feature = "extra-children")]
5801 {
5802 emit_idx += 1;
5803 }
5804 #[cfg(feature = "extra-children")]
5805 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5806 extra_iter
5807 .next()
5808 .unwrap()
5809 .node
5810 .write_to(writer)
5811 .map_err(SerializeError::from)?;
5812 }
5813 #[cfg(feature = "wml-drawings")]
5814 if let Some(ref val) = self.movie {
5815 val.write_element("w:movie", writer)?;
5816 }
5817 #[cfg(feature = "extra-children")]
5818 {
5819 emit_idx += 1;
5820 }
5821 #[cfg(feature = "extra-children")]
5822 for extra in extra_iter {
5823 extra.node.write_to(writer).map_err(SerializeError::from)?;
5824 }
5825 Ok(())
5826 }
5827
5828 fn is_empty_element(&self) -> bool {
5829 #[cfg(feature = "wml-drawings")]
5830 if self.drawing.is_some() {
5831 return false;
5832 }
5833 #[cfg(feature = "wml-drawings")]
5834 if self.control.is_some() {
5835 return false;
5836 }
5837 #[cfg(feature = "wml-drawings")]
5838 if self.object_link.is_some() {
5839 return false;
5840 }
5841 #[cfg(feature = "wml-drawings")]
5842 if self.object_embed.is_some() {
5843 return false;
5844 }
5845 #[cfg(feature = "wml-drawings")]
5846 if self.movie.is_some() {
5847 return false;
5848 }
5849 #[cfg(feature = "extra-children")]
5850 if !self.extra_children.is_empty() {
5851 return false;
5852 }
5853 true
5854 }
5855}
5856
5857impl ToXml for CTPicture {
5858 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
5859 #[cfg(feature = "extra-children")]
5860 let mut extra_iter = self.extra_children.iter().peekable();
5861 #[cfg(feature = "extra-children")]
5862 let mut emit_idx: usize = 0;
5863 #[cfg(feature = "extra-children")]
5864 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5865 extra_iter
5866 .next()
5867 .unwrap()
5868 .node
5869 .write_to(writer)
5870 .map_err(SerializeError::from)?;
5871 }
5872 #[cfg(feature = "wml-drawings")]
5873 if let Some(ref val) = self.movie {
5874 val.write_element("w:movie", writer)?;
5875 }
5876 #[cfg(feature = "extra-children")]
5877 {
5878 emit_idx += 1;
5879 }
5880 #[cfg(feature = "extra-children")]
5881 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5882 extra_iter
5883 .next()
5884 .unwrap()
5885 .node
5886 .write_to(writer)
5887 .map_err(SerializeError::from)?;
5888 }
5889 #[cfg(feature = "wml-drawings")]
5890 if let Some(ref val) = self.control {
5891 val.write_element("w:control", writer)?;
5892 }
5893 #[cfg(feature = "extra-children")]
5894 {
5895 emit_idx += 1;
5896 }
5897 #[cfg(feature = "extra-children")]
5898 for extra in extra_iter {
5899 extra.node.write_to(writer).map_err(SerializeError::from)?;
5900 }
5901 Ok(())
5902 }
5903
5904 fn is_empty_element(&self) -> bool {
5905 #[cfg(feature = "wml-drawings")]
5906 if self.movie.is_some() {
5907 return false;
5908 }
5909 #[cfg(feature = "wml-drawings")]
5910 if self.control.is_some() {
5911 return false;
5912 }
5913 #[cfg(feature = "extra-children")]
5914 if !self.extra_children.is_empty() {
5915 return false;
5916 }
5917 true
5918 }
5919}
5920
5921impl ToXml for CTObjectEmbed {
5922 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5923 #[allow(unused_mut)]
5924 let mut start = start;
5925 #[cfg(feature = "wml-drawings")]
5926 if let Some(ref val) = self.draw_aspect {
5927 {
5928 let s = val.to_string();
5929 start.push_attribute(("w:drawAspect", s.as_str()));
5930 }
5931 }
5932 #[cfg(feature = "wml-drawings")]
5933 {
5934 let val = &self.id;
5935 start.push_attribute(("r:id", val.as_str()));
5936 }
5937 #[cfg(feature = "wml-drawings")]
5938 if let Some(ref val) = self.prog_id {
5939 start.push_attribute(("w:progId", val.as_str()));
5940 }
5941 #[cfg(feature = "wml-drawings")]
5942 if let Some(ref val) = self.shape_id {
5943 start.push_attribute(("w:shapeId", val.as_str()));
5944 }
5945 #[cfg(feature = "wml-drawings")]
5946 if let Some(ref val) = self.field_codes {
5947 start.push_attribute(("w:fieldCodes", val.as_str()));
5948 }
5949 #[cfg(feature = "extra-attrs")]
5950 for (key, value) in &self.extra_attrs {
5951 start.push_attribute((key.as_str(), value.as_str()));
5952 }
5953 start
5954 }
5955
5956 fn is_empty_element(&self) -> bool {
5957 true
5958 }
5959}
5960
5961impl ToXml for CTObjectLink {
5962 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5963 #[allow(unused_mut)]
5964 let mut start = start;
5965 #[cfg(feature = "wml-drawings")]
5966 if let Some(ref val) = self.draw_aspect {
5967 {
5968 let s = val.to_string();
5969 start.push_attribute(("w:drawAspect", s.as_str()));
5970 }
5971 }
5972 #[cfg(feature = "wml-drawings")]
5973 {
5974 let val = &self.id;
5975 start.push_attribute(("r:id", val.as_str()));
5976 }
5977 #[cfg(feature = "wml-drawings")]
5978 if let Some(ref val) = self.prog_id {
5979 start.push_attribute(("w:progId", val.as_str()));
5980 }
5981 #[cfg(feature = "wml-drawings")]
5982 if let Some(ref val) = self.shape_id {
5983 start.push_attribute(("w:shapeId", val.as_str()));
5984 }
5985 #[cfg(feature = "wml-drawings")]
5986 if let Some(ref val) = self.field_codes {
5987 start.push_attribute(("w:fieldCodes", val.as_str()));
5988 }
5989 #[cfg(feature = "wml-drawings")]
5990 {
5991 let val = &self.update_mode;
5992 {
5993 let s = val.to_string();
5994 start.push_attribute(("w:updateMode", s.as_str()));
5995 }
5996 }
5997 #[cfg(feature = "wml-drawings")]
5998 if let Some(ref val) = self.locked_field {
5999 {
6000 let s = val.to_string();
6001 start.push_attribute(("w:lockedField", s.as_str()));
6002 }
6003 }
6004 #[cfg(feature = "extra-attrs")]
6005 for (key, value) in &self.extra_attrs {
6006 start.push_attribute((key.as_str(), value.as_str()));
6007 }
6008 start
6009 }
6010
6011 fn is_empty_element(&self) -> bool {
6012 true
6013 }
6014}
6015
6016impl ToXml for CTDrawing {
6017 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
6018 #[cfg(feature = "extra-children")]
6019 for child in &self.extra_children {
6020 child.node.write_to(writer).map_err(SerializeError::from)?;
6021 }
6022 Ok(())
6023 }
6024
6025 fn is_empty_element(&self) -> bool {
6026 #[cfg(feature = "extra-children")]
6027 if !self.extra_children.is_empty() {
6028 return false;
6029 }
6030 true
6031 }
6032}
6033
6034impl ToXml for CTSimpleField {
6035 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6036 #[allow(unused_mut)]
6037 let mut start = start;
6038 {
6039 let val = &self.instr;
6040 start.push_attribute(("w:instr", val.as_str()));
6041 }
6042 #[cfg(feature = "wml-fields")]
6043 if let Some(ref val) = self.fld_lock {
6044 {
6045 let s = val.to_string();
6046 start.push_attribute(("w:fldLock", s.as_str()));
6047 }
6048 }
6049 #[cfg(feature = "wml-fields")]
6050 if let Some(ref val) = self.dirty {
6051 {
6052 let s = val.to_string();
6053 start.push_attribute(("w:dirty", s.as_str()));
6054 }
6055 }
6056 #[cfg(feature = "extra-attrs")]
6057 for (key, value) in &self.extra_attrs {
6058 start.push_attribute((key.as_str(), value.as_str()));
6059 }
6060 start
6061 }
6062
6063 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
6064 #[cfg(feature = "extra-children")]
6065 let mut extra_iter = self.extra_children.iter().peekable();
6066 #[cfg(feature = "extra-children")]
6067 let mut emit_idx: usize = 0;
6068 #[cfg(feature = "extra-children")]
6069 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6070 extra_iter
6071 .next()
6072 .unwrap()
6073 .node
6074 .write_to(writer)
6075 .map_err(SerializeError::from)?;
6076 }
6077 #[cfg(feature = "wml-fields")]
6078 if let Some(ref val) = self.fld_data {
6079 val.write_element("w:fldData", writer)?;
6080 }
6081 #[cfg(feature = "extra-children")]
6082 {
6083 emit_idx += 1;
6084 }
6085 for item in &self.paragraph_content {
6086 #[cfg(feature = "extra-children")]
6087 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6088 extra_iter
6089 .next()
6090 .unwrap()
6091 .node
6092 .write_to(writer)
6093 .map_err(SerializeError::from)?;
6094 }
6095 item.write_element("", writer)?;
6096 #[cfg(feature = "extra-children")]
6097 {
6098 emit_idx += 1;
6099 }
6100 }
6101 #[cfg(feature = "extra-children")]
6102 for extra in extra_iter {
6103 extra.node.write_to(writer).map_err(SerializeError::from)?;
6104 }
6105 Ok(())
6106 }
6107
6108 fn is_empty_element(&self) -> bool {
6109 #[cfg(feature = "wml-fields")]
6110 if self.fld_data.is_some() {
6111 return false;
6112 }
6113 if !self.paragraph_content.is_empty() {
6114 return false;
6115 }
6116 #[cfg(feature = "extra-children")]
6117 if !self.extra_children.is_empty() {
6118 return false;
6119 }
6120 true
6121 }
6122}
6123
6124impl ToXml for CTFFTextType {
6125 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6126 #[allow(unused_mut)]
6127 let mut start = start;
6128 {
6129 let val = &self.value;
6130 {
6131 let s = val.to_string();
6132 start.push_attribute(("w:val", s.as_str()));
6133 }
6134 }
6135 #[cfg(feature = "extra-attrs")]
6136 for (key, value) in &self.extra_attrs {
6137 start.push_attribute((key.as_str(), value.as_str()));
6138 }
6139 start
6140 }
6141
6142 fn is_empty_element(&self) -> bool {
6143 true
6144 }
6145}
6146
6147impl ToXml for FFNameElement {
6148 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6149 #[allow(unused_mut)]
6150 let mut start = start;
6151 if let Some(ref val) = self.value {
6152 start.push_attribute(("w:val", val.as_str()));
6153 }
6154 #[cfg(feature = "extra-attrs")]
6155 for (key, value) in &self.extra_attrs {
6156 start.push_attribute((key.as_str(), value.as_str()));
6157 }
6158 start
6159 }
6160
6161 fn is_empty_element(&self) -> bool {
6162 true
6163 }
6164}
6165
6166impl ToXml for CTFldChar {
6167 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6168 #[allow(unused_mut)]
6169 let mut start = start;
6170 {
6171 let val = &self.fld_char_type;
6172 {
6173 let s = val.to_string();
6174 start.push_attribute(("w:fldCharType", s.as_str()));
6175 }
6176 }
6177 #[cfg(feature = "wml-fields")]
6178 if let Some(ref val) = self.fld_lock {
6179 {
6180 let s = val.to_string();
6181 start.push_attribute(("w:fldLock", s.as_str()));
6182 }
6183 }
6184 #[cfg(feature = "wml-fields")]
6185 if let Some(ref val) = self.dirty {
6186 {
6187 let s = val.to_string();
6188 start.push_attribute(("w:dirty", s.as_str()));
6189 }
6190 }
6191 #[cfg(feature = "extra-attrs")]
6192 for (key, value) in &self.extra_attrs {
6193 start.push_attribute((key.as_str(), value.as_str()));
6194 }
6195 start
6196 }
6197
6198 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
6199 #[cfg(feature = "extra-children")]
6200 let mut extra_iter = self.extra_children.iter().peekable();
6201 #[cfg(feature = "extra-children")]
6202 let mut emit_idx: usize = 0;
6203 #[cfg(feature = "extra-children")]
6204 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6205 extra_iter
6206 .next()
6207 .unwrap()
6208 .node
6209 .write_to(writer)
6210 .map_err(SerializeError::from)?;
6211 }
6212 #[cfg(feature = "wml-fields")]
6213 if let Some(ref val) = self.fld_data {
6214 val.write_element("w:fldData", writer)?;
6215 }
6216 #[cfg(feature = "extra-children")]
6217 {
6218 emit_idx += 1;
6219 }
6220 #[cfg(feature = "extra-children")]
6221 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6222 extra_iter
6223 .next()
6224 .unwrap()
6225 .node
6226 .write_to(writer)
6227 .map_err(SerializeError::from)?;
6228 }
6229 #[cfg(feature = "wml-fields")]
6230 if let Some(ref val) = self.ff_data {
6231 val.write_element("w:ffData", writer)?;
6232 }
6233 #[cfg(feature = "extra-children")]
6234 {
6235 emit_idx += 1;
6236 }
6237 #[cfg(feature = "extra-children")]
6238 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6239 extra_iter
6240 .next()
6241 .unwrap()
6242 .node
6243 .write_to(writer)
6244 .map_err(SerializeError::from)?;
6245 }
6246 #[cfg(feature = "wml-track-changes")]
6247 if let Some(ref val) = self.numbering_change {
6248 val.write_element("w:numberingChange", writer)?;
6249 }
6250 #[cfg(feature = "extra-children")]
6251 {
6252 emit_idx += 1;
6253 }
6254 #[cfg(feature = "extra-children")]
6255 for extra in extra_iter {
6256 extra.node.write_to(writer).map_err(SerializeError::from)?;
6257 }
6258 Ok(())
6259 }
6260
6261 fn is_empty_element(&self) -> bool {
6262 #[cfg(feature = "wml-fields")]
6263 if self.fld_data.is_some() {
6264 return false;
6265 }
6266 #[cfg(feature = "wml-fields")]
6267 if self.ff_data.is_some() {
6268 return false;
6269 }
6270 #[cfg(feature = "wml-track-changes")]
6271 if self.numbering_change.is_some() {
6272 return false;
6273 }
6274 #[cfg(feature = "extra-children")]
6275 if !self.extra_children.is_empty() {
6276 return false;
6277 }
6278 true
6279 }
6280}
6281
6282impl ToXml for Hyperlink {
6283 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6284 #[allow(unused_mut)]
6285 let mut start = start;
6286 #[cfg(feature = "wml-hyperlinks")]
6287 if let Some(ref val) = self.tgt_frame {
6288 start.push_attribute(("w:tgtFrame", val.as_str()));
6289 }
6290 #[cfg(feature = "wml-hyperlinks")]
6291 if let Some(ref val) = self.tooltip {
6292 start.push_attribute(("w:tooltip", val.as_str()));
6293 }
6294 #[cfg(feature = "wml-hyperlinks")]
6295 if let Some(ref val) = self.doc_location {
6296 start.push_attribute(("w:docLocation", val.as_str()));
6297 }
6298 #[cfg(feature = "wml-hyperlinks")]
6299 if let Some(ref val) = self.history {
6300 {
6301 let s = val.to_string();
6302 start.push_attribute(("w:history", s.as_str()));
6303 }
6304 }
6305 #[cfg(feature = "wml-hyperlinks")]
6306 if let Some(ref val) = self.anchor {
6307 start.push_attribute(("w:anchor", val.as_str()));
6308 }
6309 #[cfg(feature = "wml-hyperlinks")]
6310 if let Some(ref val) = self.id {
6311 start.push_attribute(("r:id", val.as_str()));
6312 }
6313 #[cfg(feature = "extra-attrs")]
6314 for (key, value) in &self.extra_attrs {
6315 start.push_attribute((key.as_str(), value.as_str()));
6316 }
6317 start
6318 }
6319
6320 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
6321 #[cfg(feature = "extra-children")]
6322 let mut extra_iter = self.extra_children.iter().peekable();
6323 #[cfg(feature = "extra-children")]
6324 let mut emit_idx: usize = 0;
6325 for item in &self.paragraph_content {
6326 #[cfg(feature = "extra-children")]
6327 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6328 extra_iter
6329 .next()
6330 .unwrap()
6331 .node
6332 .write_to(writer)
6333 .map_err(SerializeError::from)?;
6334 }
6335 item.write_element("", writer)?;
6336 #[cfg(feature = "extra-children")]
6337 {
6338 emit_idx += 1;
6339 }
6340 }
6341 #[cfg(feature = "extra-children")]
6342 for extra in extra_iter {
6343 extra.node.write_to(writer).map_err(SerializeError::from)?;
6344 }
6345 Ok(())
6346 }
6347
6348 fn is_empty_element(&self) -> bool {
6349 if !self.paragraph_content.is_empty() {
6350 return false;
6351 }
6352 #[cfg(feature = "extra-children")]
6353 if !self.extra_children.is_empty() {
6354 return false;
6355 }
6356 true
6357 }
6358}
6359
6360impl ToXml for CTFFData {
6361 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
6362 #[cfg(feature = "extra-children")]
6363 let mut extra_iter = self.extra_children.iter().peekable();
6364 #[cfg(feature = "extra-children")]
6365 let mut emit_idx: usize = 0;
6366 #[cfg(feature = "wml-fields")]
6367 for item in &self.name {
6368 #[cfg(feature = "extra-children")]
6369 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6370 extra_iter
6371 .next()
6372 .unwrap()
6373 .node
6374 .write_to(writer)
6375 .map_err(SerializeError::from)?;
6376 }
6377 item.write_element("w:name", writer)?;
6378 #[cfg(feature = "extra-children")]
6379 {
6380 emit_idx += 1;
6381 }
6382 }
6383 #[cfg(feature = "extra-children")]
6384 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6385 extra_iter
6386 .next()
6387 .unwrap()
6388 .node
6389 .write_to(writer)
6390 .map_err(SerializeError::from)?;
6391 }
6392 #[cfg(feature = "wml-fields")]
6393 if let Some(ref val) = self.label {
6394 val.write_element("w:label", writer)?;
6395 }
6396 #[cfg(feature = "extra-children")]
6397 {
6398 emit_idx += 1;
6399 }
6400 #[cfg(feature = "extra-children")]
6401 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6402 extra_iter
6403 .next()
6404 .unwrap()
6405 .node
6406 .write_to(writer)
6407 .map_err(SerializeError::from)?;
6408 }
6409 #[cfg(feature = "wml-fields")]
6410 if let Some(ref val) = self.tab_index {
6411 val.write_element("w:tabIndex", writer)?;
6412 }
6413 #[cfg(feature = "extra-children")]
6414 {
6415 emit_idx += 1;
6416 }
6417 #[cfg(feature = "wml-fields")]
6418 for item in &self.enabled {
6419 #[cfg(feature = "extra-children")]
6420 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6421 extra_iter
6422 .next()
6423 .unwrap()
6424 .node
6425 .write_to(writer)
6426 .map_err(SerializeError::from)?;
6427 }
6428 item.write_element("w:enabled", writer)?;
6429 #[cfg(feature = "extra-children")]
6430 {
6431 emit_idx += 1;
6432 }
6433 }
6434 #[cfg(feature = "wml-fields")]
6435 for item in &self.calc_on_exit {
6436 #[cfg(feature = "extra-children")]
6437 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6438 extra_iter
6439 .next()
6440 .unwrap()
6441 .node
6442 .write_to(writer)
6443 .map_err(SerializeError::from)?;
6444 }
6445 item.write_element("w:calcOnExit", writer)?;
6446 #[cfg(feature = "extra-children")]
6447 {
6448 emit_idx += 1;
6449 }
6450 }
6451 #[cfg(feature = "extra-children")]
6452 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6453 extra_iter
6454 .next()
6455 .unwrap()
6456 .node
6457 .write_to(writer)
6458 .map_err(SerializeError::from)?;
6459 }
6460 #[cfg(feature = "wml-fields")]
6461 if let Some(ref val) = self.entry_macro {
6462 val.write_element("w:entryMacro", writer)?;
6463 }
6464 #[cfg(feature = "extra-children")]
6465 {
6466 emit_idx += 1;
6467 }
6468 #[cfg(feature = "extra-children")]
6469 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6470 extra_iter
6471 .next()
6472 .unwrap()
6473 .node
6474 .write_to(writer)
6475 .map_err(SerializeError::from)?;
6476 }
6477 #[cfg(feature = "wml-fields")]
6478 if let Some(ref val) = self.exit_macro {
6479 val.write_element("w:exitMacro", writer)?;
6480 }
6481 #[cfg(feature = "extra-children")]
6482 {
6483 emit_idx += 1;
6484 }
6485 #[cfg(feature = "extra-children")]
6486 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6487 extra_iter
6488 .next()
6489 .unwrap()
6490 .node
6491 .write_to(writer)
6492 .map_err(SerializeError::from)?;
6493 }
6494 #[cfg(feature = "wml-fields")]
6495 if let Some(ref val) = self.help_text {
6496 val.write_element("w:helpText", writer)?;
6497 }
6498 #[cfg(feature = "extra-children")]
6499 {
6500 emit_idx += 1;
6501 }
6502 #[cfg(feature = "extra-children")]
6503 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6504 extra_iter
6505 .next()
6506 .unwrap()
6507 .node
6508 .write_to(writer)
6509 .map_err(SerializeError::from)?;
6510 }
6511 #[cfg(feature = "wml-fields")]
6512 if let Some(ref val) = self.status_text {
6513 val.write_element("w:statusText", writer)?;
6514 }
6515 #[cfg(feature = "extra-children")]
6516 {
6517 emit_idx += 1;
6518 }
6519 #[cfg(feature = "extra-children")]
6520 for extra in extra_iter {
6521 extra.node.write_to(writer).map_err(SerializeError::from)?;
6522 }
6523 Ok(())
6524 }
6525
6526 fn is_empty_element(&self) -> bool {
6527 #[cfg(feature = "wml-fields")]
6528 if !self.name.is_empty() {
6529 return false;
6530 }
6531 #[cfg(feature = "wml-fields")]
6532 if self.label.is_some() {
6533 return false;
6534 }
6535 #[cfg(feature = "wml-fields")]
6536 if self.tab_index.is_some() {
6537 return false;
6538 }
6539 #[cfg(feature = "wml-fields")]
6540 if !self.enabled.is_empty() {
6541 return false;
6542 }
6543 #[cfg(feature = "wml-fields")]
6544 if !self.calc_on_exit.is_empty() {
6545 return false;
6546 }
6547 #[cfg(feature = "wml-fields")]
6548 if self.entry_macro.is_some() {
6549 return false;
6550 }
6551 #[cfg(feature = "wml-fields")]
6552 if self.exit_macro.is_some() {
6553 return false;
6554 }
6555 #[cfg(feature = "wml-fields")]
6556 if self.help_text.is_some() {
6557 return false;
6558 }
6559 #[cfg(feature = "wml-fields")]
6560 if self.status_text.is_some() {
6561 return false;
6562 }
6563 #[cfg(feature = "extra-children")]
6564 if !self.extra_children.is_empty() {
6565 return false;
6566 }
6567 true
6568 }
6569}
6570
6571impl ToXml for CTFFHelpText {
6572 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6573 #[allow(unused_mut)]
6574 let mut start = start;
6575 if let Some(ref val) = self.r#type {
6576 {
6577 let s = val.to_string();
6578 start.push_attribute(("w:type", s.as_str()));
6579 }
6580 }
6581 if let Some(ref val) = self.value {
6582 start.push_attribute(("w:val", val.as_str()));
6583 }
6584 #[cfg(feature = "extra-attrs")]
6585 for (key, value) in &self.extra_attrs {
6586 start.push_attribute((key.as_str(), value.as_str()));
6587 }
6588 start
6589 }
6590
6591 fn is_empty_element(&self) -> bool {
6592 true
6593 }
6594}
6595
6596impl ToXml for CTFFStatusText {
6597 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6598 #[allow(unused_mut)]
6599 let mut start = start;
6600 if let Some(ref val) = self.r#type {
6601 {
6602 let s = val.to_string();
6603 start.push_attribute(("w:type", s.as_str()));
6604 }
6605 }
6606 if let Some(ref val) = self.value {
6607 start.push_attribute(("w:val", val.as_str()));
6608 }
6609 #[cfg(feature = "extra-attrs")]
6610 for (key, value) in &self.extra_attrs {
6611 start.push_attribute((key.as_str(), value.as_str()));
6612 }
6613 start
6614 }
6615
6616 fn is_empty_element(&self) -> bool {
6617 true
6618 }
6619}
6620
6621impl ToXml for CTFFCheckBox {
6622 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
6623 #[cfg(feature = "extra-children")]
6624 let mut extra_iter = self.extra_children.iter().peekable();
6625 #[cfg(feature = "extra-children")]
6626 let mut emit_idx: usize = 0;
6627 #[cfg(feature = "extra-children")]
6628 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6629 extra_iter
6630 .next()
6631 .unwrap()
6632 .node
6633 .write_to(writer)
6634 .map_err(SerializeError::from)?;
6635 }
6636 #[cfg(feature = "wml-fields")]
6637 if let Some(ref val) = self.size {
6638 val.write_element("w:size", writer)?;
6639 }
6640 #[cfg(feature = "extra-children")]
6641 {
6642 emit_idx += 1;
6643 }
6644 #[cfg(feature = "extra-children")]
6645 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6646 extra_iter
6647 .next()
6648 .unwrap()
6649 .node
6650 .write_to(writer)
6651 .map_err(SerializeError::from)?;
6652 }
6653 #[cfg(feature = "wml-fields")]
6654 if let Some(ref val) = self.size_auto {
6655 val.write_element("w:sizeAuto", writer)?;
6656 }
6657 #[cfg(feature = "extra-children")]
6658 {
6659 emit_idx += 1;
6660 }
6661 #[cfg(feature = "extra-children")]
6662 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6663 extra_iter
6664 .next()
6665 .unwrap()
6666 .node
6667 .write_to(writer)
6668 .map_err(SerializeError::from)?;
6669 }
6670 #[cfg(feature = "wml-fields")]
6671 if let Some(ref val) = self.default {
6672 val.write_element("w:default", writer)?;
6673 }
6674 #[cfg(feature = "extra-children")]
6675 {
6676 emit_idx += 1;
6677 }
6678 #[cfg(feature = "extra-children")]
6679 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6680 extra_iter
6681 .next()
6682 .unwrap()
6683 .node
6684 .write_to(writer)
6685 .map_err(SerializeError::from)?;
6686 }
6687 #[cfg(feature = "wml-fields")]
6688 if let Some(ref val) = self.checked {
6689 val.write_element("w:checked", writer)?;
6690 }
6691 #[cfg(feature = "extra-children")]
6692 {
6693 emit_idx += 1;
6694 }
6695 #[cfg(feature = "extra-children")]
6696 for extra in extra_iter {
6697 extra.node.write_to(writer).map_err(SerializeError::from)?;
6698 }
6699 Ok(())
6700 }
6701
6702 fn is_empty_element(&self) -> bool {
6703 #[cfg(feature = "wml-fields")]
6704 if self.size.is_some() {
6705 return false;
6706 }
6707 #[cfg(feature = "wml-fields")]
6708 if self.size_auto.is_some() {
6709 return false;
6710 }
6711 #[cfg(feature = "wml-fields")]
6712 if self.default.is_some() {
6713 return false;
6714 }
6715 #[cfg(feature = "wml-fields")]
6716 if self.checked.is_some() {
6717 return false;
6718 }
6719 #[cfg(feature = "extra-children")]
6720 if !self.extra_children.is_empty() {
6721 return false;
6722 }
6723 true
6724 }
6725}
6726
6727impl ToXml for CTFFDDList {
6728 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
6729 #[cfg(feature = "extra-children")]
6730 let mut extra_iter = self.extra_children.iter().peekable();
6731 #[cfg(feature = "extra-children")]
6732 let mut emit_idx: usize = 0;
6733 #[cfg(feature = "extra-children")]
6734 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6735 extra_iter
6736 .next()
6737 .unwrap()
6738 .node
6739 .write_to(writer)
6740 .map_err(SerializeError::from)?;
6741 }
6742 #[cfg(feature = "wml-fields")]
6743 if let Some(ref val) = self.result {
6744 val.write_element("w:result", writer)?;
6745 }
6746 #[cfg(feature = "extra-children")]
6747 {
6748 emit_idx += 1;
6749 }
6750 #[cfg(feature = "extra-children")]
6751 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6752 extra_iter
6753 .next()
6754 .unwrap()
6755 .node
6756 .write_to(writer)
6757 .map_err(SerializeError::from)?;
6758 }
6759 #[cfg(feature = "wml-fields")]
6760 if let Some(ref val) = self.default {
6761 val.write_element("w:default", writer)?;
6762 }
6763 #[cfg(feature = "extra-children")]
6764 {
6765 emit_idx += 1;
6766 }
6767 #[cfg(feature = "wml-fields")]
6768 for item in &self.list_entry {
6769 #[cfg(feature = "extra-children")]
6770 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6771 extra_iter
6772 .next()
6773 .unwrap()
6774 .node
6775 .write_to(writer)
6776 .map_err(SerializeError::from)?;
6777 }
6778 item.write_element("w:listEntry", writer)?;
6779 #[cfg(feature = "extra-children")]
6780 {
6781 emit_idx += 1;
6782 }
6783 }
6784 #[cfg(feature = "extra-children")]
6785 for extra in extra_iter {
6786 extra.node.write_to(writer).map_err(SerializeError::from)?;
6787 }
6788 Ok(())
6789 }
6790
6791 fn is_empty_element(&self) -> bool {
6792 #[cfg(feature = "wml-fields")]
6793 if self.result.is_some() {
6794 return false;
6795 }
6796 #[cfg(feature = "wml-fields")]
6797 if self.default.is_some() {
6798 return false;
6799 }
6800 #[cfg(feature = "wml-fields")]
6801 if !self.list_entry.is_empty() {
6802 return false;
6803 }
6804 #[cfg(feature = "extra-children")]
6805 if !self.extra_children.is_empty() {
6806 return false;
6807 }
6808 true
6809 }
6810}
6811
6812impl ToXml for CTFFTextInput {
6813 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
6814 #[cfg(feature = "extra-children")]
6815 let mut extra_iter = self.extra_children.iter().peekable();
6816 #[cfg(feature = "extra-children")]
6817 let mut emit_idx: usize = 0;
6818 #[cfg(feature = "extra-children")]
6819 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6820 extra_iter
6821 .next()
6822 .unwrap()
6823 .node
6824 .write_to(writer)
6825 .map_err(SerializeError::from)?;
6826 }
6827 #[cfg(feature = "wml-fields")]
6828 if let Some(ref val) = self.r#type {
6829 val.write_element("w:type", writer)?;
6830 }
6831 #[cfg(feature = "extra-children")]
6832 {
6833 emit_idx += 1;
6834 }
6835 #[cfg(feature = "extra-children")]
6836 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6837 extra_iter
6838 .next()
6839 .unwrap()
6840 .node
6841 .write_to(writer)
6842 .map_err(SerializeError::from)?;
6843 }
6844 #[cfg(feature = "wml-fields")]
6845 if let Some(ref val) = self.default {
6846 val.write_element("w:default", writer)?;
6847 }
6848 #[cfg(feature = "extra-children")]
6849 {
6850 emit_idx += 1;
6851 }
6852 #[cfg(feature = "extra-children")]
6853 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6854 extra_iter
6855 .next()
6856 .unwrap()
6857 .node
6858 .write_to(writer)
6859 .map_err(SerializeError::from)?;
6860 }
6861 #[cfg(feature = "wml-fields")]
6862 if let Some(ref val) = self.max_length {
6863 val.write_element("w:maxLength", writer)?;
6864 }
6865 #[cfg(feature = "extra-children")]
6866 {
6867 emit_idx += 1;
6868 }
6869 #[cfg(feature = "extra-children")]
6870 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6871 extra_iter
6872 .next()
6873 .unwrap()
6874 .node
6875 .write_to(writer)
6876 .map_err(SerializeError::from)?;
6877 }
6878 #[cfg(feature = "wml-fields")]
6879 if let Some(ref val) = self.format {
6880 val.write_element("w:format", writer)?;
6881 }
6882 #[cfg(feature = "extra-children")]
6883 {
6884 emit_idx += 1;
6885 }
6886 #[cfg(feature = "extra-children")]
6887 for extra in extra_iter {
6888 extra.node.write_to(writer).map_err(SerializeError::from)?;
6889 }
6890 Ok(())
6891 }
6892
6893 fn is_empty_element(&self) -> bool {
6894 #[cfg(feature = "wml-fields")]
6895 if self.r#type.is_some() {
6896 return false;
6897 }
6898 #[cfg(feature = "wml-fields")]
6899 if self.default.is_some() {
6900 return false;
6901 }
6902 #[cfg(feature = "wml-fields")]
6903 if self.max_length.is_some() {
6904 return false;
6905 }
6906 #[cfg(feature = "wml-fields")]
6907 if self.format.is_some() {
6908 return false;
6909 }
6910 #[cfg(feature = "extra-children")]
6911 if !self.extra_children.is_empty() {
6912 return false;
6913 }
6914 true
6915 }
6916}
6917
6918impl ToXml for CTSectType {
6919 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6920 #[allow(unused_mut)]
6921 let mut start = start;
6922 if let Some(ref val) = self.value {
6923 {
6924 let s = val.to_string();
6925 start.push_attribute(("w:val", s.as_str()));
6926 }
6927 }
6928 #[cfg(feature = "extra-attrs")]
6929 for (key, value) in &self.extra_attrs {
6930 start.push_attribute((key.as_str(), value.as_str()));
6931 }
6932 start
6933 }
6934
6935 fn is_empty_element(&self) -> bool {
6936 true
6937 }
6938}
6939
6940impl ToXml for CTPaperSource {
6941 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6942 #[allow(unused_mut)]
6943 let mut start = start;
6944 #[cfg(feature = "wml-layout")]
6945 if let Some(ref val) = self.first {
6946 {
6947 let s = val.to_string();
6948 start.push_attribute(("w:first", s.as_str()));
6949 }
6950 }
6951 #[cfg(feature = "wml-layout")]
6952 if let Some(ref val) = self.other {
6953 {
6954 let s = val.to_string();
6955 start.push_attribute(("w:other", s.as_str()));
6956 }
6957 }
6958 #[cfg(feature = "extra-attrs")]
6959 for (key, value) in &self.extra_attrs {
6960 start.push_attribute((key.as_str(), value.as_str()));
6961 }
6962 start
6963 }
6964
6965 fn is_empty_element(&self) -> bool {
6966 true
6967 }
6968}
6969
6970impl ToXml for PageSize {
6971 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6972 #[allow(unused_mut)]
6973 let mut start = start;
6974 #[cfg(feature = "wml-layout")]
6975 if let Some(ref val) = self.width {
6976 {
6977 let s = val.to_string();
6978 start.push_attribute(("w:w", s.as_str()));
6979 }
6980 }
6981 #[cfg(feature = "wml-layout")]
6982 if let Some(ref val) = self.height {
6983 {
6984 let s = val.to_string();
6985 start.push_attribute(("w:h", s.as_str()));
6986 }
6987 }
6988 #[cfg(feature = "wml-layout")]
6989 if let Some(ref val) = self.orient {
6990 {
6991 let s = val.to_string();
6992 start.push_attribute(("w:orient", s.as_str()));
6993 }
6994 }
6995 #[cfg(feature = "wml-layout")]
6996 if let Some(ref val) = self.code {
6997 {
6998 let s = val.to_string();
6999 start.push_attribute(("w:code", s.as_str()));
7000 }
7001 }
7002 #[cfg(feature = "extra-attrs")]
7003 for (key, value) in &self.extra_attrs {
7004 start.push_attribute((key.as_str(), value.as_str()));
7005 }
7006 start
7007 }
7008
7009 fn is_empty_element(&self) -> bool {
7010 true
7011 }
7012}
7013
7014impl ToXml for PageMargins {
7015 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7016 #[allow(unused_mut)]
7017 let mut start = start;
7018 #[cfg(feature = "wml-layout")]
7019 {
7020 let val = &self.top;
7021 {
7022 let s = val.to_string();
7023 start.push_attribute(("w:top", s.as_str()));
7024 }
7025 }
7026 #[cfg(feature = "wml-layout")]
7027 {
7028 let val = &self.right;
7029 {
7030 let s = val.to_string();
7031 start.push_attribute(("w:right", s.as_str()));
7032 }
7033 }
7034 #[cfg(feature = "wml-layout")]
7035 {
7036 let val = &self.bottom;
7037 {
7038 let s = val.to_string();
7039 start.push_attribute(("w:bottom", s.as_str()));
7040 }
7041 }
7042 #[cfg(feature = "wml-layout")]
7043 {
7044 let val = &self.left;
7045 {
7046 let s = val.to_string();
7047 start.push_attribute(("w:left", s.as_str()));
7048 }
7049 }
7050 #[cfg(feature = "wml-layout")]
7051 {
7052 let val = &self.header;
7053 {
7054 let s = val.to_string();
7055 start.push_attribute(("w:header", s.as_str()));
7056 }
7057 }
7058 #[cfg(feature = "wml-layout")]
7059 {
7060 let val = &self.footer;
7061 {
7062 let s = val.to_string();
7063 start.push_attribute(("w:footer", s.as_str()));
7064 }
7065 }
7066 #[cfg(feature = "wml-layout")]
7067 {
7068 let val = &self.gutter;
7069 {
7070 let s = val.to_string();
7071 start.push_attribute(("w:gutter", s.as_str()));
7072 }
7073 }
7074 #[cfg(feature = "extra-attrs")]
7075 for (key, value) in &self.extra_attrs {
7076 start.push_attribute((key.as_str(), value.as_str()));
7077 }
7078 start
7079 }
7080
7081 fn is_empty_element(&self) -> bool {
7082 true
7083 }
7084}
7085
7086impl ToXml for CTPageBorders {
7087 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7088 #[allow(unused_mut)]
7089 let mut start = start;
7090 #[cfg(feature = "wml-layout")]
7091 if let Some(ref val) = self.z_order {
7092 {
7093 let s = val.to_string();
7094 start.push_attribute(("w:zOrder", s.as_str()));
7095 }
7096 }
7097 #[cfg(feature = "wml-layout")]
7098 if let Some(ref val) = self.display {
7099 {
7100 let s = val.to_string();
7101 start.push_attribute(("w:display", s.as_str()));
7102 }
7103 }
7104 #[cfg(feature = "wml-layout")]
7105 if let Some(ref val) = self.offset_from {
7106 {
7107 let s = val.to_string();
7108 start.push_attribute(("w:offsetFrom", s.as_str()));
7109 }
7110 }
7111 #[cfg(feature = "extra-attrs")]
7112 for (key, value) in &self.extra_attrs {
7113 start.push_attribute((key.as_str(), value.as_str()));
7114 }
7115 start
7116 }
7117
7118 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
7119 #[cfg(feature = "extra-children")]
7120 let mut extra_iter = self.extra_children.iter().peekable();
7121 #[cfg(feature = "extra-children")]
7122 let mut emit_idx: usize = 0;
7123 #[cfg(feature = "extra-children")]
7124 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7125 extra_iter
7126 .next()
7127 .unwrap()
7128 .node
7129 .write_to(writer)
7130 .map_err(SerializeError::from)?;
7131 }
7132 #[cfg(feature = "wml-layout")]
7133 if let Some(ref val) = self.top {
7134 val.write_element("w:top", writer)?;
7135 }
7136 #[cfg(feature = "extra-children")]
7137 {
7138 emit_idx += 1;
7139 }
7140 #[cfg(feature = "extra-children")]
7141 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7142 extra_iter
7143 .next()
7144 .unwrap()
7145 .node
7146 .write_to(writer)
7147 .map_err(SerializeError::from)?;
7148 }
7149 #[cfg(feature = "wml-layout")]
7150 if let Some(ref val) = self.left {
7151 val.write_element("w:left", writer)?;
7152 }
7153 #[cfg(feature = "extra-children")]
7154 {
7155 emit_idx += 1;
7156 }
7157 #[cfg(feature = "extra-children")]
7158 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7159 extra_iter
7160 .next()
7161 .unwrap()
7162 .node
7163 .write_to(writer)
7164 .map_err(SerializeError::from)?;
7165 }
7166 #[cfg(feature = "wml-layout")]
7167 if let Some(ref val) = self.bottom {
7168 val.write_element("w:bottom", writer)?;
7169 }
7170 #[cfg(feature = "extra-children")]
7171 {
7172 emit_idx += 1;
7173 }
7174 #[cfg(feature = "extra-children")]
7175 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7176 extra_iter
7177 .next()
7178 .unwrap()
7179 .node
7180 .write_to(writer)
7181 .map_err(SerializeError::from)?;
7182 }
7183 #[cfg(feature = "wml-layout")]
7184 if let Some(ref val) = self.right {
7185 val.write_element("w:right", writer)?;
7186 }
7187 #[cfg(feature = "extra-children")]
7188 {
7189 emit_idx += 1;
7190 }
7191 #[cfg(feature = "extra-children")]
7192 for extra in extra_iter {
7193 extra.node.write_to(writer).map_err(SerializeError::from)?;
7194 }
7195 Ok(())
7196 }
7197
7198 fn is_empty_element(&self) -> bool {
7199 #[cfg(feature = "wml-layout")]
7200 if self.top.is_some() {
7201 return false;
7202 }
7203 #[cfg(feature = "wml-layout")]
7204 if self.left.is_some() {
7205 return false;
7206 }
7207 #[cfg(feature = "wml-layout")]
7208 if self.bottom.is_some() {
7209 return false;
7210 }
7211 #[cfg(feature = "wml-layout")]
7212 if self.right.is_some() {
7213 return false;
7214 }
7215 #[cfg(feature = "extra-children")]
7216 if !self.extra_children.is_empty() {
7217 return false;
7218 }
7219 true
7220 }
7221}
7222
7223impl ToXml for CTPageBorder {
7224 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7225 #[allow(unused_mut)]
7226 let mut start = start;
7227 {
7228 let val = &self.value;
7229 {
7230 let s = val.to_string();
7231 start.push_attribute(("w:val", s.as_str()));
7232 }
7233 }
7234 if let Some(ref val) = self.color {
7235 {
7236 let s = val.to_string();
7237 start.push_attribute(("w:color", s.as_str()));
7238 }
7239 }
7240 if let Some(ref val) = self.theme_color {
7241 {
7242 let s = val.to_string();
7243 start.push_attribute(("w:themeColor", s.as_str()));
7244 }
7245 }
7246 if let Some(ref val) = self.theme_tint {
7247 {
7248 let hex = encode_hex(val);
7249 start.push_attribute(("w:themeTint", hex.as_str()));
7250 }
7251 }
7252 if let Some(ref val) = self.theme_shade {
7253 {
7254 let hex = encode_hex(val);
7255 start.push_attribute(("w:themeShade", hex.as_str()));
7256 }
7257 }
7258 if let Some(ref val) = self.size {
7259 {
7260 let s = val.to_string();
7261 start.push_attribute(("w:sz", s.as_str()));
7262 }
7263 }
7264 if let Some(ref val) = self.space {
7265 {
7266 let s = val.to_string();
7267 start.push_attribute(("w:space", s.as_str()));
7268 }
7269 }
7270 if let Some(ref val) = self.shadow {
7271 {
7272 let s = val.to_string();
7273 start.push_attribute(("w:shadow", s.as_str()));
7274 }
7275 }
7276 if let Some(ref val) = self.frame {
7277 {
7278 let s = val.to_string();
7279 start.push_attribute(("w:frame", s.as_str()));
7280 }
7281 }
7282 #[cfg(feature = "wml-layout")]
7283 if let Some(ref val) = self.id {
7284 start.push_attribute(("r:id", val.as_str()));
7285 }
7286 #[cfg(feature = "extra-attrs")]
7287 for (key, value) in &self.extra_attrs {
7288 start.push_attribute((key.as_str(), value.as_str()));
7289 }
7290 start
7291 }
7292
7293 fn is_empty_element(&self) -> bool {
7294 true
7295 }
7296}
7297
7298impl ToXml for CTBottomPageBorder {
7299 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7300 #[allow(unused_mut)]
7301 let mut start = start;
7302 {
7303 let val = &self.value;
7304 {
7305 let s = val.to_string();
7306 start.push_attribute(("w:val", s.as_str()));
7307 }
7308 }
7309 if let Some(ref val) = self.color {
7310 {
7311 let s = val.to_string();
7312 start.push_attribute(("w:color", s.as_str()));
7313 }
7314 }
7315 if let Some(ref val) = self.theme_color {
7316 {
7317 let s = val.to_string();
7318 start.push_attribute(("w:themeColor", s.as_str()));
7319 }
7320 }
7321 if let Some(ref val) = self.theme_tint {
7322 {
7323 let hex = encode_hex(val);
7324 start.push_attribute(("w:themeTint", hex.as_str()));
7325 }
7326 }
7327 if let Some(ref val) = self.theme_shade {
7328 {
7329 let hex = encode_hex(val);
7330 start.push_attribute(("w:themeShade", hex.as_str()));
7331 }
7332 }
7333 if let Some(ref val) = self.size {
7334 {
7335 let s = val.to_string();
7336 start.push_attribute(("w:sz", s.as_str()));
7337 }
7338 }
7339 if let Some(ref val) = self.space {
7340 {
7341 let s = val.to_string();
7342 start.push_attribute(("w:space", s.as_str()));
7343 }
7344 }
7345 if let Some(ref val) = self.shadow {
7346 {
7347 let s = val.to_string();
7348 start.push_attribute(("w:shadow", s.as_str()));
7349 }
7350 }
7351 if let Some(ref val) = self.frame {
7352 {
7353 let s = val.to_string();
7354 start.push_attribute(("w:frame", s.as_str()));
7355 }
7356 }
7357 if let Some(ref val) = self.id {
7358 start.push_attribute(("r:id", val.as_str()));
7359 }
7360 #[cfg(feature = "wml-layout")]
7361 if let Some(ref val) = self.bottom_left {
7362 start.push_attribute(("r:bottomLeft", val.as_str()));
7363 }
7364 #[cfg(feature = "wml-layout")]
7365 if let Some(ref val) = self.bottom_right {
7366 start.push_attribute(("r:bottomRight", val.as_str()));
7367 }
7368 #[cfg(feature = "extra-attrs")]
7369 for (key, value) in &self.extra_attrs {
7370 start.push_attribute((key.as_str(), value.as_str()));
7371 }
7372 start
7373 }
7374
7375 fn is_empty_element(&self) -> bool {
7376 true
7377 }
7378}
7379
7380impl ToXml for CTTopPageBorder {
7381 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7382 #[allow(unused_mut)]
7383 let mut start = start;
7384 {
7385 let val = &self.value;
7386 {
7387 let s = val.to_string();
7388 start.push_attribute(("w:val", s.as_str()));
7389 }
7390 }
7391 if let Some(ref val) = self.color {
7392 {
7393 let s = val.to_string();
7394 start.push_attribute(("w:color", s.as_str()));
7395 }
7396 }
7397 if let Some(ref val) = self.theme_color {
7398 {
7399 let s = val.to_string();
7400 start.push_attribute(("w:themeColor", s.as_str()));
7401 }
7402 }
7403 if let Some(ref val) = self.theme_tint {
7404 {
7405 let hex = encode_hex(val);
7406 start.push_attribute(("w:themeTint", hex.as_str()));
7407 }
7408 }
7409 if let Some(ref val) = self.theme_shade {
7410 {
7411 let hex = encode_hex(val);
7412 start.push_attribute(("w:themeShade", hex.as_str()));
7413 }
7414 }
7415 if let Some(ref val) = self.size {
7416 {
7417 let s = val.to_string();
7418 start.push_attribute(("w:sz", s.as_str()));
7419 }
7420 }
7421 if let Some(ref val) = self.space {
7422 {
7423 let s = val.to_string();
7424 start.push_attribute(("w:space", s.as_str()));
7425 }
7426 }
7427 if let Some(ref val) = self.shadow {
7428 {
7429 let s = val.to_string();
7430 start.push_attribute(("w:shadow", s.as_str()));
7431 }
7432 }
7433 if let Some(ref val) = self.frame {
7434 {
7435 let s = val.to_string();
7436 start.push_attribute(("w:frame", s.as_str()));
7437 }
7438 }
7439 if let Some(ref val) = self.id {
7440 start.push_attribute(("r:id", val.as_str()));
7441 }
7442 #[cfg(feature = "wml-layout")]
7443 if let Some(ref val) = self.top_left {
7444 start.push_attribute(("r:topLeft", val.as_str()));
7445 }
7446 #[cfg(feature = "wml-layout")]
7447 if let Some(ref val) = self.top_right {
7448 start.push_attribute(("r:topRight", val.as_str()));
7449 }
7450 #[cfg(feature = "extra-attrs")]
7451 for (key, value) in &self.extra_attrs {
7452 start.push_attribute((key.as_str(), value.as_str()));
7453 }
7454 start
7455 }
7456
7457 fn is_empty_element(&self) -> bool {
7458 true
7459 }
7460}
7461
7462impl ToXml for CTLineNumber {
7463 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7464 #[allow(unused_mut)]
7465 let mut start = start;
7466 #[cfg(feature = "wml-layout")]
7467 if let Some(ref val) = self.count_by {
7468 {
7469 let s = val.to_string();
7470 start.push_attribute(("w:countBy", s.as_str()));
7471 }
7472 }
7473 #[cfg(feature = "wml-layout")]
7474 if let Some(ref val) = self.start {
7475 {
7476 let s = val.to_string();
7477 start.push_attribute(("w:start", s.as_str()));
7478 }
7479 }
7480 #[cfg(feature = "wml-layout")]
7481 if let Some(ref val) = self.distance {
7482 {
7483 let s = val.to_string();
7484 start.push_attribute(("w:distance", s.as_str()));
7485 }
7486 }
7487 #[cfg(feature = "wml-layout")]
7488 if let Some(ref val) = self.restart {
7489 {
7490 let s = val.to_string();
7491 start.push_attribute(("w:restart", s.as_str()));
7492 }
7493 }
7494 #[cfg(feature = "extra-attrs")]
7495 for (key, value) in &self.extra_attrs {
7496 start.push_attribute((key.as_str(), value.as_str()));
7497 }
7498 start
7499 }
7500
7501 fn is_empty_element(&self) -> bool {
7502 true
7503 }
7504}
7505
7506impl ToXml for CTPageNumber {
7507 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7508 #[allow(unused_mut)]
7509 let mut start = start;
7510 #[cfg(feature = "wml-layout")]
7511 if let Some(ref val) = self.fmt {
7512 {
7513 let s = val.to_string();
7514 start.push_attribute(("w:fmt", s.as_str()));
7515 }
7516 }
7517 #[cfg(feature = "wml-layout")]
7518 if let Some(ref val) = self.start {
7519 {
7520 let s = val.to_string();
7521 start.push_attribute(("w:start", s.as_str()));
7522 }
7523 }
7524 #[cfg(feature = "wml-layout")]
7525 if let Some(ref val) = self.chap_style {
7526 {
7527 let s = val.to_string();
7528 start.push_attribute(("w:chapStyle", s.as_str()));
7529 }
7530 }
7531 #[cfg(feature = "wml-layout")]
7532 if let Some(ref val) = self.chap_sep {
7533 {
7534 let s = val.to_string();
7535 start.push_attribute(("w:chapSep", s.as_str()));
7536 }
7537 }
7538 #[cfg(feature = "extra-attrs")]
7539 for (key, value) in &self.extra_attrs {
7540 start.push_attribute((key.as_str(), value.as_str()));
7541 }
7542 start
7543 }
7544
7545 fn is_empty_element(&self) -> bool {
7546 true
7547 }
7548}
7549
7550impl ToXml for CTColumn {
7551 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7552 #[allow(unused_mut)]
7553 let mut start = start;
7554 #[cfg(feature = "wml-layout")]
7555 if let Some(ref val) = self.width {
7556 {
7557 let s = val.to_string();
7558 start.push_attribute(("w:w", s.as_str()));
7559 }
7560 }
7561 #[cfg(feature = "wml-layout")]
7562 if let Some(ref val) = self.space {
7563 {
7564 let s = val.to_string();
7565 start.push_attribute(("w:space", s.as_str()));
7566 }
7567 }
7568 #[cfg(feature = "extra-attrs")]
7569 for (key, value) in &self.extra_attrs {
7570 start.push_attribute((key.as_str(), value.as_str()));
7571 }
7572 start
7573 }
7574
7575 fn is_empty_element(&self) -> bool {
7576 true
7577 }
7578}
7579
7580impl ToXml for Columns {
7581 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7582 #[allow(unused_mut)]
7583 let mut start = start;
7584 #[cfg(feature = "wml-layout")]
7585 if let Some(ref val) = self.equal_width {
7586 {
7587 let s = val.to_string();
7588 start.push_attribute(("w:equalWidth", s.as_str()));
7589 }
7590 }
7591 #[cfg(feature = "wml-layout")]
7592 if let Some(ref val) = self.space {
7593 {
7594 let s = val.to_string();
7595 start.push_attribute(("w:space", s.as_str()));
7596 }
7597 }
7598 #[cfg(feature = "wml-layout")]
7599 if let Some(ref val) = self.num {
7600 {
7601 let s = val.to_string();
7602 start.push_attribute(("w:num", s.as_str()));
7603 }
7604 }
7605 #[cfg(feature = "wml-layout")]
7606 if let Some(ref val) = self.sep {
7607 {
7608 let s = val.to_string();
7609 start.push_attribute(("w:sep", s.as_str()));
7610 }
7611 }
7612 #[cfg(feature = "extra-attrs")]
7613 for (key, value) in &self.extra_attrs {
7614 start.push_attribute((key.as_str(), value.as_str()));
7615 }
7616 start
7617 }
7618
7619 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
7620 #[cfg(feature = "extra-children")]
7621 let mut extra_iter = self.extra_children.iter().peekable();
7622 #[cfg(feature = "extra-children")]
7623 let mut emit_idx: usize = 0;
7624 #[cfg(feature = "wml-layout")]
7625 for item in &self.col {
7626 #[cfg(feature = "extra-children")]
7627 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7628 extra_iter
7629 .next()
7630 .unwrap()
7631 .node
7632 .write_to(writer)
7633 .map_err(SerializeError::from)?;
7634 }
7635 item.write_element("w:col", writer)?;
7636 #[cfg(feature = "extra-children")]
7637 {
7638 emit_idx += 1;
7639 }
7640 }
7641 #[cfg(feature = "extra-children")]
7642 for extra in extra_iter {
7643 extra.node.write_to(writer).map_err(SerializeError::from)?;
7644 }
7645 Ok(())
7646 }
7647
7648 fn is_empty_element(&self) -> bool {
7649 #[cfg(feature = "wml-layout")]
7650 if !self.col.is_empty() {
7651 return false;
7652 }
7653 #[cfg(feature = "extra-children")]
7654 if !self.extra_children.is_empty() {
7655 return false;
7656 }
7657 true
7658 }
7659}
7660
7661impl ToXml for CTVerticalJc {
7662 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7663 #[allow(unused_mut)]
7664 let mut start = start;
7665 {
7666 let val = &self.value;
7667 {
7668 let s = val.to_string();
7669 start.push_attribute(("w:val", s.as_str()));
7670 }
7671 }
7672 #[cfg(feature = "extra-attrs")]
7673 for (key, value) in &self.extra_attrs {
7674 start.push_attribute((key.as_str(), value.as_str()));
7675 }
7676 start
7677 }
7678
7679 fn is_empty_element(&self) -> bool {
7680 true
7681 }
7682}
7683
7684impl ToXml for DocumentGrid {
7685 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7686 #[allow(unused_mut)]
7687 let mut start = start;
7688 #[cfg(feature = "wml-layout")]
7689 if let Some(ref val) = self.r#type {
7690 {
7691 let s = val.to_string();
7692 start.push_attribute(("w:type", s.as_str()));
7693 }
7694 }
7695 #[cfg(feature = "wml-layout")]
7696 if let Some(ref val) = self.line_pitch {
7697 {
7698 let s = val.to_string();
7699 start.push_attribute(("w:linePitch", s.as_str()));
7700 }
7701 }
7702 #[cfg(feature = "wml-layout")]
7703 if let Some(ref val) = self.char_space {
7704 {
7705 let s = val.to_string();
7706 start.push_attribute(("w:charSpace", s.as_str()));
7707 }
7708 }
7709 #[cfg(feature = "extra-attrs")]
7710 for (key, value) in &self.extra_attrs {
7711 start.push_attribute((key.as_str(), value.as_str()));
7712 }
7713 start
7714 }
7715
7716 fn is_empty_element(&self) -> bool {
7717 true
7718 }
7719}
7720
7721impl ToXml for HeaderFooterReference {
7722 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7723 #[allow(unused_mut)]
7724 let mut start = start;
7725 {
7726 let val = &self.id;
7727 start.push_attribute(("r:id", val.as_str()));
7728 }
7729 {
7730 let val = &self.r#type;
7731 {
7732 let s = val.to_string();
7733 start.push_attribute(("w:type", s.as_str()));
7734 }
7735 }
7736 #[cfg(feature = "extra-attrs")]
7737 for (key, value) in &self.extra_attrs {
7738 start.push_attribute((key.as_str(), value.as_str()));
7739 }
7740 start
7741 }
7742
7743 fn is_empty_element(&self) -> bool {
7744 true
7745 }
7746}
7747
7748impl ToXml for HeaderFooterRef {
7749 fn write_element<W: Write>(
7750 &self,
7751 _tag: &str,
7752 writer: &mut Writer<W>,
7753 ) -> Result<(), SerializeError> {
7754 match self {
7755 Self::HeaderReference(inner) => inner.write_element("w:headerReference", writer)?,
7756 Self::FooterReference(inner) => inner.write_element("w:footerReference", writer)?,
7757 }
7758 Ok(())
7759 }
7760}
7761
7762impl ToXml for HeaderFooter {
7763 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
7764 #[cfg(feature = "extra-children")]
7765 let mut extra_iter = self.extra_children.iter().peekable();
7766 #[cfg(feature = "extra-children")]
7767 let mut emit_idx: usize = 0;
7768 for item in &self.block_content {
7769 #[cfg(feature = "extra-children")]
7770 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7771 extra_iter
7772 .next()
7773 .unwrap()
7774 .node
7775 .write_to(writer)
7776 .map_err(SerializeError::from)?;
7777 }
7778 item.write_element("", writer)?;
7779 #[cfg(feature = "extra-children")]
7780 {
7781 emit_idx += 1;
7782 }
7783 }
7784 #[cfg(feature = "extra-children")]
7785 for extra in extra_iter {
7786 extra.node.write_to(writer).map_err(SerializeError::from)?;
7787 }
7788 Ok(())
7789 }
7790
7791 fn is_empty_element(&self) -> bool {
7792 if !self.block_content.is_empty() {
7793 return false;
7794 }
7795 #[cfg(feature = "extra-children")]
7796 if !self.extra_children.is_empty() {
7797 return false;
7798 }
7799 true
7800 }
7801}
7802
7803impl ToXml for EGSectPrContents {
7804 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
7805 #[cfg(feature = "extra-children")]
7806 let mut extra_iter = self.extra_children.iter().peekable();
7807 #[cfg(feature = "extra-children")]
7808 let mut emit_idx: usize = 0;
7809 #[cfg(feature = "extra-children")]
7810 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7811 extra_iter
7812 .next()
7813 .unwrap()
7814 .node
7815 .write_to(writer)
7816 .map_err(SerializeError::from)?;
7817 }
7818 if let Some(ref val) = self.footnote_pr {
7819 val.write_element("w:footnotePr", writer)?;
7820 }
7821 #[cfg(feature = "extra-children")]
7822 {
7823 emit_idx += 1;
7824 }
7825 #[cfg(feature = "extra-children")]
7826 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7827 extra_iter
7828 .next()
7829 .unwrap()
7830 .node
7831 .write_to(writer)
7832 .map_err(SerializeError::from)?;
7833 }
7834 if let Some(ref val) = self.endnote_pr {
7835 val.write_element("w:endnotePr", writer)?;
7836 }
7837 #[cfg(feature = "extra-children")]
7838 {
7839 emit_idx += 1;
7840 }
7841 #[cfg(feature = "extra-children")]
7842 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7843 extra_iter
7844 .next()
7845 .unwrap()
7846 .node
7847 .write_to(writer)
7848 .map_err(SerializeError::from)?;
7849 }
7850 if let Some(ref val) = self.r#type {
7851 val.write_element("w:type", writer)?;
7852 }
7853 #[cfg(feature = "extra-children")]
7854 {
7855 emit_idx += 1;
7856 }
7857 #[cfg(feature = "extra-children")]
7858 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7859 extra_iter
7860 .next()
7861 .unwrap()
7862 .node
7863 .write_to(writer)
7864 .map_err(SerializeError::from)?;
7865 }
7866 if let Some(ref val) = self.pg_sz {
7867 val.write_element("w:pgSz", writer)?;
7868 }
7869 #[cfg(feature = "extra-children")]
7870 {
7871 emit_idx += 1;
7872 }
7873 #[cfg(feature = "extra-children")]
7874 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7875 extra_iter
7876 .next()
7877 .unwrap()
7878 .node
7879 .write_to(writer)
7880 .map_err(SerializeError::from)?;
7881 }
7882 if let Some(ref val) = self.pg_mar {
7883 val.write_element("w:pgMar", writer)?;
7884 }
7885 #[cfg(feature = "extra-children")]
7886 {
7887 emit_idx += 1;
7888 }
7889 #[cfg(feature = "extra-children")]
7890 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7891 extra_iter
7892 .next()
7893 .unwrap()
7894 .node
7895 .write_to(writer)
7896 .map_err(SerializeError::from)?;
7897 }
7898 if let Some(ref val) = self.paper_src {
7899 val.write_element("w:paperSrc", writer)?;
7900 }
7901 #[cfg(feature = "extra-children")]
7902 {
7903 emit_idx += 1;
7904 }
7905 #[cfg(feature = "extra-children")]
7906 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7907 extra_iter
7908 .next()
7909 .unwrap()
7910 .node
7911 .write_to(writer)
7912 .map_err(SerializeError::from)?;
7913 }
7914 if let Some(ref val) = self.pg_borders {
7915 val.write_element("w:pgBorders", writer)?;
7916 }
7917 #[cfg(feature = "extra-children")]
7918 {
7919 emit_idx += 1;
7920 }
7921 #[cfg(feature = "extra-children")]
7922 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7923 extra_iter
7924 .next()
7925 .unwrap()
7926 .node
7927 .write_to(writer)
7928 .map_err(SerializeError::from)?;
7929 }
7930 if let Some(ref val) = self.ln_num_type {
7931 val.write_element("w:lnNumType", writer)?;
7932 }
7933 #[cfg(feature = "extra-children")]
7934 {
7935 emit_idx += 1;
7936 }
7937 #[cfg(feature = "extra-children")]
7938 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7939 extra_iter
7940 .next()
7941 .unwrap()
7942 .node
7943 .write_to(writer)
7944 .map_err(SerializeError::from)?;
7945 }
7946 if let Some(ref val) = self.pg_num_type {
7947 val.write_element("w:pgNumType", writer)?;
7948 }
7949 #[cfg(feature = "extra-children")]
7950 {
7951 emit_idx += 1;
7952 }
7953 #[cfg(feature = "extra-children")]
7954 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7955 extra_iter
7956 .next()
7957 .unwrap()
7958 .node
7959 .write_to(writer)
7960 .map_err(SerializeError::from)?;
7961 }
7962 if let Some(ref val) = self.cols {
7963 val.write_element("w:cols", writer)?;
7964 }
7965 #[cfg(feature = "extra-children")]
7966 {
7967 emit_idx += 1;
7968 }
7969 #[cfg(feature = "extra-children")]
7970 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7971 extra_iter
7972 .next()
7973 .unwrap()
7974 .node
7975 .write_to(writer)
7976 .map_err(SerializeError::from)?;
7977 }
7978 if let Some(ref val) = self.form_prot {
7979 val.write_element("w:formProt", writer)?;
7980 }
7981 #[cfg(feature = "extra-children")]
7982 {
7983 emit_idx += 1;
7984 }
7985 #[cfg(feature = "extra-children")]
7986 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7987 extra_iter
7988 .next()
7989 .unwrap()
7990 .node
7991 .write_to(writer)
7992 .map_err(SerializeError::from)?;
7993 }
7994 if let Some(ref val) = self.v_align {
7995 val.write_element("w:vAlign", writer)?;
7996 }
7997 #[cfg(feature = "extra-children")]
7998 {
7999 emit_idx += 1;
8000 }
8001 #[cfg(feature = "extra-children")]
8002 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8003 extra_iter
8004 .next()
8005 .unwrap()
8006 .node
8007 .write_to(writer)
8008 .map_err(SerializeError::from)?;
8009 }
8010 if let Some(ref val) = self.no_endnote {
8011 val.write_element("w:noEndnote", writer)?;
8012 }
8013 #[cfg(feature = "extra-children")]
8014 {
8015 emit_idx += 1;
8016 }
8017 #[cfg(feature = "extra-children")]
8018 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8019 extra_iter
8020 .next()
8021 .unwrap()
8022 .node
8023 .write_to(writer)
8024 .map_err(SerializeError::from)?;
8025 }
8026 if let Some(ref val) = self.title_pg {
8027 val.write_element("w:titlePg", writer)?;
8028 }
8029 #[cfg(feature = "extra-children")]
8030 {
8031 emit_idx += 1;
8032 }
8033 #[cfg(feature = "extra-children")]
8034 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8035 extra_iter
8036 .next()
8037 .unwrap()
8038 .node
8039 .write_to(writer)
8040 .map_err(SerializeError::from)?;
8041 }
8042 if let Some(ref val) = self.text_direction {
8043 val.write_element("w:textDirection", writer)?;
8044 }
8045 #[cfg(feature = "extra-children")]
8046 {
8047 emit_idx += 1;
8048 }
8049 #[cfg(feature = "extra-children")]
8050 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8051 extra_iter
8052 .next()
8053 .unwrap()
8054 .node
8055 .write_to(writer)
8056 .map_err(SerializeError::from)?;
8057 }
8058 if let Some(ref val) = self.bidi {
8059 val.write_element("w:bidi", writer)?;
8060 }
8061 #[cfg(feature = "extra-children")]
8062 {
8063 emit_idx += 1;
8064 }
8065 #[cfg(feature = "extra-children")]
8066 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8067 extra_iter
8068 .next()
8069 .unwrap()
8070 .node
8071 .write_to(writer)
8072 .map_err(SerializeError::from)?;
8073 }
8074 if let Some(ref val) = self.rtl_gutter {
8075 val.write_element("w:rtlGutter", writer)?;
8076 }
8077 #[cfg(feature = "extra-children")]
8078 {
8079 emit_idx += 1;
8080 }
8081 #[cfg(feature = "extra-children")]
8082 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8083 extra_iter
8084 .next()
8085 .unwrap()
8086 .node
8087 .write_to(writer)
8088 .map_err(SerializeError::from)?;
8089 }
8090 if let Some(ref val) = self.doc_grid {
8091 val.write_element("w:docGrid", writer)?;
8092 }
8093 #[cfg(feature = "extra-children")]
8094 {
8095 emit_idx += 1;
8096 }
8097 #[cfg(feature = "extra-children")]
8098 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8099 extra_iter
8100 .next()
8101 .unwrap()
8102 .node
8103 .write_to(writer)
8104 .map_err(SerializeError::from)?;
8105 }
8106 if let Some(ref val) = self.printer_settings {
8107 val.write_element("w:printerSettings", writer)?;
8108 }
8109 #[cfg(feature = "extra-children")]
8110 {
8111 emit_idx += 1;
8112 }
8113 #[cfg(feature = "extra-children")]
8114 for extra in extra_iter {
8115 extra.node.write_to(writer).map_err(SerializeError::from)?;
8116 }
8117 Ok(())
8118 }
8119
8120 fn is_empty_element(&self) -> bool {
8121 if self.footnote_pr.is_some() {
8122 return false;
8123 }
8124 if self.endnote_pr.is_some() {
8125 return false;
8126 }
8127 if self.r#type.is_some() {
8128 return false;
8129 }
8130 if self.pg_sz.is_some() {
8131 return false;
8132 }
8133 if self.pg_mar.is_some() {
8134 return false;
8135 }
8136 if self.paper_src.is_some() {
8137 return false;
8138 }
8139 if self.pg_borders.is_some() {
8140 return false;
8141 }
8142 if self.ln_num_type.is_some() {
8143 return false;
8144 }
8145 if self.pg_num_type.is_some() {
8146 return false;
8147 }
8148 if self.cols.is_some() {
8149 return false;
8150 }
8151 if self.form_prot.is_some() {
8152 return false;
8153 }
8154 if self.v_align.is_some() {
8155 return false;
8156 }
8157 if self.no_endnote.is_some() {
8158 return false;
8159 }
8160 if self.title_pg.is_some() {
8161 return false;
8162 }
8163 if self.text_direction.is_some() {
8164 return false;
8165 }
8166 if self.bidi.is_some() {
8167 return false;
8168 }
8169 if self.rtl_gutter.is_some() {
8170 return false;
8171 }
8172 if self.doc_grid.is_some() {
8173 return false;
8174 }
8175 if self.printer_settings.is_some() {
8176 return false;
8177 }
8178 #[cfg(feature = "extra-children")]
8179 if !self.extra_children.is_empty() {
8180 return false;
8181 }
8182 true
8183 }
8184}
8185
8186impl ToXml for WAGSectPrAttributes {
8187 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8188 #[allow(unused_mut)]
8189 let mut start = start;
8190 if let Some(ref val) = self.rsid_r_pr {
8191 {
8192 let hex = encode_hex(val);
8193 start.push_attribute(("w:rsidRPr", hex.as_str()));
8194 }
8195 }
8196 if let Some(ref val) = self.rsid_del {
8197 {
8198 let hex = encode_hex(val);
8199 start.push_attribute(("w:rsidDel", hex.as_str()));
8200 }
8201 }
8202 if let Some(ref val) = self.rsid_r {
8203 {
8204 let hex = encode_hex(val);
8205 start.push_attribute(("w:rsidR", hex.as_str()));
8206 }
8207 }
8208 if let Some(ref val) = self.rsid_sect {
8209 {
8210 let hex = encode_hex(val);
8211 start.push_attribute(("w:rsidSect", hex.as_str()));
8212 }
8213 }
8214 #[cfg(feature = "extra-attrs")]
8215 for (key, value) in &self.extra_attrs {
8216 start.push_attribute((key.as_str(), value.as_str()));
8217 }
8218 start
8219 }
8220
8221 fn is_empty_element(&self) -> bool {
8222 true
8223 }
8224}
8225
8226impl ToXml for CTSectPrBase {
8227 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8228 #[allow(unused_mut)]
8229 let mut start = start;
8230 #[cfg(feature = "wml-track-changes")]
8231 if let Some(ref val) = self.rsid_r_pr {
8232 {
8233 let hex = encode_hex(val);
8234 start.push_attribute(("w:rsidRPr", hex.as_str()));
8235 }
8236 }
8237 #[cfg(feature = "wml-track-changes")]
8238 if let Some(ref val) = self.rsid_del {
8239 {
8240 let hex = encode_hex(val);
8241 start.push_attribute(("w:rsidDel", hex.as_str()));
8242 }
8243 }
8244 #[cfg(feature = "wml-track-changes")]
8245 if let Some(ref val) = self.rsid_r {
8246 {
8247 let hex = encode_hex(val);
8248 start.push_attribute(("w:rsidR", hex.as_str()));
8249 }
8250 }
8251 #[cfg(feature = "wml-track-changes")]
8252 if let Some(ref val) = self.rsid_sect {
8253 {
8254 let hex = encode_hex(val);
8255 start.push_attribute(("w:rsidSect", hex.as_str()));
8256 }
8257 }
8258 #[cfg(feature = "extra-attrs")]
8259 for (key, value) in &self.extra_attrs {
8260 start.push_attribute((key.as_str(), value.as_str()));
8261 }
8262 start
8263 }
8264
8265 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8266 #[cfg(feature = "extra-children")]
8267 let mut extra_iter = self.extra_children.iter().peekable();
8268 #[cfg(feature = "extra-children")]
8269 let mut emit_idx: usize = 0;
8270 #[cfg(feature = "extra-children")]
8271 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8272 extra_iter
8273 .next()
8274 .unwrap()
8275 .node
8276 .write_to(writer)
8277 .map_err(SerializeError::from)?;
8278 }
8279 if let Some(ref val) = self.footnote_pr {
8280 val.write_element("w:footnotePr", writer)?;
8281 }
8282 #[cfg(feature = "extra-children")]
8283 {
8284 emit_idx += 1;
8285 }
8286 #[cfg(feature = "extra-children")]
8287 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8288 extra_iter
8289 .next()
8290 .unwrap()
8291 .node
8292 .write_to(writer)
8293 .map_err(SerializeError::from)?;
8294 }
8295 if let Some(ref val) = self.endnote_pr {
8296 val.write_element("w:endnotePr", writer)?;
8297 }
8298 #[cfg(feature = "extra-children")]
8299 {
8300 emit_idx += 1;
8301 }
8302 #[cfg(feature = "extra-children")]
8303 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8304 extra_iter
8305 .next()
8306 .unwrap()
8307 .node
8308 .write_to(writer)
8309 .map_err(SerializeError::from)?;
8310 }
8311 if let Some(ref val) = self.r#type {
8312 val.write_element("w:type", writer)?;
8313 }
8314 #[cfg(feature = "extra-children")]
8315 {
8316 emit_idx += 1;
8317 }
8318 #[cfg(feature = "extra-children")]
8319 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8320 extra_iter
8321 .next()
8322 .unwrap()
8323 .node
8324 .write_to(writer)
8325 .map_err(SerializeError::from)?;
8326 }
8327 if let Some(ref val) = self.pg_sz {
8328 val.write_element("w:pgSz", writer)?;
8329 }
8330 #[cfg(feature = "extra-children")]
8331 {
8332 emit_idx += 1;
8333 }
8334 #[cfg(feature = "extra-children")]
8335 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8336 extra_iter
8337 .next()
8338 .unwrap()
8339 .node
8340 .write_to(writer)
8341 .map_err(SerializeError::from)?;
8342 }
8343 if let Some(ref val) = self.pg_mar {
8344 val.write_element("w:pgMar", writer)?;
8345 }
8346 #[cfg(feature = "extra-children")]
8347 {
8348 emit_idx += 1;
8349 }
8350 #[cfg(feature = "extra-children")]
8351 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8352 extra_iter
8353 .next()
8354 .unwrap()
8355 .node
8356 .write_to(writer)
8357 .map_err(SerializeError::from)?;
8358 }
8359 if let Some(ref val) = self.paper_src {
8360 val.write_element("w:paperSrc", writer)?;
8361 }
8362 #[cfg(feature = "extra-children")]
8363 {
8364 emit_idx += 1;
8365 }
8366 #[cfg(feature = "extra-children")]
8367 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8368 extra_iter
8369 .next()
8370 .unwrap()
8371 .node
8372 .write_to(writer)
8373 .map_err(SerializeError::from)?;
8374 }
8375 if let Some(ref val) = self.pg_borders {
8376 val.write_element("w:pgBorders", writer)?;
8377 }
8378 #[cfg(feature = "extra-children")]
8379 {
8380 emit_idx += 1;
8381 }
8382 #[cfg(feature = "extra-children")]
8383 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8384 extra_iter
8385 .next()
8386 .unwrap()
8387 .node
8388 .write_to(writer)
8389 .map_err(SerializeError::from)?;
8390 }
8391 if let Some(ref val) = self.ln_num_type {
8392 val.write_element("w:lnNumType", writer)?;
8393 }
8394 #[cfg(feature = "extra-children")]
8395 {
8396 emit_idx += 1;
8397 }
8398 #[cfg(feature = "extra-children")]
8399 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8400 extra_iter
8401 .next()
8402 .unwrap()
8403 .node
8404 .write_to(writer)
8405 .map_err(SerializeError::from)?;
8406 }
8407 if let Some(ref val) = self.pg_num_type {
8408 val.write_element("w:pgNumType", writer)?;
8409 }
8410 #[cfg(feature = "extra-children")]
8411 {
8412 emit_idx += 1;
8413 }
8414 #[cfg(feature = "extra-children")]
8415 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8416 extra_iter
8417 .next()
8418 .unwrap()
8419 .node
8420 .write_to(writer)
8421 .map_err(SerializeError::from)?;
8422 }
8423 if let Some(ref val) = self.cols {
8424 val.write_element("w:cols", writer)?;
8425 }
8426 #[cfg(feature = "extra-children")]
8427 {
8428 emit_idx += 1;
8429 }
8430 #[cfg(feature = "extra-children")]
8431 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8432 extra_iter
8433 .next()
8434 .unwrap()
8435 .node
8436 .write_to(writer)
8437 .map_err(SerializeError::from)?;
8438 }
8439 if let Some(ref val) = self.form_prot {
8440 val.write_element("w:formProt", writer)?;
8441 }
8442 #[cfg(feature = "extra-children")]
8443 {
8444 emit_idx += 1;
8445 }
8446 #[cfg(feature = "extra-children")]
8447 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8448 extra_iter
8449 .next()
8450 .unwrap()
8451 .node
8452 .write_to(writer)
8453 .map_err(SerializeError::from)?;
8454 }
8455 if let Some(ref val) = self.v_align {
8456 val.write_element("w:vAlign", writer)?;
8457 }
8458 #[cfg(feature = "extra-children")]
8459 {
8460 emit_idx += 1;
8461 }
8462 #[cfg(feature = "extra-children")]
8463 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8464 extra_iter
8465 .next()
8466 .unwrap()
8467 .node
8468 .write_to(writer)
8469 .map_err(SerializeError::from)?;
8470 }
8471 if let Some(ref val) = self.no_endnote {
8472 val.write_element("w:noEndnote", writer)?;
8473 }
8474 #[cfg(feature = "extra-children")]
8475 {
8476 emit_idx += 1;
8477 }
8478 #[cfg(feature = "extra-children")]
8479 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8480 extra_iter
8481 .next()
8482 .unwrap()
8483 .node
8484 .write_to(writer)
8485 .map_err(SerializeError::from)?;
8486 }
8487 if let Some(ref val) = self.title_pg {
8488 val.write_element("w:titlePg", writer)?;
8489 }
8490 #[cfg(feature = "extra-children")]
8491 {
8492 emit_idx += 1;
8493 }
8494 #[cfg(feature = "extra-children")]
8495 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8496 extra_iter
8497 .next()
8498 .unwrap()
8499 .node
8500 .write_to(writer)
8501 .map_err(SerializeError::from)?;
8502 }
8503 if let Some(ref val) = self.text_direction {
8504 val.write_element("w:textDirection", writer)?;
8505 }
8506 #[cfg(feature = "extra-children")]
8507 {
8508 emit_idx += 1;
8509 }
8510 #[cfg(feature = "extra-children")]
8511 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8512 extra_iter
8513 .next()
8514 .unwrap()
8515 .node
8516 .write_to(writer)
8517 .map_err(SerializeError::from)?;
8518 }
8519 if let Some(ref val) = self.bidi {
8520 val.write_element("w:bidi", writer)?;
8521 }
8522 #[cfg(feature = "extra-children")]
8523 {
8524 emit_idx += 1;
8525 }
8526 #[cfg(feature = "extra-children")]
8527 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8528 extra_iter
8529 .next()
8530 .unwrap()
8531 .node
8532 .write_to(writer)
8533 .map_err(SerializeError::from)?;
8534 }
8535 if let Some(ref val) = self.rtl_gutter {
8536 val.write_element("w:rtlGutter", writer)?;
8537 }
8538 #[cfg(feature = "extra-children")]
8539 {
8540 emit_idx += 1;
8541 }
8542 #[cfg(feature = "extra-children")]
8543 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8544 extra_iter
8545 .next()
8546 .unwrap()
8547 .node
8548 .write_to(writer)
8549 .map_err(SerializeError::from)?;
8550 }
8551 if let Some(ref val) = self.doc_grid {
8552 val.write_element("w:docGrid", writer)?;
8553 }
8554 #[cfg(feature = "extra-children")]
8555 {
8556 emit_idx += 1;
8557 }
8558 #[cfg(feature = "extra-children")]
8559 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8560 extra_iter
8561 .next()
8562 .unwrap()
8563 .node
8564 .write_to(writer)
8565 .map_err(SerializeError::from)?;
8566 }
8567 if let Some(ref val) = self.printer_settings {
8568 val.write_element("w:printerSettings", writer)?;
8569 }
8570 #[cfg(feature = "extra-children")]
8571 {
8572 emit_idx += 1;
8573 }
8574 #[cfg(feature = "extra-children")]
8575 for extra in extra_iter {
8576 extra.node.write_to(writer).map_err(SerializeError::from)?;
8577 }
8578 Ok(())
8579 }
8580
8581 fn is_empty_element(&self) -> bool {
8582 if self.footnote_pr.is_some() {
8583 return false;
8584 }
8585 if self.endnote_pr.is_some() {
8586 return false;
8587 }
8588 if self.r#type.is_some() {
8589 return false;
8590 }
8591 if self.pg_sz.is_some() {
8592 return false;
8593 }
8594 if self.pg_mar.is_some() {
8595 return false;
8596 }
8597 if self.paper_src.is_some() {
8598 return false;
8599 }
8600 if self.pg_borders.is_some() {
8601 return false;
8602 }
8603 if self.ln_num_type.is_some() {
8604 return false;
8605 }
8606 if self.pg_num_type.is_some() {
8607 return false;
8608 }
8609 if self.cols.is_some() {
8610 return false;
8611 }
8612 if self.form_prot.is_some() {
8613 return false;
8614 }
8615 if self.v_align.is_some() {
8616 return false;
8617 }
8618 if self.no_endnote.is_some() {
8619 return false;
8620 }
8621 if self.title_pg.is_some() {
8622 return false;
8623 }
8624 if self.text_direction.is_some() {
8625 return false;
8626 }
8627 if self.bidi.is_some() {
8628 return false;
8629 }
8630 if self.rtl_gutter.is_some() {
8631 return false;
8632 }
8633 if self.doc_grid.is_some() {
8634 return false;
8635 }
8636 if self.printer_settings.is_some() {
8637 return false;
8638 }
8639 #[cfg(feature = "extra-children")]
8640 if !self.extra_children.is_empty() {
8641 return false;
8642 }
8643 true
8644 }
8645}
8646
8647impl ToXml for SectionProperties {
8648 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8649 #[allow(unused_mut)]
8650 let mut start = start;
8651 #[cfg(feature = "wml-track-changes")]
8652 if let Some(ref val) = self.rsid_r_pr {
8653 {
8654 let hex = encode_hex(val);
8655 start.push_attribute(("w:rsidRPr", hex.as_str()));
8656 }
8657 }
8658 #[cfg(feature = "wml-track-changes")]
8659 if let Some(ref val) = self.rsid_del {
8660 {
8661 let hex = encode_hex(val);
8662 start.push_attribute(("w:rsidDel", hex.as_str()));
8663 }
8664 }
8665 #[cfg(feature = "wml-track-changes")]
8666 if let Some(ref val) = self.rsid_r {
8667 {
8668 let hex = encode_hex(val);
8669 start.push_attribute(("w:rsidR", hex.as_str()));
8670 }
8671 }
8672 #[cfg(feature = "wml-track-changes")]
8673 if let Some(ref val) = self.rsid_sect {
8674 {
8675 let hex = encode_hex(val);
8676 start.push_attribute(("w:rsidSect", hex.as_str()));
8677 }
8678 }
8679 #[cfg(feature = "extra-attrs")]
8680 for (key, value) in &self.extra_attrs {
8681 start.push_attribute((key.as_str(), value.as_str()));
8682 }
8683 start
8684 }
8685
8686 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8687 #[cfg(feature = "extra-children")]
8688 let mut extra_iter = self.extra_children.iter().peekable();
8689 #[cfg(feature = "extra-children")]
8690 let mut emit_idx: usize = 0;
8691 for item in &self.header_footer_refs {
8692 #[cfg(feature = "extra-children")]
8693 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8694 extra_iter
8695 .next()
8696 .unwrap()
8697 .node
8698 .write_to(writer)
8699 .map_err(SerializeError::from)?;
8700 }
8701 item.write_element("", writer)?;
8702 #[cfg(feature = "extra-children")]
8703 {
8704 emit_idx += 1;
8705 }
8706 }
8707 #[cfg(feature = "extra-children")]
8708 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8709 extra_iter
8710 .next()
8711 .unwrap()
8712 .node
8713 .write_to(writer)
8714 .map_err(SerializeError::from)?;
8715 }
8716 #[cfg(feature = "wml-comments")]
8717 if let Some(ref val) = self.footnote_pr {
8718 val.write_element("w:footnotePr", writer)?;
8719 }
8720 #[cfg(feature = "extra-children")]
8721 {
8722 emit_idx += 1;
8723 }
8724 #[cfg(feature = "extra-children")]
8725 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8726 extra_iter
8727 .next()
8728 .unwrap()
8729 .node
8730 .write_to(writer)
8731 .map_err(SerializeError::from)?;
8732 }
8733 #[cfg(feature = "wml-comments")]
8734 if let Some(ref val) = self.endnote_pr {
8735 val.write_element("w:endnotePr", writer)?;
8736 }
8737 #[cfg(feature = "extra-children")]
8738 {
8739 emit_idx += 1;
8740 }
8741 #[cfg(feature = "extra-children")]
8742 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8743 extra_iter
8744 .next()
8745 .unwrap()
8746 .node
8747 .write_to(writer)
8748 .map_err(SerializeError::from)?;
8749 }
8750 #[cfg(feature = "wml-layout")]
8751 if let Some(ref val) = self.r#type {
8752 val.write_element("w:type", writer)?;
8753 }
8754 #[cfg(feature = "extra-children")]
8755 {
8756 emit_idx += 1;
8757 }
8758 #[cfg(feature = "extra-children")]
8759 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8760 extra_iter
8761 .next()
8762 .unwrap()
8763 .node
8764 .write_to(writer)
8765 .map_err(SerializeError::from)?;
8766 }
8767 #[cfg(feature = "wml-layout")]
8768 if let Some(ref val) = self.pg_sz {
8769 val.write_element("w:pgSz", writer)?;
8770 }
8771 #[cfg(feature = "extra-children")]
8772 {
8773 emit_idx += 1;
8774 }
8775 #[cfg(feature = "extra-children")]
8776 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8777 extra_iter
8778 .next()
8779 .unwrap()
8780 .node
8781 .write_to(writer)
8782 .map_err(SerializeError::from)?;
8783 }
8784 #[cfg(feature = "wml-layout")]
8785 if let Some(ref val) = self.pg_mar {
8786 val.write_element("w:pgMar", writer)?;
8787 }
8788 #[cfg(feature = "extra-children")]
8789 {
8790 emit_idx += 1;
8791 }
8792 #[cfg(feature = "extra-children")]
8793 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8794 extra_iter
8795 .next()
8796 .unwrap()
8797 .node
8798 .write_to(writer)
8799 .map_err(SerializeError::from)?;
8800 }
8801 #[cfg(feature = "wml-layout")]
8802 if let Some(ref val) = self.paper_src {
8803 val.write_element("w:paperSrc", writer)?;
8804 }
8805 #[cfg(feature = "extra-children")]
8806 {
8807 emit_idx += 1;
8808 }
8809 #[cfg(feature = "extra-children")]
8810 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8811 extra_iter
8812 .next()
8813 .unwrap()
8814 .node
8815 .write_to(writer)
8816 .map_err(SerializeError::from)?;
8817 }
8818 #[cfg(feature = "wml-layout")]
8819 if let Some(ref val) = self.pg_borders {
8820 val.write_element("w:pgBorders", writer)?;
8821 }
8822 #[cfg(feature = "extra-children")]
8823 {
8824 emit_idx += 1;
8825 }
8826 #[cfg(feature = "extra-children")]
8827 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8828 extra_iter
8829 .next()
8830 .unwrap()
8831 .node
8832 .write_to(writer)
8833 .map_err(SerializeError::from)?;
8834 }
8835 #[cfg(feature = "wml-layout")]
8836 if let Some(ref val) = self.ln_num_type {
8837 val.write_element("w:lnNumType", writer)?;
8838 }
8839 #[cfg(feature = "extra-children")]
8840 {
8841 emit_idx += 1;
8842 }
8843 #[cfg(feature = "extra-children")]
8844 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8845 extra_iter
8846 .next()
8847 .unwrap()
8848 .node
8849 .write_to(writer)
8850 .map_err(SerializeError::from)?;
8851 }
8852 #[cfg(feature = "wml-layout")]
8853 if let Some(ref val) = self.pg_num_type {
8854 val.write_element("w:pgNumType", writer)?;
8855 }
8856 #[cfg(feature = "extra-children")]
8857 {
8858 emit_idx += 1;
8859 }
8860 #[cfg(feature = "extra-children")]
8861 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8862 extra_iter
8863 .next()
8864 .unwrap()
8865 .node
8866 .write_to(writer)
8867 .map_err(SerializeError::from)?;
8868 }
8869 #[cfg(feature = "wml-layout")]
8870 if let Some(ref val) = self.cols {
8871 val.write_element("w:cols", writer)?;
8872 }
8873 #[cfg(feature = "extra-children")]
8874 {
8875 emit_idx += 1;
8876 }
8877 #[cfg(feature = "extra-children")]
8878 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8879 extra_iter
8880 .next()
8881 .unwrap()
8882 .node
8883 .write_to(writer)
8884 .map_err(SerializeError::from)?;
8885 }
8886 #[cfg(feature = "wml-layout")]
8887 if let Some(ref val) = self.form_prot {
8888 val.write_element("w:formProt", writer)?;
8889 }
8890 #[cfg(feature = "extra-children")]
8891 {
8892 emit_idx += 1;
8893 }
8894 #[cfg(feature = "extra-children")]
8895 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8896 extra_iter
8897 .next()
8898 .unwrap()
8899 .node
8900 .write_to(writer)
8901 .map_err(SerializeError::from)?;
8902 }
8903 #[cfg(feature = "wml-layout")]
8904 if let Some(ref val) = self.v_align {
8905 val.write_element("w:vAlign", writer)?;
8906 }
8907 #[cfg(feature = "extra-children")]
8908 {
8909 emit_idx += 1;
8910 }
8911 #[cfg(feature = "extra-children")]
8912 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8913 extra_iter
8914 .next()
8915 .unwrap()
8916 .node
8917 .write_to(writer)
8918 .map_err(SerializeError::from)?;
8919 }
8920 #[cfg(feature = "wml-comments")]
8921 if let Some(ref val) = self.no_endnote {
8922 val.write_element("w:noEndnote", writer)?;
8923 }
8924 #[cfg(feature = "extra-children")]
8925 {
8926 emit_idx += 1;
8927 }
8928 #[cfg(feature = "extra-children")]
8929 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8930 extra_iter
8931 .next()
8932 .unwrap()
8933 .node
8934 .write_to(writer)
8935 .map_err(SerializeError::from)?;
8936 }
8937 #[cfg(feature = "wml-layout")]
8938 if let Some(ref val) = self.title_pg {
8939 val.write_element("w:titlePg", writer)?;
8940 }
8941 #[cfg(feature = "extra-children")]
8942 {
8943 emit_idx += 1;
8944 }
8945 #[cfg(feature = "extra-children")]
8946 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8947 extra_iter
8948 .next()
8949 .unwrap()
8950 .node
8951 .write_to(writer)
8952 .map_err(SerializeError::from)?;
8953 }
8954 #[cfg(feature = "wml-layout")]
8955 if let Some(ref val) = self.text_direction {
8956 val.write_element("w:textDirection", writer)?;
8957 }
8958 #[cfg(feature = "extra-children")]
8959 {
8960 emit_idx += 1;
8961 }
8962 #[cfg(feature = "extra-children")]
8963 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8964 extra_iter
8965 .next()
8966 .unwrap()
8967 .node
8968 .write_to(writer)
8969 .map_err(SerializeError::from)?;
8970 }
8971 #[cfg(feature = "wml-layout")]
8972 if let Some(ref val) = self.bidi {
8973 val.write_element("w:bidi", writer)?;
8974 }
8975 #[cfg(feature = "extra-children")]
8976 {
8977 emit_idx += 1;
8978 }
8979 #[cfg(feature = "extra-children")]
8980 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8981 extra_iter
8982 .next()
8983 .unwrap()
8984 .node
8985 .write_to(writer)
8986 .map_err(SerializeError::from)?;
8987 }
8988 #[cfg(feature = "wml-layout")]
8989 if let Some(ref val) = self.rtl_gutter {
8990 val.write_element("w:rtlGutter", writer)?;
8991 }
8992 #[cfg(feature = "extra-children")]
8993 {
8994 emit_idx += 1;
8995 }
8996 #[cfg(feature = "extra-children")]
8997 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8998 extra_iter
8999 .next()
9000 .unwrap()
9001 .node
9002 .write_to(writer)
9003 .map_err(SerializeError::from)?;
9004 }
9005 #[cfg(feature = "wml-layout")]
9006 if let Some(ref val) = self.doc_grid {
9007 val.write_element("w:docGrid", writer)?;
9008 }
9009 #[cfg(feature = "extra-children")]
9010 {
9011 emit_idx += 1;
9012 }
9013 #[cfg(feature = "extra-children")]
9014 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9015 extra_iter
9016 .next()
9017 .unwrap()
9018 .node
9019 .write_to(writer)
9020 .map_err(SerializeError::from)?;
9021 }
9022 #[cfg(feature = "wml-layout")]
9023 if let Some(ref val) = self.printer_settings {
9024 val.write_element("w:printerSettings", writer)?;
9025 }
9026 #[cfg(feature = "extra-children")]
9027 {
9028 emit_idx += 1;
9029 }
9030 #[cfg(feature = "extra-children")]
9031 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9032 extra_iter
9033 .next()
9034 .unwrap()
9035 .node
9036 .write_to(writer)
9037 .map_err(SerializeError::from)?;
9038 }
9039 #[cfg(feature = "wml-track-changes")]
9040 if let Some(ref val) = self.sect_pr_change {
9041 val.write_element("w:sectPrChange", writer)?;
9042 }
9043 #[cfg(feature = "extra-children")]
9044 {
9045 emit_idx += 1;
9046 }
9047 #[cfg(feature = "extra-children")]
9048 for extra in extra_iter {
9049 extra.node.write_to(writer).map_err(SerializeError::from)?;
9050 }
9051 Ok(())
9052 }
9053
9054 fn is_empty_element(&self) -> bool {
9055 if !self.header_footer_refs.is_empty() {
9056 return false;
9057 }
9058 #[cfg(feature = "wml-comments")]
9059 if self.footnote_pr.is_some() {
9060 return false;
9061 }
9062 #[cfg(feature = "wml-comments")]
9063 if self.endnote_pr.is_some() {
9064 return false;
9065 }
9066 #[cfg(feature = "wml-layout")]
9067 if self.r#type.is_some() {
9068 return false;
9069 }
9070 #[cfg(feature = "wml-layout")]
9071 if self.pg_sz.is_some() {
9072 return false;
9073 }
9074 #[cfg(feature = "wml-layout")]
9075 if self.pg_mar.is_some() {
9076 return false;
9077 }
9078 #[cfg(feature = "wml-layout")]
9079 if self.paper_src.is_some() {
9080 return false;
9081 }
9082 #[cfg(feature = "wml-layout")]
9083 if self.pg_borders.is_some() {
9084 return false;
9085 }
9086 #[cfg(feature = "wml-layout")]
9087 if self.ln_num_type.is_some() {
9088 return false;
9089 }
9090 #[cfg(feature = "wml-layout")]
9091 if self.pg_num_type.is_some() {
9092 return false;
9093 }
9094 #[cfg(feature = "wml-layout")]
9095 if self.cols.is_some() {
9096 return false;
9097 }
9098 #[cfg(feature = "wml-layout")]
9099 if self.form_prot.is_some() {
9100 return false;
9101 }
9102 #[cfg(feature = "wml-layout")]
9103 if self.v_align.is_some() {
9104 return false;
9105 }
9106 #[cfg(feature = "wml-comments")]
9107 if self.no_endnote.is_some() {
9108 return false;
9109 }
9110 #[cfg(feature = "wml-layout")]
9111 if self.title_pg.is_some() {
9112 return false;
9113 }
9114 #[cfg(feature = "wml-layout")]
9115 if self.text_direction.is_some() {
9116 return false;
9117 }
9118 #[cfg(feature = "wml-layout")]
9119 if self.bidi.is_some() {
9120 return false;
9121 }
9122 #[cfg(feature = "wml-layout")]
9123 if self.rtl_gutter.is_some() {
9124 return false;
9125 }
9126 #[cfg(feature = "wml-layout")]
9127 if self.doc_grid.is_some() {
9128 return false;
9129 }
9130 #[cfg(feature = "wml-layout")]
9131 if self.printer_settings.is_some() {
9132 return false;
9133 }
9134 #[cfg(feature = "wml-track-changes")]
9135 if self.sect_pr_change.is_some() {
9136 return false;
9137 }
9138 #[cfg(feature = "extra-children")]
9139 if !self.extra_children.is_empty() {
9140 return false;
9141 }
9142 true
9143 }
9144}
9145
9146impl ToXml for CTBr {
9147 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9148 #[allow(unused_mut)]
9149 let mut start = start;
9150 if let Some(ref val) = self.r#type {
9151 {
9152 let s = val.to_string();
9153 start.push_attribute(("w:type", s.as_str()));
9154 }
9155 }
9156 if let Some(ref val) = self.clear {
9157 {
9158 let s = val.to_string();
9159 start.push_attribute(("w:clear", s.as_str()));
9160 }
9161 }
9162 #[cfg(feature = "extra-attrs")]
9163 for (key, value) in &self.extra_attrs {
9164 start.push_attribute((key.as_str(), value.as_str()));
9165 }
9166 start
9167 }
9168
9169 fn is_empty_element(&self) -> bool {
9170 true
9171 }
9172}
9173
9174impl ToXml for CTPTab {
9175 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9176 #[allow(unused_mut)]
9177 let mut start = start;
9178 {
9179 let val = &self.alignment;
9180 {
9181 let s = val.to_string();
9182 start.push_attribute(("w:alignment", s.as_str()));
9183 }
9184 }
9185 {
9186 let val = &self.relative_to;
9187 {
9188 let s = val.to_string();
9189 start.push_attribute(("w:relativeTo", s.as_str()));
9190 }
9191 }
9192 #[cfg(feature = "wml-styling")]
9193 {
9194 let val = &self.leader;
9195 {
9196 let s = val.to_string();
9197 start.push_attribute(("w:leader", s.as_str()));
9198 }
9199 }
9200 #[cfg(feature = "extra-attrs")]
9201 for (key, value) in &self.extra_attrs {
9202 start.push_attribute((key.as_str(), value.as_str()));
9203 }
9204 start
9205 }
9206
9207 fn is_empty_element(&self) -> bool {
9208 true
9209 }
9210}
9211
9212impl ToXml for CTSym {
9213 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9214 #[allow(unused_mut)]
9215 let mut start = start;
9216 #[cfg(feature = "wml-styling")]
9217 if let Some(ref val) = self.font {
9218 start.push_attribute(("w:font", val.as_str()));
9219 }
9220 if let Some(ref val) = self.char {
9221 {
9222 let hex = encode_hex(val);
9223 start.push_attribute(("w:char", hex.as_str()));
9224 }
9225 }
9226 #[cfg(feature = "extra-attrs")]
9227 for (key, value) in &self.extra_attrs {
9228 start.push_attribute((key.as_str(), value.as_str()));
9229 }
9230 start
9231 }
9232
9233 fn is_empty_element(&self) -> bool {
9234 true
9235 }
9236}
9237
9238impl ToXml for CTProofErr {
9239 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9240 #[allow(unused_mut)]
9241 let mut start = start;
9242 {
9243 let val = &self.r#type;
9244 {
9245 let s = val.to_string();
9246 start.push_attribute(("w:type", s.as_str()));
9247 }
9248 }
9249 #[cfg(feature = "extra-attrs")]
9250 for (key, value) in &self.extra_attrs {
9251 start.push_attribute((key.as_str(), value.as_str()));
9252 }
9253 start
9254 }
9255
9256 fn is_empty_element(&self) -> bool {
9257 true
9258 }
9259}
9260
9261impl ToXml for CTPerm {
9262 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9263 #[allow(unused_mut)]
9264 let mut start = start;
9265 {
9266 let val = &self.id;
9267 start.push_attribute(("w:id", val.as_str()));
9268 }
9269 #[cfg(feature = "wml-settings")]
9270 if let Some(ref val) = self.displaced_by_custom_xml {
9271 {
9272 let s = val.to_string();
9273 start.push_attribute(("w:displacedByCustomXml", s.as_str()));
9274 }
9275 }
9276 #[cfg(feature = "extra-attrs")]
9277 for (key, value) in &self.extra_attrs {
9278 start.push_attribute((key.as_str(), value.as_str()));
9279 }
9280 start
9281 }
9282
9283 fn is_empty_element(&self) -> bool {
9284 true
9285 }
9286}
9287
9288impl ToXml for CTPermStart {
9289 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9290 #[allow(unused_mut)]
9291 let mut start = start;
9292 {
9293 let val = &self.id;
9294 start.push_attribute(("w:id", val.as_str()));
9295 }
9296 if let Some(ref val) = self.displaced_by_custom_xml {
9297 {
9298 let s = val.to_string();
9299 start.push_attribute(("w:displacedByCustomXml", s.as_str()));
9300 }
9301 }
9302 #[cfg(feature = "wml-settings")]
9303 if let Some(ref val) = self.ed_grp {
9304 {
9305 let s = val.to_string();
9306 start.push_attribute(("w:edGrp", s.as_str()));
9307 }
9308 }
9309 #[cfg(feature = "wml-settings")]
9310 if let Some(ref val) = self.ed {
9311 start.push_attribute(("w:ed", val.as_str()));
9312 }
9313 #[cfg(feature = "wml-tables")]
9314 if let Some(ref val) = self.col_first {
9315 {
9316 let s = val.to_string();
9317 start.push_attribute(("w:colFirst", s.as_str()));
9318 }
9319 }
9320 #[cfg(feature = "wml-tables")]
9321 if let Some(ref val) = self.col_last {
9322 {
9323 let s = val.to_string();
9324 start.push_attribute(("w:colLast", s.as_str()));
9325 }
9326 }
9327 #[cfg(feature = "extra-attrs")]
9328 for (key, value) in &self.extra_attrs {
9329 start.push_attribute((key.as_str(), value.as_str()));
9330 }
9331 start
9332 }
9333
9334 fn is_empty_element(&self) -> bool {
9335 true
9336 }
9337}
9338
9339impl ToXml for Text {
9340 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
9341 if let Some(ref text) = self.text {
9342 writer.write_event(Event::Text(BytesText::new(text)))?;
9343 }
9344 #[cfg(feature = "extra-children")]
9345 for extra in &self.extra_children {
9346 extra.node.write_to(writer).map_err(SerializeError::from)?;
9347 }
9348 Ok(())
9349 }
9350
9351 fn is_empty_element(&self) -> bool {
9352 if self.text.is_some() {
9353 return false;
9354 }
9355 #[cfg(feature = "extra-children")]
9356 if !self.extra_children.is_empty() {
9357 return false;
9358 }
9359 true
9360 }
9361}
9362
9363impl ToXml for RunContent {
9364 fn write_element<W: Write>(
9365 &self,
9366 _tag: &str,
9367 writer: &mut Writer<W>,
9368 ) -> Result<(), SerializeError> {
9369 match self {
9370 Self::Br(inner) => inner.write_element("w:br", writer)?,
9371 Self::T(inner) => inner.write_element("w:t", writer)?,
9372 Self::ContentPart(inner) => inner.write_element("w:contentPart", writer)?,
9373 Self::DelText(inner) => inner.write_element("w:delText", writer)?,
9374 Self::InstrText(inner) => inner.write_element("w:instrText", writer)?,
9375 Self::DelInstrText(inner) => inner.write_element("w:delInstrText", writer)?,
9376 Self::NoBreakHyphen(inner) => inner.write_element("w:noBreakHyphen", writer)?,
9377 Self::SoftHyphen(inner) => inner.write_element("w:softHyphen", writer)?,
9378 Self::DayShort(inner) => inner.write_element("w:dayShort", writer)?,
9379 Self::MonthShort(inner) => inner.write_element("w:monthShort", writer)?,
9380 Self::YearShort(inner) => inner.write_element("w:yearShort", writer)?,
9381 Self::DayLong(inner) => inner.write_element("w:dayLong", writer)?,
9382 Self::MonthLong(inner) => inner.write_element("w:monthLong", writer)?,
9383 Self::YearLong(inner) => inner.write_element("w:yearLong", writer)?,
9384 Self::AnnotationRef(inner) => inner.write_element("w:annotationRef", writer)?,
9385 Self::FootnoteRef(inner) => inner.write_element("w:footnoteRef", writer)?,
9386 Self::EndnoteRef(inner) => inner.write_element("w:endnoteRef", writer)?,
9387 Self::Separator(inner) => inner.write_element("w:separator", writer)?,
9388 Self::ContinuationSeparator(inner) => {
9389 inner.write_element("w:continuationSeparator", writer)?
9390 }
9391 Self::Sym(inner) => inner.write_element("w:sym", writer)?,
9392 Self::PgNum(inner) => inner.write_element("w:pgNum", writer)?,
9393 Self::Cr(inner) => inner.write_element("w:cr", writer)?,
9394 Self::Tab(inner) => inner.write_element("w:tab", writer)?,
9395 Self::Object(inner) => inner.write_element("w:object", writer)?,
9396 Self::Pict(inner) => inner.write_element("w:pict", writer)?,
9397 Self::FldChar(inner) => inner.write_element("w:fldChar", writer)?,
9398 Self::Ruby(inner) => inner.write_element("w:ruby", writer)?,
9399 Self::FootnoteReference(inner) => inner.write_element("w:footnoteReference", writer)?,
9400 Self::EndnoteReference(inner) => inner.write_element("w:endnoteReference", writer)?,
9401 Self::CommentReference(inner) => inner.write_element("w:commentReference", writer)?,
9402 Self::Drawing(inner) => inner.write_element("w:drawing", writer)?,
9403 Self::Ptab(inner) => inner.write_element("w:ptab", writer)?,
9404 Self::LastRenderedPageBreak(inner) => {
9405 inner.write_element("w:lastRenderedPageBreak", writer)?
9406 }
9407 }
9408 Ok(())
9409 }
9410}
9411
9412impl ToXml for Run {
9413 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9414 #[allow(unused_mut)]
9415 let mut start = start;
9416 #[cfg(feature = "wml-track-changes")]
9417 if let Some(ref val) = self.rsid_r_pr {
9418 {
9419 let hex = encode_hex(val);
9420 start.push_attribute(("w:rsidRPr", hex.as_str()));
9421 }
9422 }
9423 #[cfg(feature = "wml-track-changes")]
9424 if let Some(ref val) = self.rsid_del {
9425 {
9426 let hex = encode_hex(val);
9427 start.push_attribute(("w:rsidDel", hex.as_str()));
9428 }
9429 }
9430 #[cfg(feature = "wml-track-changes")]
9431 if let Some(ref val) = self.rsid_r {
9432 {
9433 let hex = encode_hex(val);
9434 start.push_attribute(("w:rsidR", hex.as_str()));
9435 }
9436 }
9437 #[cfg(feature = "extra-attrs")]
9438 for (key, value) in &self.extra_attrs {
9439 start.push_attribute((key.as_str(), value.as_str()));
9440 }
9441 start
9442 }
9443
9444 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
9445 #[cfg(feature = "extra-children")]
9446 let mut extra_iter = self.extra_children.iter().peekable();
9447 #[cfg(feature = "extra-children")]
9448 let mut emit_idx: usize = 0;
9449 #[cfg(feature = "extra-children")]
9450 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9451 extra_iter
9452 .next()
9453 .unwrap()
9454 .node
9455 .write_to(writer)
9456 .map_err(SerializeError::from)?;
9457 }
9458 #[cfg(feature = "wml-styling")]
9459 if let Some(ref val) = self.r_pr {
9460 val.write_element("w:rPr", writer)?;
9461 }
9462 #[cfg(feature = "extra-children")]
9463 {
9464 emit_idx += 1;
9465 }
9466 for item in &self.run_content {
9467 #[cfg(feature = "extra-children")]
9468 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9469 extra_iter
9470 .next()
9471 .unwrap()
9472 .node
9473 .write_to(writer)
9474 .map_err(SerializeError::from)?;
9475 }
9476 item.write_element("", writer)?;
9477 #[cfg(feature = "extra-children")]
9478 {
9479 emit_idx += 1;
9480 }
9481 }
9482 #[cfg(feature = "extra-children")]
9483 for extra in extra_iter {
9484 extra.node.write_to(writer).map_err(SerializeError::from)?;
9485 }
9486 Ok(())
9487 }
9488
9489 fn is_empty_element(&self) -> bool {
9490 #[cfg(feature = "wml-styling")]
9491 if self.r_pr.is_some() {
9492 return false;
9493 }
9494 if !self.run_content.is_empty() {
9495 return false;
9496 }
9497 #[cfg(feature = "extra-children")]
9498 if !self.extra_children.is_empty() {
9499 return false;
9500 }
9501 true
9502 }
9503}
9504
9505impl ToXml for Fonts {
9506 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9507 #[allow(unused_mut)]
9508 let mut start = start;
9509 #[cfg(feature = "wml-styling")]
9510 if let Some(ref val) = self.hint {
9511 {
9512 let s = val.to_string();
9513 start.push_attribute(("w:hint", s.as_str()));
9514 }
9515 }
9516 #[cfg(feature = "wml-styling")]
9517 if let Some(ref val) = self.ascii {
9518 start.push_attribute(("w:ascii", val.as_str()));
9519 }
9520 #[cfg(feature = "wml-styling")]
9521 if let Some(ref val) = self.h_ansi {
9522 start.push_attribute(("w:hAnsi", val.as_str()));
9523 }
9524 #[cfg(feature = "wml-styling")]
9525 if let Some(ref val) = self.east_asia {
9526 start.push_attribute(("w:eastAsia", val.as_str()));
9527 }
9528 #[cfg(feature = "wml-styling")]
9529 if let Some(ref val) = self.cs {
9530 start.push_attribute(("w:cs", val.as_str()));
9531 }
9532 #[cfg(feature = "wml-styling")]
9533 if let Some(ref val) = self.ascii_theme {
9534 {
9535 let s = val.to_string();
9536 start.push_attribute(("w:asciiTheme", s.as_str()));
9537 }
9538 }
9539 #[cfg(feature = "wml-styling")]
9540 if let Some(ref val) = self.h_ansi_theme {
9541 {
9542 let s = val.to_string();
9543 start.push_attribute(("w:hAnsiTheme", s.as_str()));
9544 }
9545 }
9546 #[cfg(feature = "wml-styling")]
9547 if let Some(ref val) = self.east_asia_theme {
9548 {
9549 let s = val.to_string();
9550 start.push_attribute(("w:eastAsiaTheme", s.as_str()));
9551 }
9552 }
9553 #[cfg(feature = "wml-styling")]
9554 if let Some(ref val) = self.cstheme {
9555 {
9556 let s = val.to_string();
9557 start.push_attribute(("w:cstheme", s.as_str()));
9558 }
9559 }
9560 #[cfg(feature = "extra-attrs")]
9561 for (key, value) in &self.extra_attrs {
9562 start.push_attribute((key.as_str(), value.as_str()));
9563 }
9564 start
9565 }
9566
9567 fn is_empty_element(&self) -> bool {
9568 true
9569 }
9570}
9571
9572impl ToXml for EGRPrBase {
9573 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
9574 #[cfg(feature = "extra-children")]
9575 let mut extra_iter = self.extra_children.iter().peekable();
9576 #[cfg(feature = "extra-children")]
9577 let mut emit_idx: usize = 0;
9578 #[cfg(feature = "extra-children")]
9579 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9580 extra_iter
9581 .next()
9582 .unwrap()
9583 .node
9584 .write_to(writer)
9585 .map_err(SerializeError::from)?;
9586 }
9587 if let Some(ref val) = self.run_style {
9588 val.write_element("w:rStyle", writer)?;
9589 }
9590 #[cfg(feature = "extra-children")]
9591 {
9592 emit_idx += 1;
9593 }
9594 #[cfg(feature = "extra-children")]
9595 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9596 extra_iter
9597 .next()
9598 .unwrap()
9599 .node
9600 .write_to(writer)
9601 .map_err(SerializeError::from)?;
9602 }
9603 if let Some(ref val) = self.fonts {
9604 val.write_element("w:rFonts", writer)?;
9605 }
9606 #[cfg(feature = "extra-children")]
9607 {
9608 emit_idx += 1;
9609 }
9610 #[cfg(feature = "extra-children")]
9611 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9612 extra_iter
9613 .next()
9614 .unwrap()
9615 .node
9616 .write_to(writer)
9617 .map_err(SerializeError::from)?;
9618 }
9619 if let Some(ref val) = self.bold {
9620 val.write_element("w:b", writer)?;
9621 }
9622 #[cfg(feature = "extra-children")]
9623 {
9624 emit_idx += 1;
9625 }
9626 #[cfg(feature = "extra-children")]
9627 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9628 extra_iter
9629 .next()
9630 .unwrap()
9631 .node
9632 .write_to(writer)
9633 .map_err(SerializeError::from)?;
9634 }
9635 if let Some(ref val) = self.b_cs {
9636 val.write_element("w:bCs", writer)?;
9637 }
9638 #[cfg(feature = "extra-children")]
9639 {
9640 emit_idx += 1;
9641 }
9642 #[cfg(feature = "extra-children")]
9643 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9644 extra_iter
9645 .next()
9646 .unwrap()
9647 .node
9648 .write_to(writer)
9649 .map_err(SerializeError::from)?;
9650 }
9651 if let Some(ref val) = self.italic {
9652 val.write_element("w:i", writer)?;
9653 }
9654 #[cfg(feature = "extra-children")]
9655 {
9656 emit_idx += 1;
9657 }
9658 #[cfg(feature = "extra-children")]
9659 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9660 extra_iter
9661 .next()
9662 .unwrap()
9663 .node
9664 .write_to(writer)
9665 .map_err(SerializeError::from)?;
9666 }
9667 if let Some(ref val) = self.i_cs {
9668 val.write_element("w:iCs", writer)?;
9669 }
9670 #[cfg(feature = "extra-children")]
9671 {
9672 emit_idx += 1;
9673 }
9674 #[cfg(feature = "extra-children")]
9675 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9676 extra_iter
9677 .next()
9678 .unwrap()
9679 .node
9680 .write_to(writer)
9681 .map_err(SerializeError::from)?;
9682 }
9683 if let Some(ref val) = self.caps {
9684 val.write_element("w:caps", writer)?;
9685 }
9686 #[cfg(feature = "extra-children")]
9687 {
9688 emit_idx += 1;
9689 }
9690 #[cfg(feature = "extra-children")]
9691 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9692 extra_iter
9693 .next()
9694 .unwrap()
9695 .node
9696 .write_to(writer)
9697 .map_err(SerializeError::from)?;
9698 }
9699 if let Some(ref val) = self.small_caps {
9700 val.write_element("w:smallCaps", writer)?;
9701 }
9702 #[cfg(feature = "extra-children")]
9703 {
9704 emit_idx += 1;
9705 }
9706 #[cfg(feature = "extra-children")]
9707 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9708 extra_iter
9709 .next()
9710 .unwrap()
9711 .node
9712 .write_to(writer)
9713 .map_err(SerializeError::from)?;
9714 }
9715 if let Some(ref val) = self.strikethrough {
9716 val.write_element("w:strike", writer)?;
9717 }
9718 #[cfg(feature = "extra-children")]
9719 {
9720 emit_idx += 1;
9721 }
9722 #[cfg(feature = "extra-children")]
9723 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9724 extra_iter
9725 .next()
9726 .unwrap()
9727 .node
9728 .write_to(writer)
9729 .map_err(SerializeError::from)?;
9730 }
9731 if let Some(ref val) = self.dstrike {
9732 val.write_element("w:dstrike", writer)?;
9733 }
9734 #[cfg(feature = "extra-children")]
9735 {
9736 emit_idx += 1;
9737 }
9738 #[cfg(feature = "extra-children")]
9739 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9740 extra_iter
9741 .next()
9742 .unwrap()
9743 .node
9744 .write_to(writer)
9745 .map_err(SerializeError::from)?;
9746 }
9747 if let Some(ref val) = self.outline {
9748 val.write_element("w:outline", writer)?;
9749 }
9750 #[cfg(feature = "extra-children")]
9751 {
9752 emit_idx += 1;
9753 }
9754 #[cfg(feature = "extra-children")]
9755 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9756 extra_iter
9757 .next()
9758 .unwrap()
9759 .node
9760 .write_to(writer)
9761 .map_err(SerializeError::from)?;
9762 }
9763 if let Some(ref val) = self.shadow {
9764 val.write_element("w:shadow", writer)?;
9765 }
9766 #[cfg(feature = "extra-children")]
9767 {
9768 emit_idx += 1;
9769 }
9770 #[cfg(feature = "extra-children")]
9771 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9772 extra_iter
9773 .next()
9774 .unwrap()
9775 .node
9776 .write_to(writer)
9777 .map_err(SerializeError::from)?;
9778 }
9779 if let Some(ref val) = self.emboss {
9780 val.write_element("w:emboss", writer)?;
9781 }
9782 #[cfg(feature = "extra-children")]
9783 {
9784 emit_idx += 1;
9785 }
9786 #[cfg(feature = "extra-children")]
9787 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9788 extra_iter
9789 .next()
9790 .unwrap()
9791 .node
9792 .write_to(writer)
9793 .map_err(SerializeError::from)?;
9794 }
9795 if let Some(ref val) = self.imprint {
9796 val.write_element("w:imprint", writer)?;
9797 }
9798 #[cfg(feature = "extra-children")]
9799 {
9800 emit_idx += 1;
9801 }
9802 #[cfg(feature = "extra-children")]
9803 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9804 extra_iter
9805 .next()
9806 .unwrap()
9807 .node
9808 .write_to(writer)
9809 .map_err(SerializeError::from)?;
9810 }
9811 if let Some(ref val) = self.no_proof {
9812 val.write_element("w:noProof", writer)?;
9813 }
9814 #[cfg(feature = "extra-children")]
9815 {
9816 emit_idx += 1;
9817 }
9818 #[cfg(feature = "extra-children")]
9819 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9820 extra_iter
9821 .next()
9822 .unwrap()
9823 .node
9824 .write_to(writer)
9825 .map_err(SerializeError::from)?;
9826 }
9827 if let Some(ref val) = self.snap_to_grid {
9828 val.write_element("w:snapToGrid", writer)?;
9829 }
9830 #[cfg(feature = "extra-children")]
9831 {
9832 emit_idx += 1;
9833 }
9834 #[cfg(feature = "extra-children")]
9835 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9836 extra_iter
9837 .next()
9838 .unwrap()
9839 .node
9840 .write_to(writer)
9841 .map_err(SerializeError::from)?;
9842 }
9843 if let Some(ref val) = self.vanish {
9844 val.write_element("w:vanish", writer)?;
9845 }
9846 #[cfg(feature = "extra-children")]
9847 {
9848 emit_idx += 1;
9849 }
9850 #[cfg(feature = "extra-children")]
9851 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9852 extra_iter
9853 .next()
9854 .unwrap()
9855 .node
9856 .write_to(writer)
9857 .map_err(SerializeError::from)?;
9858 }
9859 if let Some(ref val) = self.web_hidden {
9860 val.write_element("w:webHidden", writer)?;
9861 }
9862 #[cfg(feature = "extra-children")]
9863 {
9864 emit_idx += 1;
9865 }
9866 #[cfg(feature = "extra-children")]
9867 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9868 extra_iter
9869 .next()
9870 .unwrap()
9871 .node
9872 .write_to(writer)
9873 .map_err(SerializeError::from)?;
9874 }
9875 if let Some(ref val) = self.color {
9876 val.write_element("w:color", writer)?;
9877 }
9878 #[cfg(feature = "extra-children")]
9879 {
9880 emit_idx += 1;
9881 }
9882 #[cfg(feature = "extra-children")]
9883 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9884 extra_iter
9885 .next()
9886 .unwrap()
9887 .node
9888 .write_to(writer)
9889 .map_err(SerializeError::from)?;
9890 }
9891 if let Some(ref val) = self.spacing {
9892 val.write_element("w:spacing", writer)?;
9893 }
9894 #[cfg(feature = "extra-children")]
9895 {
9896 emit_idx += 1;
9897 }
9898 #[cfg(feature = "extra-children")]
9899 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9900 extra_iter
9901 .next()
9902 .unwrap()
9903 .node
9904 .write_to(writer)
9905 .map_err(SerializeError::from)?;
9906 }
9907 if let Some(ref val) = self.width {
9908 val.write_element("w:w", writer)?;
9909 }
9910 #[cfg(feature = "extra-children")]
9911 {
9912 emit_idx += 1;
9913 }
9914 #[cfg(feature = "extra-children")]
9915 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9916 extra_iter
9917 .next()
9918 .unwrap()
9919 .node
9920 .write_to(writer)
9921 .map_err(SerializeError::from)?;
9922 }
9923 if let Some(ref val) = self.kern {
9924 val.write_element("w:kern", writer)?;
9925 }
9926 #[cfg(feature = "extra-children")]
9927 {
9928 emit_idx += 1;
9929 }
9930 #[cfg(feature = "extra-children")]
9931 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9932 extra_iter
9933 .next()
9934 .unwrap()
9935 .node
9936 .write_to(writer)
9937 .map_err(SerializeError::from)?;
9938 }
9939 if let Some(ref val) = self.position {
9940 val.write_element("w:position", writer)?;
9941 }
9942 #[cfg(feature = "extra-children")]
9943 {
9944 emit_idx += 1;
9945 }
9946 #[cfg(feature = "extra-children")]
9947 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9948 extra_iter
9949 .next()
9950 .unwrap()
9951 .node
9952 .write_to(writer)
9953 .map_err(SerializeError::from)?;
9954 }
9955 if let Some(ref val) = self.size {
9956 val.write_element("w:sz", writer)?;
9957 }
9958 #[cfg(feature = "extra-children")]
9959 {
9960 emit_idx += 1;
9961 }
9962 #[cfg(feature = "extra-children")]
9963 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9964 extra_iter
9965 .next()
9966 .unwrap()
9967 .node
9968 .write_to(writer)
9969 .map_err(SerializeError::from)?;
9970 }
9971 if let Some(ref val) = self.size_complex_script {
9972 val.write_element("w:szCs", writer)?;
9973 }
9974 #[cfg(feature = "extra-children")]
9975 {
9976 emit_idx += 1;
9977 }
9978 #[cfg(feature = "extra-children")]
9979 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9980 extra_iter
9981 .next()
9982 .unwrap()
9983 .node
9984 .write_to(writer)
9985 .map_err(SerializeError::from)?;
9986 }
9987 if let Some(ref val) = self.highlight {
9988 val.write_element("w:highlight", writer)?;
9989 }
9990 #[cfg(feature = "extra-children")]
9991 {
9992 emit_idx += 1;
9993 }
9994 #[cfg(feature = "extra-children")]
9995 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9996 extra_iter
9997 .next()
9998 .unwrap()
9999 .node
10000 .write_to(writer)
10001 .map_err(SerializeError::from)?;
10002 }
10003 if let Some(ref val) = self.underline {
10004 val.write_element("w:u", writer)?;
10005 }
10006 #[cfg(feature = "extra-children")]
10007 {
10008 emit_idx += 1;
10009 }
10010 #[cfg(feature = "extra-children")]
10011 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10012 extra_iter
10013 .next()
10014 .unwrap()
10015 .node
10016 .write_to(writer)
10017 .map_err(SerializeError::from)?;
10018 }
10019 if let Some(ref val) = self.effect {
10020 val.write_element("w:effect", writer)?;
10021 }
10022 #[cfg(feature = "extra-children")]
10023 {
10024 emit_idx += 1;
10025 }
10026 #[cfg(feature = "extra-children")]
10027 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10028 extra_iter
10029 .next()
10030 .unwrap()
10031 .node
10032 .write_to(writer)
10033 .map_err(SerializeError::from)?;
10034 }
10035 if let Some(ref val) = self.bdr {
10036 val.write_element("w:bdr", writer)?;
10037 }
10038 #[cfg(feature = "extra-children")]
10039 {
10040 emit_idx += 1;
10041 }
10042 #[cfg(feature = "extra-children")]
10043 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10044 extra_iter
10045 .next()
10046 .unwrap()
10047 .node
10048 .write_to(writer)
10049 .map_err(SerializeError::from)?;
10050 }
10051 if let Some(ref val) = self.shading {
10052 val.write_element("w:shd", writer)?;
10053 }
10054 #[cfg(feature = "extra-children")]
10055 {
10056 emit_idx += 1;
10057 }
10058 #[cfg(feature = "extra-children")]
10059 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10060 extra_iter
10061 .next()
10062 .unwrap()
10063 .node
10064 .write_to(writer)
10065 .map_err(SerializeError::from)?;
10066 }
10067 if let Some(ref val) = self.fit_text {
10068 val.write_element("w:fitText", writer)?;
10069 }
10070 #[cfg(feature = "extra-children")]
10071 {
10072 emit_idx += 1;
10073 }
10074 #[cfg(feature = "extra-children")]
10075 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10076 extra_iter
10077 .next()
10078 .unwrap()
10079 .node
10080 .write_to(writer)
10081 .map_err(SerializeError::from)?;
10082 }
10083 if let Some(ref val) = self.vert_align {
10084 val.write_element("w:vertAlign", writer)?;
10085 }
10086 #[cfg(feature = "extra-children")]
10087 {
10088 emit_idx += 1;
10089 }
10090 #[cfg(feature = "extra-children")]
10091 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10092 extra_iter
10093 .next()
10094 .unwrap()
10095 .node
10096 .write_to(writer)
10097 .map_err(SerializeError::from)?;
10098 }
10099 if let Some(ref val) = self.rtl {
10100 val.write_element("w:rtl", writer)?;
10101 }
10102 #[cfg(feature = "extra-children")]
10103 {
10104 emit_idx += 1;
10105 }
10106 #[cfg(feature = "extra-children")]
10107 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10108 extra_iter
10109 .next()
10110 .unwrap()
10111 .node
10112 .write_to(writer)
10113 .map_err(SerializeError::from)?;
10114 }
10115 if let Some(ref val) = self.cs {
10116 val.write_element("w:cs", writer)?;
10117 }
10118 #[cfg(feature = "extra-children")]
10119 {
10120 emit_idx += 1;
10121 }
10122 #[cfg(feature = "extra-children")]
10123 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10124 extra_iter
10125 .next()
10126 .unwrap()
10127 .node
10128 .write_to(writer)
10129 .map_err(SerializeError::from)?;
10130 }
10131 if let Some(ref val) = self.em {
10132 val.write_element("w:em", writer)?;
10133 }
10134 #[cfg(feature = "extra-children")]
10135 {
10136 emit_idx += 1;
10137 }
10138 #[cfg(feature = "extra-children")]
10139 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10140 extra_iter
10141 .next()
10142 .unwrap()
10143 .node
10144 .write_to(writer)
10145 .map_err(SerializeError::from)?;
10146 }
10147 if let Some(ref val) = self.lang {
10148 val.write_element("w:lang", writer)?;
10149 }
10150 #[cfg(feature = "extra-children")]
10151 {
10152 emit_idx += 1;
10153 }
10154 #[cfg(feature = "extra-children")]
10155 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10156 extra_iter
10157 .next()
10158 .unwrap()
10159 .node
10160 .write_to(writer)
10161 .map_err(SerializeError::from)?;
10162 }
10163 if let Some(ref val) = self.east_asian_layout {
10164 val.write_element("w:eastAsianLayout", writer)?;
10165 }
10166 #[cfg(feature = "extra-children")]
10167 {
10168 emit_idx += 1;
10169 }
10170 #[cfg(feature = "extra-children")]
10171 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10172 extra_iter
10173 .next()
10174 .unwrap()
10175 .node
10176 .write_to(writer)
10177 .map_err(SerializeError::from)?;
10178 }
10179 if let Some(ref val) = self.spec_vanish {
10180 val.write_element("w:specVanish", writer)?;
10181 }
10182 #[cfg(feature = "extra-children")]
10183 {
10184 emit_idx += 1;
10185 }
10186 #[cfg(feature = "extra-children")]
10187 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10188 extra_iter
10189 .next()
10190 .unwrap()
10191 .node
10192 .write_to(writer)
10193 .map_err(SerializeError::from)?;
10194 }
10195 if let Some(ref val) = self.o_math {
10196 val.write_element("w:oMath", writer)?;
10197 }
10198 #[cfg(feature = "extra-children")]
10199 {
10200 emit_idx += 1;
10201 }
10202 #[cfg(feature = "extra-children")]
10203 for extra in extra_iter {
10204 extra.node.write_to(writer).map_err(SerializeError::from)?;
10205 }
10206 Ok(())
10207 }
10208
10209 fn is_empty_element(&self) -> bool {
10210 if self.run_style.is_some() {
10211 return false;
10212 }
10213 if self.fonts.is_some() {
10214 return false;
10215 }
10216 if self.bold.is_some() {
10217 return false;
10218 }
10219 if self.b_cs.is_some() {
10220 return false;
10221 }
10222 if self.italic.is_some() {
10223 return false;
10224 }
10225 if self.i_cs.is_some() {
10226 return false;
10227 }
10228 if self.caps.is_some() {
10229 return false;
10230 }
10231 if self.small_caps.is_some() {
10232 return false;
10233 }
10234 if self.strikethrough.is_some() {
10235 return false;
10236 }
10237 if self.dstrike.is_some() {
10238 return false;
10239 }
10240 if self.outline.is_some() {
10241 return false;
10242 }
10243 if self.shadow.is_some() {
10244 return false;
10245 }
10246 if self.emboss.is_some() {
10247 return false;
10248 }
10249 if self.imprint.is_some() {
10250 return false;
10251 }
10252 if self.no_proof.is_some() {
10253 return false;
10254 }
10255 if self.snap_to_grid.is_some() {
10256 return false;
10257 }
10258 if self.vanish.is_some() {
10259 return false;
10260 }
10261 if self.web_hidden.is_some() {
10262 return false;
10263 }
10264 if self.color.is_some() {
10265 return false;
10266 }
10267 if self.spacing.is_some() {
10268 return false;
10269 }
10270 if self.width.is_some() {
10271 return false;
10272 }
10273 if self.kern.is_some() {
10274 return false;
10275 }
10276 if self.position.is_some() {
10277 return false;
10278 }
10279 if self.size.is_some() {
10280 return false;
10281 }
10282 if self.size_complex_script.is_some() {
10283 return false;
10284 }
10285 if self.highlight.is_some() {
10286 return false;
10287 }
10288 if self.underline.is_some() {
10289 return false;
10290 }
10291 if self.effect.is_some() {
10292 return false;
10293 }
10294 if self.bdr.is_some() {
10295 return false;
10296 }
10297 if self.shading.is_some() {
10298 return false;
10299 }
10300 if self.fit_text.is_some() {
10301 return false;
10302 }
10303 if self.vert_align.is_some() {
10304 return false;
10305 }
10306 if self.rtl.is_some() {
10307 return false;
10308 }
10309 if self.cs.is_some() {
10310 return false;
10311 }
10312 if self.em.is_some() {
10313 return false;
10314 }
10315 if self.lang.is_some() {
10316 return false;
10317 }
10318 if self.east_asian_layout.is_some() {
10319 return false;
10320 }
10321 if self.spec_vanish.is_some() {
10322 return false;
10323 }
10324 if self.o_math.is_some() {
10325 return false;
10326 }
10327 #[cfg(feature = "extra-children")]
10328 if !self.extra_children.is_empty() {
10329 return false;
10330 }
10331 true
10332 }
10333}
10334
10335impl ToXml for EGRPrContent {
10336 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
10337 #[cfg(feature = "extra-children")]
10338 let mut extra_iter = self.extra_children.iter().peekable();
10339 #[cfg(feature = "extra-children")]
10340 let mut emit_idx: usize = 0;
10341 #[cfg(feature = "extra-children")]
10342 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10343 extra_iter
10344 .next()
10345 .unwrap()
10346 .node
10347 .write_to(writer)
10348 .map_err(SerializeError::from)?;
10349 }
10350 if let Some(ref val) = self.run_style {
10351 val.write_element("w:rStyle", writer)?;
10352 }
10353 #[cfg(feature = "extra-children")]
10354 {
10355 emit_idx += 1;
10356 }
10357 #[cfg(feature = "extra-children")]
10358 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10359 extra_iter
10360 .next()
10361 .unwrap()
10362 .node
10363 .write_to(writer)
10364 .map_err(SerializeError::from)?;
10365 }
10366 if let Some(ref val) = self.fonts {
10367 val.write_element("w:rFonts", writer)?;
10368 }
10369 #[cfg(feature = "extra-children")]
10370 {
10371 emit_idx += 1;
10372 }
10373 #[cfg(feature = "extra-children")]
10374 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10375 extra_iter
10376 .next()
10377 .unwrap()
10378 .node
10379 .write_to(writer)
10380 .map_err(SerializeError::from)?;
10381 }
10382 if let Some(ref val) = self.bold {
10383 val.write_element("w:b", writer)?;
10384 }
10385 #[cfg(feature = "extra-children")]
10386 {
10387 emit_idx += 1;
10388 }
10389 #[cfg(feature = "extra-children")]
10390 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10391 extra_iter
10392 .next()
10393 .unwrap()
10394 .node
10395 .write_to(writer)
10396 .map_err(SerializeError::from)?;
10397 }
10398 if let Some(ref val) = self.b_cs {
10399 val.write_element("w:bCs", writer)?;
10400 }
10401 #[cfg(feature = "extra-children")]
10402 {
10403 emit_idx += 1;
10404 }
10405 #[cfg(feature = "extra-children")]
10406 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10407 extra_iter
10408 .next()
10409 .unwrap()
10410 .node
10411 .write_to(writer)
10412 .map_err(SerializeError::from)?;
10413 }
10414 if let Some(ref val) = self.italic {
10415 val.write_element("w:i", writer)?;
10416 }
10417 #[cfg(feature = "extra-children")]
10418 {
10419 emit_idx += 1;
10420 }
10421 #[cfg(feature = "extra-children")]
10422 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10423 extra_iter
10424 .next()
10425 .unwrap()
10426 .node
10427 .write_to(writer)
10428 .map_err(SerializeError::from)?;
10429 }
10430 if let Some(ref val) = self.i_cs {
10431 val.write_element("w:iCs", writer)?;
10432 }
10433 #[cfg(feature = "extra-children")]
10434 {
10435 emit_idx += 1;
10436 }
10437 #[cfg(feature = "extra-children")]
10438 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10439 extra_iter
10440 .next()
10441 .unwrap()
10442 .node
10443 .write_to(writer)
10444 .map_err(SerializeError::from)?;
10445 }
10446 if let Some(ref val) = self.caps {
10447 val.write_element("w:caps", writer)?;
10448 }
10449 #[cfg(feature = "extra-children")]
10450 {
10451 emit_idx += 1;
10452 }
10453 #[cfg(feature = "extra-children")]
10454 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10455 extra_iter
10456 .next()
10457 .unwrap()
10458 .node
10459 .write_to(writer)
10460 .map_err(SerializeError::from)?;
10461 }
10462 if let Some(ref val) = self.small_caps {
10463 val.write_element("w:smallCaps", writer)?;
10464 }
10465 #[cfg(feature = "extra-children")]
10466 {
10467 emit_idx += 1;
10468 }
10469 #[cfg(feature = "extra-children")]
10470 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10471 extra_iter
10472 .next()
10473 .unwrap()
10474 .node
10475 .write_to(writer)
10476 .map_err(SerializeError::from)?;
10477 }
10478 if let Some(ref val) = self.strikethrough {
10479 val.write_element("w:strike", writer)?;
10480 }
10481 #[cfg(feature = "extra-children")]
10482 {
10483 emit_idx += 1;
10484 }
10485 #[cfg(feature = "extra-children")]
10486 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10487 extra_iter
10488 .next()
10489 .unwrap()
10490 .node
10491 .write_to(writer)
10492 .map_err(SerializeError::from)?;
10493 }
10494 if let Some(ref val) = self.dstrike {
10495 val.write_element("w:dstrike", writer)?;
10496 }
10497 #[cfg(feature = "extra-children")]
10498 {
10499 emit_idx += 1;
10500 }
10501 #[cfg(feature = "extra-children")]
10502 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10503 extra_iter
10504 .next()
10505 .unwrap()
10506 .node
10507 .write_to(writer)
10508 .map_err(SerializeError::from)?;
10509 }
10510 if let Some(ref val) = self.outline {
10511 val.write_element("w:outline", writer)?;
10512 }
10513 #[cfg(feature = "extra-children")]
10514 {
10515 emit_idx += 1;
10516 }
10517 #[cfg(feature = "extra-children")]
10518 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10519 extra_iter
10520 .next()
10521 .unwrap()
10522 .node
10523 .write_to(writer)
10524 .map_err(SerializeError::from)?;
10525 }
10526 if let Some(ref val) = self.shadow {
10527 val.write_element("w:shadow", writer)?;
10528 }
10529 #[cfg(feature = "extra-children")]
10530 {
10531 emit_idx += 1;
10532 }
10533 #[cfg(feature = "extra-children")]
10534 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10535 extra_iter
10536 .next()
10537 .unwrap()
10538 .node
10539 .write_to(writer)
10540 .map_err(SerializeError::from)?;
10541 }
10542 if let Some(ref val) = self.emboss {
10543 val.write_element("w:emboss", writer)?;
10544 }
10545 #[cfg(feature = "extra-children")]
10546 {
10547 emit_idx += 1;
10548 }
10549 #[cfg(feature = "extra-children")]
10550 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10551 extra_iter
10552 .next()
10553 .unwrap()
10554 .node
10555 .write_to(writer)
10556 .map_err(SerializeError::from)?;
10557 }
10558 if let Some(ref val) = self.imprint {
10559 val.write_element("w:imprint", writer)?;
10560 }
10561 #[cfg(feature = "extra-children")]
10562 {
10563 emit_idx += 1;
10564 }
10565 #[cfg(feature = "extra-children")]
10566 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10567 extra_iter
10568 .next()
10569 .unwrap()
10570 .node
10571 .write_to(writer)
10572 .map_err(SerializeError::from)?;
10573 }
10574 if let Some(ref val) = self.no_proof {
10575 val.write_element("w:noProof", writer)?;
10576 }
10577 #[cfg(feature = "extra-children")]
10578 {
10579 emit_idx += 1;
10580 }
10581 #[cfg(feature = "extra-children")]
10582 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10583 extra_iter
10584 .next()
10585 .unwrap()
10586 .node
10587 .write_to(writer)
10588 .map_err(SerializeError::from)?;
10589 }
10590 if let Some(ref val) = self.snap_to_grid {
10591 val.write_element("w:snapToGrid", writer)?;
10592 }
10593 #[cfg(feature = "extra-children")]
10594 {
10595 emit_idx += 1;
10596 }
10597 #[cfg(feature = "extra-children")]
10598 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10599 extra_iter
10600 .next()
10601 .unwrap()
10602 .node
10603 .write_to(writer)
10604 .map_err(SerializeError::from)?;
10605 }
10606 if let Some(ref val) = self.vanish {
10607 val.write_element("w:vanish", writer)?;
10608 }
10609 #[cfg(feature = "extra-children")]
10610 {
10611 emit_idx += 1;
10612 }
10613 #[cfg(feature = "extra-children")]
10614 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10615 extra_iter
10616 .next()
10617 .unwrap()
10618 .node
10619 .write_to(writer)
10620 .map_err(SerializeError::from)?;
10621 }
10622 if let Some(ref val) = self.web_hidden {
10623 val.write_element("w:webHidden", writer)?;
10624 }
10625 #[cfg(feature = "extra-children")]
10626 {
10627 emit_idx += 1;
10628 }
10629 #[cfg(feature = "extra-children")]
10630 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10631 extra_iter
10632 .next()
10633 .unwrap()
10634 .node
10635 .write_to(writer)
10636 .map_err(SerializeError::from)?;
10637 }
10638 if let Some(ref val) = self.color {
10639 val.write_element("w:color", writer)?;
10640 }
10641 #[cfg(feature = "extra-children")]
10642 {
10643 emit_idx += 1;
10644 }
10645 #[cfg(feature = "extra-children")]
10646 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10647 extra_iter
10648 .next()
10649 .unwrap()
10650 .node
10651 .write_to(writer)
10652 .map_err(SerializeError::from)?;
10653 }
10654 if let Some(ref val) = self.spacing {
10655 val.write_element("w:spacing", writer)?;
10656 }
10657 #[cfg(feature = "extra-children")]
10658 {
10659 emit_idx += 1;
10660 }
10661 #[cfg(feature = "extra-children")]
10662 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10663 extra_iter
10664 .next()
10665 .unwrap()
10666 .node
10667 .write_to(writer)
10668 .map_err(SerializeError::from)?;
10669 }
10670 if let Some(ref val) = self.width {
10671 val.write_element("w:w", writer)?;
10672 }
10673 #[cfg(feature = "extra-children")]
10674 {
10675 emit_idx += 1;
10676 }
10677 #[cfg(feature = "extra-children")]
10678 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10679 extra_iter
10680 .next()
10681 .unwrap()
10682 .node
10683 .write_to(writer)
10684 .map_err(SerializeError::from)?;
10685 }
10686 if let Some(ref val) = self.kern {
10687 val.write_element("w:kern", writer)?;
10688 }
10689 #[cfg(feature = "extra-children")]
10690 {
10691 emit_idx += 1;
10692 }
10693 #[cfg(feature = "extra-children")]
10694 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10695 extra_iter
10696 .next()
10697 .unwrap()
10698 .node
10699 .write_to(writer)
10700 .map_err(SerializeError::from)?;
10701 }
10702 if let Some(ref val) = self.position {
10703 val.write_element("w:position", writer)?;
10704 }
10705 #[cfg(feature = "extra-children")]
10706 {
10707 emit_idx += 1;
10708 }
10709 #[cfg(feature = "extra-children")]
10710 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10711 extra_iter
10712 .next()
10713 .unwrap()
10714 .node
10715 .write_to(writer)
10716 .map_err(SerializeError::from)?;
10717 }
10718 if let Some(ref val) = self.size {
10719 val.write_element("w:sz", writer)?;
10720 }
10721 #[cfg(feature = "extra-children")]
10722 {
10723 emit_idx += 1;
10724 }
10725 #[cfg(feature = "extra-children")]
10726 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10727 extra_iter
10728 .next()
10729 .unwrap()
10730 .node
10731 .write_to(writer)
10732 .map_err(SerializeError::from)?;
10733 }
10734 if let Some(ref val) = self.size_complex_script {
10735 val.write_element("w:szCs", writer)?;
10736 }
10737 #[cfg(feature = "extra-children")]
10738 {
10739 emit_idx += 1;
10740 }
10741 #[cfg(feature = "extra-children")]
10742 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10743 extra_iter
10744 .next()
10745 .unwrap()
10746 .node
10747 .write_to(writer)
10748 .map_err(SerializeError::from)?;
10749 }
10750 if let Some(ref val) = self.highlight {
10751 val.write_element("w:highlight", writer)?;
10752 }
10753 #[cfg(feature = "extra-children")]
10754 {
10755 emit_idx += 1;
10756 }
10757 #[cfg(feature = "extra-children")]
10758 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10759 extra_iter
10760 .next()
10761 .unwrap()
10762 .node
10763 .write_to(writer)
10764 .map_err(SerializeError::from)?;
10765 }
10766 if let Some(ref val) = self.underline {
10767 val.write_element("w:u", writer)?;
10768 }
10769 #[cfg(feature = "extra-children")]
10770 {
10771 emit_idx += 1;
10772 }
10773 #[cfg(feature = "extra-children")]
10774 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10775 extra_iter
10776 .next()
10777 .unwrap()
10778 .node
10779 .write_to(writer)
10780 .map_err(SerializeError::from)?;
10781 }
10782 if let Some(ref val) = self.effect {
10783 val.write_element("w:effect", writer)?;
10784 }
10785 #[cfg(feature = "extra-children")]
10786 {
10787 emit_idx += 1;
10788 }
10789 #[cfg(feature = "extra-children")]
10790 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10791 extra_iter
10792 .next()
10793 .unwrap()
10794 .node
10795 .write_to(writer)
10796 .map_err(SerializeError::from)?;
10797 }
10798 if let Some(ref val) = self.bdr {
10799 val.write_element("w:bdr", writer)?;
10800 }
10801 #[cfg(feature = "extra-children")]
10802 {
10803 emit_idx += 1;
10804 }
10805 #[cfg(feature = "extra-children")]
10806 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10807 extra_iter
10808 .next()
10809 .unwrap()
10810 .node
10811 .write_to(writer)
10812 .map_err(SerializeError::from)?;
10813 }
10814 if let Some(ref val) = self.shading {
10815 val.write_element("w:shd", writer)?;
10816 }
10817 #[cfg(feature = "extra-children")]
10818 {
10819 emit_idx += 1;
10820 }
10821 #[cfg(feature = "extra-children")]
10822 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10823 extra_iter
10824 .next()
10825 .unwrap()
10826 .node
10827 .write_to(writer)
10828 .map_err(SerializeError::from)?;
10829 }
10830 if let Some(ref val) = self.fit_text {
10831 val.write_element("w:fitText", writer)?;
10832 }
10833 #[cfg(feature = "extra-children")]
10834 {
10835 emit_idx += 1;
10836 }
10837 #[cfg(feature = "extra-children")]
10838 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10839 extra_iter
10840 .next()
10841 .unwrap()
10842 .node
10843 .write_to(writer)
10844 .map_err(SerializeError::from)?;
10845 }
10846 if let Some(ref val) = self.vert_align {
10847 val.write_element("w:vertAlign", writer)?;
10848 }
10849 #[cfg(feature = "extra-children")]
10850 {
10851 emit_idx += 1;
10852 }
10853 #[cfg(feature = "extra-children")]
10854 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10855 extra_iter
10856 .next()
10857 .unwrap()
10858 .node
10859 .write_to(writer)
10860 .map_err(SerializeError::from)?;
10861 }
10862 if let Some(ref val) = self.rtl {
10863 val.write_element("w:rtl", writer)?;
10864 }
10865 #[cfg(feature = "extra-children")]
10866 {
10867 emit_idx += 1;
10868 }
10869 #[cfg(feature = "extra-children")]
10870 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10871 extra_iter
10872 .next()
10873 .unwrap()
10874 .node
10875 .write_to(writer)
10876 .map_err(SerializeError::from)?;
10877 }
10878 if let Some(ref val) = self.cs {
10879 val.write_element("w:cs", writer)?;
10880 }
10881 #[cfg(feature = "extra-children")]
10882 {
10883 emit_idx += 1;
10884 }
10885 #[cfg(feature = "extra-children")]
10886 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10887 extra_iter
10888 .next()
10889 .unwrap()
10890 .node
10891 .write_to(writer)
10892 .map_err(SerializeError::from)?;
10893 }
10894 if let Some(ref val) = self.em {
10895 val.write_element("w:em", writer)?;
10896 }
10897 #[cfg(feature = "extra-children")]
10898 {
10899 emit_idx += 1;
10900 }
10901 #[cfg(feature = "extra-children")]
10902 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10903 extra_iter
10904 .next()
10905 .unwrap()
10906 .node
10907 .write_to(writer)
10908 .map_err(SerializeError::from)?;
10909 }
10910 if let Some(ref val) = self.lang {
10911 val.write_element("w:lang", writer)?;
10912 }
10913 #[cfg(feature = "extra-children")]
10914 {
10915 emit_idx += 1;
10916 }
10917 #[cfg(feature = "extra-children")]
10918 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10919 extra_iter
10920 .next()
10921 .unwrap()
10922 .node
10923 .write_to(writer)
10924 .map_err(SerializeError::from)?;
10925 }
10926 if let Some(ref val) = self.east_asian_layout {
10927 val.write_element("w:eastAsianLayout", writer)?;
10928 }
10929 #[cfg(feature = "extra-children")]
10930 {
10931 emit_idx += 1;
10932 }
10933 #[cfg(feature = "extra-children")]
10934 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10935 extra_iter
10936 .next()
10937 .unwrap()
10938 .node
10939 .write_to(writer)
10940 .map_err(SerializeError::from)?;
10941 }
10942 if let Some(ref val) = self.spec_vanish {
10943 val.write_element("w:specVanish", writer)?;
10944 }
10945 #[cfg(feature = "extra-children")]
10946 {
10947 emit_idx += 1;
10948 }
10949 #[cfg(feature = "extra-children")]
10950 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10951 extra_iter
10952 .next()
10953 .unwrap()
10954 .node
10955 .write_to(writer)
10956 .map_err(SerializeError::from)?;
10957 }
10958 if let Some(ref val) = self.o_math {
10959 val.write_element("w:oMath", writer)?;
10960 }
10961 #[cfg(feature = "extra-children")]
10962 {
10963 emit_idx += 1;
10964 }
10965 #[cfg(feature = "extra-children")]
10966 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10967 extra_iter
10968 .next()
10969 .unwrap()
10970 .node
10971 .write_to(writer)
10972 .map_err(SerializeError::from)?;
10973 }
10974 if let Some(ref val) = self.r_pr_change {
10975 val.write_element("w:rPrChange", writer)?;
10976 }
10977 #[cfg(feature = "extra-children")]
10978 {
10979 emit_idx += 1;
10980 }
10981 #[cfg(feature = "extra-children")]
10982 for extra in extra_iter {
10983 extra.node.write_to(writer).map_err(SerializeError::from)?;
10984 }
10985 Ok(())
10986 }
10987
10988 fn is_empty_element(&self) -> bool {
10989 if self.run_style.is_some() {
10990 return false;
10991 }
10992 if self.fonts.is_some() {
10993 return false;
10994 }
10995 if self.bold.is_some() {
10996 return false;
10997 }
10998 if self.b_cs.is_some() {
10999 return false;
11000 }
11001 if self.italic.is_some() {
11002 return false;
11003 }
11004 if self.i_cs.is_some() {
11005 return false;
11006 }
11007 if self.caps.is_some() {
11008 return false;
11009 }
11010 if self.small_caps.is_some() {
11011 return false;
11012 }
11013 if self.strikethrough.is_some() {
11014 return false;
11015 }
11016 if self.dstrike.is_some() {
11017 return false;
11018 }
11019 if self.outline.is_some() {
11020 return false;
11021 }
11022 if self.shadow.is_some() {
11023 return false;
11024 }
11025 if self.emboss.is_some() {
11026 return false;
11027 }
11028 if self.imprint.is_some() {
11029 return false;
11030 }
11031 if self.no_proof.is_some() {
11032 return false;
11033 }
11034 if self.snap_to_grid.is_some() {
11035 return false;
11036 }
11037 if self.vanish.is_some() {
11038 return false;
11039 }
11040 if self.web_hidden.is_some() {
11041 return false;
11042 }
11043 if self.color.is_some() {
11044 return false;
11045 }
11046 if self.spacing.is_some() {
11047 return false;
11048 }
11049 if self.width.is_some() {
11050 return false;
11051 }
11052 if self.kern.is_some() {
11053 return false;
11054 }
11055 if self.position.is_some() {
11056 return false;
11057 }
11058 if self.size.is_some() {
11059 return false;
11060 }
11061 if self.size_complex_script.is_some() {
11062 return false;
11063 }
11064 if self.highlight.is_some() {
11065 return false;
11066 }
11067 if self.underline.is_some() {
11068 return false;
11069 }
11070 if self.effect.is_some() {
11071 return false;
11072 }
11073 if self.bdr.is_some() {
11074 return false;
11075 }
11076 if self.shading.is_some() {
11077 return false;
11078 }
11079 if self.fit_text.is_some() {
11080 return false;
11081 }
11082 if self.vert_align.is_some() {
11083 return false;
11084 }
11085 if self.rtl.is_some() {
11086 return false;
11087 }
11088 if self.cs.is_some() {
11089 return false;
11090 }
11091 if self.em.is_some() {
11092 return false;
11093 }
11094 if self.lang.is_some() {
11095 return false;
11096 }
11097 if self.east_asian_layout.is_some() {
11098 return false;
11099 }
11100 if self.spec_vanish.is_some() {
11101 return false;
11102 }
11103 if self.o_math.is_some() {
11104 return false;
11105 }
11106 if self.r_pr_change.is_some() {
11107 return false;
11108 }
11109 #[cfg(feature = "extra-children")]
11110 if !self.extra_children.is_empty() {
11111 return false;
11112 }
11113 true
11114 }
11115}
11116
11117impl ToXml for RunProperties {
11118 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
11119 #[cfg(feature = "extra-children")]
11120 let mut extra_iter = self.extra_children.iter().peekable();
11121 #[cfg(feature = "extra-children")]
11122 let mut emit_idx: usize = 0;
11123 #[cfg(feature = "extra-children")]
11124 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11125 extra_iter
11126 .next()
11127 .unwrap()
11128 .node
11129 .write_to(writer)
11130 .map_err(SerializeError::from)?;
11131 }
11132 if let Some(ref val) = self.run_style {
11133 val.write_element("w:rStyle", writer)?;
11134 }
11135 #[cfg(feature = "extra-children")]
11136 {
11137 emit_idx += 1;
11138 }
11139 #[cfg(feature = "extra-children")]
11140 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11141 extra_iter
11142 .next()
11143 .unwrap()
11144 .node
11145 .write_to(writer)
11146 .map_err(SerializeError::from)?;
11147 }
11148 #[cfg(feature = "wml-styling")]
11149 if let Some(ref val) = self.fonts {
11150 val.write_element("w:rFonts", writer)?;
11151 }
11152 #[cfg(feature = "extra-children")]
11153 {
11154 emit_idx += 1;
11155 }
11156 #[cfg(feature = "extra-children")]
11157 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11158 extra_iter
11159 .next()
11160 .unwrap()
11161 .node
11162 .write_to(writer)
11163 .map_err(SerializeError::from)?;
11164 }
11165 #[cfg(feature = "wml-styling")]
11166 if let Some(ref val) = self.bold {
11167 val.write_element("w:b", writer)?;
11168 }
11169 #[cfg(feature = "extra-children")]
11170 {
11171 emit_idx += 1;
11172 }
11173 #[cfg(feature = "extra-children")]
11174 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11175 extra_iter
11176 .next()
11177 .unwrap()
11178 .node
11179 .write_to(writer)
11180 .map_err(SerializeError::from)?;
11181 }
11182 #[cfg(feature = "wml-styling")]
11183 if let Some(ref val) = self.b_cs {
11184 val.write_element("w:bCs", writer)?;
11185 }
11186 #[cfg(feature = "extra-children")]
11187 {
11188 emit_idx += 1;
11189 }
11190 #[cfg(feature = "extra-children")]
11191 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11192 extra_iter
11193 .next()
11194 .unwrap()
11195 .node
11196 .write_to(writer)
11197 .map_err(SerializeError::from)?;
11198 }
11199 #[cfg(feature = "wml-styling")]
11200 if let Some(ref val) = self.italic {
11201 val.write_element("w:i", writer)?;
11202 }
11203 #[cfg(feature = "extra-children")]
11204 {
11205 emit_idx += 1;
11206 }
11207 #[cfg(feature = "extra-children")]
11208 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11209 extra_iter
11210 .next()
11211 .unwrap()
11212 .node
11213 .write_to(writer)
11214 .map_err(SerializeError::from)?;
11215 }
11216 #[cfg(feature = "wml-styling")]
11217 if let Some(ref val) = self.i_cs {
11218 val.write_element("w:iCs", writer)?;
11219 }
11220 #[cfg(feature = "extra-children")]
11221 {
11222 emit_idx += 1;
11223 }
11224 #[cfg(feature = "extra-children")]
11225 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11226 extra_iter
11227 .next()
11228 .unwrap()
11229 .node
11230 .write_to(writer)
11231 .map_err(SerializeError::from)?;
11232 }
11233 #[cfg(feature = "wml-styling")]
11234 if let Some(ref val) = self.caps {
11235 val.write_element("w:caps", writer)?;
11236 }
11237 #[cfg(feature = "extra-children")]
11238 {
11239 emit_idx += 1;
11240 }
11241 #[cfg(feature = "extra-children")]
11242 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11243 extra_iter
11244 .next()
11245 .unwrap()
11246 .node
11247 .write_to(writer)
11248 .map_err(SerializeError::from)?;
11249 }
11250 #[cfg(feature = "wml-styling")]
11251 if let Some(ref val) = self.small_caps {
11252 val.write_element("w:smallCaps", writer)?;
11253 }
11254 #[cfg(feature = "extra-children")]
11255 {
11256 emit_idx += 1;
11257 }
11258 #[cfg(feature = "extra-children")]
11259 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11260 extra_iter
11261 .next()
11262 .unwrap()
11263 .node
11264 .write_to(writer)
11265 .map_err(SerializeError::from)?;
11266 }
11267 #[cfg(feature = "wml-styling")]
11268 if let Some(ref val) = self.strikethrough {
11269 val.write_element("w:strike", writer)?;
11270 }
11271 #[cfg(feature = "extra-children")]
11272 {
11273 emit_idx += 1;
11274 }
11275 #[cfg(feature = "extra-children")]
11276 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11277 extra_iter
11278 .next()
11279 .unwrap()
11280 .node
11281 .write_to(writer)
11282 .map_err(SerializeError::from)?;
11283 }
11284 #[cfg(feature = "wml-styling")]
11285 if let Some(ref val) = self.dstrike {
11286 val.write_element("w:dstrike", writer)?;
11287 }
11288 #[cfg(feature = "extra-children")]
11289 {
11290 emit_idx += 1;
11291 }
11292 #[cfg(feature = "extra-children")]
11293 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11294 extra_iter
11295 .next()
11296 .unwrap()
11297 .node
11298 .write_to(writer)
11299 .map_err(SerializeError::from)?;
11300 }
11301 #[cfg(feature = "wml-styling")]
11302 if let Some(ref val) = self.outline {
11303 val.write_element("w:outline", writer)?;
11304 }
11305 #[cfg(feature = "extra-children")]
11306 {
11307 emit_idx += 1;
11308 }
11309 #[cfg(feature = "extra-children")]
11310 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11311 extra_iter
11312 .next()
11313 .unwrap()
11314 .node
11315 .write_to(writer)
11316 .map_err(SerializeError::from)?;
11317 }
11318 #[cfg(feature = "wml-styling")]
11319 if let Some(ref val) = self.shadow {
11320 val.write_element("w:shadow", writer)?;
11321 }
11322 #[cfg(feature = "extra-children")]
11323 {
11324 emit_idx += 1;
11325 }
11326 #[cfg(feature = "extra-children")]
11327 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11328 extra_iter
11329 .next()
11330 .unwrap()
11331 .node
11332 .write_to(writer)
11333 .map_err(SerializeError::from)?;
11334 }
11335 #[cfg(feature = "wml-styling")]
11336 if let Some(ref val) = self.emboss {
11337 val.write_element("w:emboss", writer)?;
11338 }
11339 #[cfg(feature = "extra-children")]
11340 {
11341 emit_idx += 1;
11342 }
11343 #[cfg(feature = "extra-children")]
11344 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11345 extra_iter
11346 .next()
11347 .unwrap()
11348 .node
11349 .write_to(writer)
11350 .map_err(SerializeError::from)?;
11351 }
11352 #[cfg(feature = "wml-styling")]
11353 if let Some(ref val) = self.imprint {
11354 val.write_element("w:imprint", writer)?;
11355 }
11356 #[cfg(feature = "extra-children")]
11357 {
11358 emit_idx += 1;
11359 }
11360 #[cfg(feature = "extra-children")]
11361 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11362 extra_iter
11363 .next()
11364 .unwrap()
11365 .node
11366 .write_to(writer)
11367 .map_err(SerializeError::from)?;
11368 }
11369 #[cfg(feature = "wml-styling")]
11370 if let Some(ref val) = self.no_proof {
11371 val.write_element("w:noProof", writer)?;
11372 }
11373 #[cfg(feature = "extra-children")]
11374 {
11375 emit_idx += 1;
11376 }
11377 #[cfg(feature = "extra-children")]
11378 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11379 extra_iter
11380 .next()
11381 .unwrap()
11382 .node
11383 .write_to(writer)
11384 .map_err(SerializeError::from)?;
11385 }
11386 #[cfg(feature = "wml-styling")]
11387 if let Some(ref val) = self.snap_to_grid {
11388 val.write_element("w:snapToGrid", writer)?;
11389 }
11390 #[cfg(feature = "extra-children")]
11391 {
11392 emit_idx += 1;
11393 }
11394 #[cfg(feature = "extra-children")]
11395 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11396 extra_iter
11397 .next()
11398 .unwrap()
11399 .node
11400 .write_to(writer)
11401 .map_err(SerializeError::from)?;
11402 }
11403 #[cfg(feature = "wml-styling")]
11404 if let Some(ref val) = self.vanish {
11405 val.write_element("w:vanish", writer)?;
11406 }
11407 #[cfg(feature = "extra-children")]
11408 {
11409 emit_idx += 1;
11410 }
11411 #[cfg(feature = "extra-children")]
11412 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11413 extra_iter
11414 .next()
11415 .unwrap()
11416 .node
11417 .write_to(writer)
11418 .map_err(SerializeError::from)?;
11419 }
11420 #[cfg(feature = "wml-styling")]
11421 if let Some(ref val) = self.web_hidden {
11422 val.write_element("w:webHidden", writer)?;
11423 }
11424 #[cfg(feature = "extra-children")]
11425 {
11426 emit_idx += 1;
11427 }
11428 #[cfg(feature = "extra-children")]
11429 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11430 extra_iter
11431 .next()
11432 .unwrap()
11433 .node
11434 .write_to(writer)
11435 .map_err(SerializeError::from)?;
11436 }
11437 #[cfg(feature = "wml-styling")]
11438 if let Some(ref val) = self.color {
11439 val.write_element("w:color", writer)?;
11440 }
11441 #[cfg(feature = "extra-children")]
11442 {
11443 emit_idx += 1;
11444 }
11445 #[cfg(feature = "extra-children")]
11446 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11447 extra_iter
11448 .next()
11449 .unwrap()
11450 .node
11451 .write_to(writer)
11452 .map_err(SerializeError::from)?;
11453 }
11454 #[cfg(feature = "wml-styling")]
11455 if let Some(ref val) = self.spacing {
11456 val.write_element("w:spacing", writer)?;
11457 }
11458 #[cfg(feature = "extra-children")]
11459 {
11460 emit_idx += 1;
11461 }
11462 #[cfg(feature = "extra-children")]
11463 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11464 extra_iter
11465 .next()
11466 .unwrap()
11467 .node
11468 .write_to(writer)
11469 .map_err(SerializeError::from)?;
11470 }
11471 #[cfg(feature = "wml-styling")]
11472 if let Some(ref val) = self.width {
11473 val.write_element("w:w", writer)?;
11474 }
11475 #[cfg(feature = "extra-children")]
11476 {
11477 emit_idx += 1;
11478 }
11479 #[cfg(feature = "extra-children")]
11480 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11481 extra_iter
11482 .next()
11483 .unwrap()
11484 .node
11485 .write_to(writer)
11486 .map_err(SerializeError::from)?;
11487 }
11488 #[cfg(feature = "wml-styling")]
11489 if let Some(ref val) = self.kern {
11490 val.write_element("w:kern", writer)?;
11491 }
11492 #[cfg(feature = "extra-children")]
11493 {
11494 emit_idx += 1;
11495 }
11496 #[cfg(feature = "extra-children")]
11497 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11498 extra_iter
11499 .next()
11500 .unwrap()
11501 .node
11502 .write_to(writer)
11503 .map_err(SerializeError::from)?;
11504 }
11505 #[cfg(feature = "wml-styling")]
11506 if let Some(ref val) = self.position {
11507 val.write_element("w:position", writer)?;
11508 }
11509 #[cfg(feature = "extra-children")]
11510 {
11511 emit_idx += 1;
11512 }
11513 #[cfg(feature = "extra-children")]
11514 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11515 extra_iter
11516 .next()
11517 .unwrap()
11518 .node
11519 .write_to(writer)
11520 .map_err(SerializeError::from)?;
11521 }
11522 #[cfg(feature = "wml-styling")]
11523 if let Some(ref val) = self.size {
11524 val.write_element("w:sz", writer)?;
11525 }
11526 #[cfg(feature = "extra-children")]
11527 {
11528 emit_idx += 1;
11529 }
11530 #[cfg(feature = "extra-children")]
11531 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11532 extra_iter
11533 .next()
11534 .unwrap()
11535 .node
11536 .write_to(writer)
11537 .map_err(SerializeError::from)?;
11538 }
11539 #[cfg(feature = "wml-styling")]
11540 if let Some(ref val) = self.size_complex_script {
11541 val.write_element("w:szCs", writer)?;
11542 }
11543 #[cfg(feature = "extra-children")]
11544 {
11545 emit_idx += 1;
11546 }
11547 #[cfg(feature = "extra-children")]
11548 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11549 extra_iter
11550 .next()
11551 .unwrap()
11552 .node
11553 .write_to(writer)
11554 .map_err(SerializeError::from)?;
11555 }
11556 #[cfg(feature = "wml-styling")]
11557 if let Some(ref val) = self.highlight {
11558 val.write_element("w:highlight", writer)?;
11559 }
11560 #[cfg(feature = "extra-children")]
11561 {
11562 emit_idx += 1;
11563 }
11564 #[cfg(feature = "extra-children")]
11565 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11566 extra_iter
11567 .next()
11568 .unwrap()
11569 .node
11570 .write_to(writer)
11571 .map_err(SerializeError::from)?;
11572 }
11573 #[cfg(feature = "wml-styling")]
11574 if let Some(ref val) = self.underline {
11575 val.write_element("w:u", writer)?;
11576 }
11577 #[cfg(feature = "extra-children")]
11578 {
11579 emit_idx += 1;
11580 }
11581 #[cfg(feature = "extra-children")]
11582 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11583 extra_iter
11584 .next()
11585 .unwrap()
11586 .node
11587 .write_to(writer)
11588 .map_err(SerializeError::from)?;
11589 }
11590 #[cfg(feature = "wml-styling")]
11591 if let Some(ref val) = self.effect {
11592 val.write_element("w:effect", writer)?;
11593 }
11594 #[cfg(feature = "extra-children")]
11595 {
11596 emit_idx += 1;
11597 }
11598 #[cfg(feature = "extra-children")]
11599 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11600 extra_iter
11601 .next()
11602 .unwrap()
11603 .node
11604 .write_to(writer)
11605 .map_err(SerializeError::from)?;
11606 }
11607 #[cfg(feature = "wml-styling")]
11608 if let Some(ref val) = self.bdr {
11609 val.write_element("w:bdr", writer)?;
11610 }
11611 #[cfg(feature = "extra-children")]
11612 {
11613 emit_idx += 1;
11614 }
11615 #[cfg(feature = "extra-children")]
11616 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11617 extra_iter
11618 .next()
11619 .unwrap()
11620 .node
11621 .write_to(writer)
11622 .map_err(SerializeError::from)?;
11623 }
11624 #[cfg(feature = "wml-styling")]
11625 if let Some(ref val) = self.shading {
11626 val.write_element("w:shd", writer)?;
11627 }
11628 #[cfg(feature = "extra-children")]
11629 {
11630 emit_idx += 1;
11631 }
11632 #[cfg(feature = "extra-children")]
11633 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11634 extra_iter
11635 .next()
11636 .unwrap()
11637 .node
11638 .write_to(writer)
11639 .map_err(SerializeError::from)?;
11640 }
11641 #[cfg(feature = "wml-styling")]
11642 if let Some(ref val) = self.fit_text {
11643 val.write_element("w:fitText", writer)?;
11644 }
11645 #[cfg(feature = "extra-children")]
11646 {
11647 emit_idx += 1;
11648 }
11649 #[cfg(feature = "extra-children")]
11650 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11651 extra_iter
11652 .next()
11653 .unwrap()
11654 .node
11655 .write_to(writer)
11656 .map_err(SerializeError::from)?;
11657 }
11658 #[cfg(feature = "wml-styling")]
11659 if let Some(ref val) = self.vert_align {
11660 val.write_element("w:vertAlign", writer)?;
11661 }
11662 #[cfg(feature = "extra-children")]
11663 {
11664 emit_idx += 1;
11665 }
11666 #[cfg(feature = "extra-children")]
11667 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11668 extra_iter
11669 .next()
11670 .unwrap()
11671 .node
11672 .write_to(writer)
11673 .map_err(SerializeError::from)?;
11674 }
11675 #[cfg(feature = "wml-styling")]
11676 if let Some(ref val) = self.rtl {
11677 val.write_element("w:rtl", writer)?;
11678 }
11679 #[cfg(feature = "extra-children")]
11680 {
11681 emit_idx += 1;
11682 }
11683 #[cfg(feature = "extra-children")]
11684 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11685 extra_iter
11686 .next()
11687 .unwrap()
11688 .node
11689 .write_to(writer)
11690 .map_err(SerializeError::from)?;
11691 }
11692 #[cfg(feature = "wml-styling")]
11693 if let Some(ref val) = self.cs {
11694 val.write_element("w:cs", writer)?;
11695 }
11696 #[cfg(feature = "extra-children")]
11697 {
11698 emit_idx += 1;
11699 }
11700 #[cfg(feature = "extra-children")]
11701 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11702 extra_iter
11703 .next()
11704 .unwrap()
11705 .node
11706 .write_to(writer)
11707 .map_err(SerializeError::from)?;
11708 }
11709 #[cfg(feature = "wml-styling")]
11710 if let Some(ref val) = self.em {
11711 val.write_element("w:em", writer)?;
11712 }
11713 #[cfg(feature = "extra-children")]
11714 {
11715 emit_idx += 1;
11716 }
11717 #[cfg(feature = "extra-children")]
11718 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11719 extra_iter
11720 .next()
11721 .unwrap()
11722 .node
11723 .write_to(writer)
11724 .map_err(SerializeError::from)?;
11725 }
11726 #[cfg(feature = "wml-styling")]
11727 if let Some(ref val) = self.lang {
11728 val.write_element("w:lang", writer)?;
11729 }
11730 #[cfg(feature = "extra-children")]
11731 {
11732 emit_idx += 1;
11733 }
11734 #[cfg(feature = "extra-children")]
11735 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11736 extra_iter
11737 .next()
11738 .unwrap()
11739 .node
11740 .write_to(writer)
11741 .map_err(SerializeError::from)?;
11742 }
11743 #[cfg(feature = "wml-styling")]
11744 if let Some(ref val) = self.east_asian_layout {
11745 val.write_element("w:eastAsianLayout", writer)?;
11746 }
11747 #[cfg(feature = "extra-children")]
11748 {
11749 emit_idx += 1;
11750 }
11751 #[cfg(feature = "extra-children")]
11752 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11753 extra_iter
11754 .next()
11755 .unwrap()
11756 .node
11757 .write_to(writer)
11758 .map_err(SerializeError::from)?;
11759 }
11760 #[cfg(feature = "wml-styling")]
11761 if let Some(ref val) = self.spec_vanish {
11762 val.write_element("w:specVanish", writer)?;
11763 }
11764 #[cfg(feature = "extra-children")]
11765 {
11766 emit_idx += 1;
11767 }
11768 #[cfg(feature = "extra-children")]
11769 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11770 extra_iter
11771 .next()
11772 .unwrap()
11773 .node
11774 .write_to(writer)
11775 .map_err(SerializeError::from)?;
11776 }
11777 #[cfg(feature = "wml-styling")]
11778 if let Some(ref val) = self.o_math {
11779 val.write_element("w:oMath", writer)?;
11780 }
11781 #[cfg(feature = "extra-children")]
11782 {
11783 emit_idx += 1;
11784 }
11785 #[cfg(feature = "extra-children")]
11786 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11787 extra_iter
11788 .next()
11789 .unwrap()
11790 .node
11791 .write_to(writer)
11792 .map_err(SerializeError::from)?;
11793 }
11794 #[cfg(feature = "wml-track-changes")]
11795 if let Some(ref val) = self.r_pr_change {
11796 val.write_element("w:rPrChange", writer)?;
11797 }
11798 #[cfg(feature = "extra-children")]
11799 {
11800 emit_idx += 1;
11801 }
11802 #[cfg(feature = "extra-children")]
11803 for extra in extra_iter {
11804 extra.node.write_to(writer).map_err(SerializeError::from)?;
11805 }
11806 Ok(())
11807 }
11808
11809 fn is_empty_element(&self) -> bool {
11810 if self.run_style.is_some() {
11811 return false;
11812 }
11813 #[cfg(feature = "wml-styling")]
11814 if self.fonts.is_some() {
11815 return false;
11816 }
11817 #[cfg(feature = "wml-styling")]
11818 if self.bold.is_some() {
11819 return false;
11820 }
11821 #[cfg(feature = "wml-styling")]
11822 if self.b_cs.is_some() {
11823 return false;
11824 }
11825 #[cfg(feature = "wml-styling")]
11826 if self.italic.is_some() {
11827 return false;
11828 }
11829 #[cfg(feature = "wml-styling")]
11830 if self.i_cs.is_some() {
11831 return false;
11832 }
11833 #[cfg(feature = "wml-styling")]
11834 if self.caps.is_some() {
11835 return false;
11836 }
11837 #[cfg(feature = "wml-styling")]
11838 if self.small_caps.is_some() {
11839 return false;
11840 }
11841 #[cfg(feature = "wml-styling")]
11842 if self.strikethrough.is_some() {
11843 return false;
11844 }
11845 #[cfg(feature = "wml-styling")]
11846 if self.dstrike.is_some() {
11847 return false;
11848 }
11849 #[cfg(feature = "wml-styling")]
11850 if self.outline.is_some() {
11851 return false;
11852 }
11853 #[cfg(feature = "wml-styling")]
11854 if self.shadow.is_some() {
11855 return false;
11856 }
11857 #[cfg(feature = "wml-styling")]
11858 if self.emboss.is_some() {
11859 return false;
11860 }
11861 #[cfg(feature = "wml-styling")]
11862 if self.imprint.is_some() {
11863 return false;
11864 }
11865 #[cfg(feature = "wml-styling")]
11866 if self.no_proof.is_some() {
11867 return false;
11868 }
11869 #[cfg(feature = "wml-styling")]
11870 if self.snap_to_grid.is_some() {
11871 return false;
11872 }
11873 #[cfg(feature = "wml-styling")]
11874 if self.vanish.is_some() {
11875 return false;
11876 }
11877 #[cfg(feature = "wml-styling")]
11878 if self.web_hidden.is_some() {
11879 return false;
11880 }
11881 #[cfg(feature = "wml-styling")]
11882 if self.color.is_some() {
11883 return false;
11884 }
11885 #[cfg(feature = "wml-styling")]
11886 if self.spacing.is_some() {
11887 return false;
11888 }
11889 #[cfg(feature = "wml-styling")]
11890 if self.width.is_some() {
11891 return false;
11892 }
11893 #[cfg(feature = "wml-styling")]
11894 if self.kern.is_some() {
11895 return false;
11896 }
11897 #[cfg(feature = "wml-styling")]
11898 if self.position.is_some() {
11899 return false;
11900 }
11901 #[cfg(feature = "wml-styling")]
11902 if self.size.is_some() {
11903 return false;
11904 }
11905 #[cfg(feature = "wml-styling")]
11906 if self.size_complex_script.is_some() {
11907 return false;
11908 }
11909 #[cfg(feature = "wml-styling")]
11910 if self.highlight.is_some() {
11911 return false;
11912 }
11913 #[cfg(feature = "wml-styling")]
11914 if self.underline.is_some() {
11915 return false;
11916 }
11917 #[cfg(feature = "wml-styling")]
11918 if self.effect.is_some() {
11919 return false;
11920 }
11921 #[cfg(feature = "wml-styling")]
11922 if self.bdr.is_some() {
11923 return false;
11924 }
11925 #[cfg(feature = "wml-styling")]
11926 if self.shading.is_some() {
11927 return false;
11928 }
11929 #[cfg(feature = "wml-styling")]
11930 if self.fit_text.is_some() {
11931 return false;
11932 }
11933 #[cfg(feature = "wml-styling")]
11934 if self.vert_align.is_some() {
11935 return false;
11936 }
11937 #[cfg(feature = "wml-styling")]
11938 if self.rtl.is_some() {
11939 return false;
11940 }
11941 #[cfg(feature = "wml-styling")]
11942 if self.cs.is_some() {
11943 return false;
11944 }
11945 #[cfg(feature = "wml-styling")]
11946 if self.em.is_some() {
11947 return false;
11948 }
11949 #[cfg(feature = "wml-styling")]
11950 if self.lang.is_some() {
11951 return false;
11952 }
11953 #[cfg(feature = "wml-styling")]
11954 if self.east_asian_layout.is_some() {
11955 return false;
11956 }
11957 #[cfg(feature = "wml-styling")]
11958 if self.spec_vanish.is_some() {
11959 return false;
11960 }
11961 #[cfg(feature = "wml-styling")]
11962 if self.o_math.is_some() {
11963 return false;
11964 }
11965 #[cfg(feature = "wml-track-changes")]
11966 if self.r_pr_change.is_some() {
11967 return false;
11968 }
11969 #[cfg(feature = "extra-children")]
11970 if !self.extra_children.is_empty() {
11971 return false;
11972 }
11973 true
11974 }
11975}
11976
11977impl ToXml for EGRPr {
11978 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
11979 #[cfg(feature = "extra-children")]
11980 let mut extra_iter = self.extra_children.iter().peekable();
11981 #[cfg(feature = "extra-children")]
11982 let mut emit_idx: usize = 0;
11983 #[cfg(feature = "extra-children")]
11984 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11985 extra_iter
11986 .next()
11987 .unwrap()
11988 .node
11989 .write_to(writer)
11990 .map_err(SerializeError::from)?;
11991 }
11992 if let Some(ref val) = self.r_pr {
11993 val.write_element("w:rPr", writer)?;
11994 }
11995 #[cfg(feature = "extra-children")]
11996 {
11997 emit_idx += 1;
11998 }
11999 #[cfg(feature = "extra-children")]
12000 for extra in extra_iter {
12001 extra.node.write_to(writer).map_err(SerializeError::from)?;
12002 }
12003 Ok(())
12004 }
12005
12006 fn is_empty_element(&self) -> bool {
12007 if self.r_pr.is_some() {
12008 return false;
12009 }
12010 #[cfg(feature = "extra-children")]
12011 if !self.extra_children.is_empty() {
12012 return false;
12013 }
12014 true
12015 }
12016}
12017
12018impl ToXml for MathRunProperties {
12019 fn write_element<W: Write>(
12020 &self,
12021 _tag: &str,
12022 writer: &mut Writer<W>,
12023 ) -> Result<(), SerializeError> {
12024 match self {
12025 Self::RPr(inner) => inner.write_element("w:rPr", writer)?,
12026 Self::Ins(inner) => inner.write_element("w:ins", writer)?,
12027 Self::Del(inner) => inner.write_element("w:del", writer)?,
12028 }
12029 Ok(())
12030 }
12031}
12032
12033impl ToXml for CTMathCtrlIns {
12034 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
12035 #[allow(unused_mut)]
12036 let mut start = start;
12037 {
12038 let val = &self.id;
12039 {
12040 let s = val.to_string();
12041 start.push_attribute(("w:id", s.as_str()));
12042 }
12043 }
12044 {
12045 let val = &self.author;
12046 start.push_attribute(("w:author", val.as_str()));
12047 }
12048 if let Some(ref val) = self.date {
12049 start.push_attribute(("w:date", val.as_str()));
12050 }
12051 #[cfg(feature = "extra-attrs")]
12052 for (key, value) in &self.extra_attrs {
12053 start.push_attribute((key.as_str(), value.as_str()));
12054 }
12055 start
12056 }
12057
12058 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
12059 #[cfg(feature = "extra-children")]
12060 let mut extra_iter = self.extra_children.iter().peekable();
12061 #[cfg(feature = "extra-children")]
12062 let mut emit_idx: usize = 0;
12063 #[cfg(feature = "extra-children")]
12064 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12065 extra_iter
12066 .next()
12067 .unwrap()
12068 .node
12069 .write_to(writer)
12070 .map_err(SerializeError::from)?;
12071 }
12072 #[cfg(feature = "wml-track-changes")]
12073 if let Some(ref val) = self.del {
12074 val.write_element("w:del", writer)?;
12075 }
12076 #[cfg(feature = "extra-children")]
12077 {
12078 emit_idx += 1;
12079 }
12080 #[cfg(feature = "extra-children")]
12081 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12082 extra_iter
12083 .next()
12084 .unwrap()
12085 .node
12086 .write_to(writer)
12087 .map_err(SerializeError::from)?;
12088 }
12089 #[cfg(feature = "wml-styling")]
12090 if let Some(ref val) = self.r_pr {
12091 val.write_element("w:rPr", writer)?;
12092 }
12093 #[cfg(feature = "extra-children")]
12094 {
12095 emit_idx += 1;
12096 }
12097 #[cfg(feature = "extra-children")]
12098 for extra in extra_iter {
12099 extra.node.write_to(writer).map_err(SerializeError::from)?;
12100 }
12101 Ok(())
12102 }
12103
12104 fn is_empty_element(&self) -> bool {
12105 #[cfg(feature = "wml-track-changes")]
12106 if self.del.is_some() {
12107 return false;
12108 }
12109 #[cfg(feature = "wml-styling")]
12110 if self.r_pr.is_some() {
12111 return false;
12112 }
12113 #[cfg(feature = "extra-children")]
12114 if !self.extra_children.is_empty() {
12115 return false;
12116 }
12117 true
12118 }
12119}
12120
12121impl ToXml for CTMathCtrlDel {
12122 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
12123 #[allow(unused_mut)]
12124 let mut start = start;
12125 {
12126 let val = &self.id;
12127 {
12128 let s = val.to_string();
12129 start.push_attribute(("w:id", s.as_str()));
12130 }
12131 }
12132 {
12133 let val = &self.author;
12134 start.push_attribute(("w:author", val.as_str()));
12135 }
12136 if let Some(ref val) = self.date {
12137 start.push_attribute(("w:date", val.as_str()));
12138 }
12139 #[cfg(feature = "extra-attrs")]
12140 for (key, value) in &self.extra_attrs {
12141 start.push_attribute((key.as_str(), value.as_str()));
12142 }
12143 start
12144 }
12145
12146 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
12147 #[cfg(feature = "extra-children")]
12148 let mut extra_iter = self.extra_children.iter().peekable();
12149 #[cfg(feature = "extra-children")]
12150 let mut emit_idx: usize = 0;
12151 #[cfg(feature = "extra-children")]
12152 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12153 extra_iter
12154 .next()
12155 .unwrap()
12156 .node
12157 .write_to(writer)
12158 .map_err(SerializeError::from)?;
12159 }
12160 #[cfg(feature = "wml-styling")]
12161 if let Some(ref val) = self.r_pr {
12162 val.write_element("w:rPr", writer)?;
12163 }
12164 #[cfg(feature = "extra-children")]
12165 {
12166 emit_idx += 1;
12167 }
12168 #[cfg(feature = "extra-children")]
12169 for extra in extra_iter {
12170 extra.node.write_to(writer).map_err(SerializeError::from)?;
12171 }
12172 Ok(())
12173 }
12174
12175 fn is_empty_element(&self) -> bool {
12176 #[cfg(feature = "wml-styling")]
12177 if self.r_pr.is_some() {
12178 return false;
12179 }
12180 #[cfg(feature = "extra-children")]
12181 if !self.extra_children.is_empty() {
12182 return false;
12183 }
12184 true
12185 }
12186}
12187
12188impl ToXml for CTRPrOriginal {
12189 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
12190 #[cfg(feature = "extra-children")]
12191 let mut extra_iter = self.extra_children.iter().peekable();
12192 #[cfg(feature = "extra-children")]
12193 let mut emit_idx: usize = 0;
12194 #[cfg(feature = "extra-children")]
12195 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12196 extra_iter
12197 .next()
12198 .unwrap()
12199 .node
12200 .write_to(writer)
12201 .map_err(SerializeError::from)?;
12202 }
12203 if let Some(ref val) = self.run_style {
12204 val.write_element("w:rStyle", writer)?;
12205 }
12206 #[cfg(feature = "extra-children")]
12207 {
12208 emit_idx += 1;
12209 }
12210 #[cfg(feature = "extra-children")]
12211 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12212 extra_iter
12213 .next()
12214 .unwrap()
12215 .node
12216 .write_to(writer)
12217 .map_err(SerializeError::from)?;
12218 }
12219 if let Some(ref val) = self.fonts {
12220 val.write_element("w:rFonts", writer)?;
12221 }
12222 #[cfg(feature = "extra-children")]
12223 {
12224 emit_idx += 1;
12225 }
12226 #[cfg(feature = "extra-children")]
12227 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12228 extra_iter
12229 .next()
12230 .unwrap()
12231 .node
12232 .write_to(writer)
12233 .map_err(SerializeError::from)?;
12234 }
12235 if let Some(ref val) = self.bold {
12236 val.write_element("w:b", writer)?;
12237 }
12238 #[cfg(feature = "extra-children")]
12239 {
12240 emit_idx += 1;
12241 }
12242 #[cfg(feature = "extra-children")]
12243 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12244 extra_iter
12245 .next()
12246 .unwrap()
12247 .node
12248 .write_to(writer)
12249 .map_err(SerializeError::from)?;
12250 }
12251 if let Some(ref val) = self.b_cs {
12252 val.write_element("w:bCs", writer)?;
12253 }
12254 #[cfg(feature = "extra-children")]
12255 {
12256 emit_idx += 1;
12257 }
12258 #[cfg(feature = "extra-children")]
12259 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12260 extra_iter
12261 .next()
12262 .unwrap()
12263 .node
12264 .write_to(writer)
12265 .map_err(SerializeError::from)?;
12266 }
12267 if let Some(ref val) = self.italic {
12268 val.write_element("w:i", writer)?;
12269 }
12270 #[cfg(feature = "extra-children")]
12271 {
12272 emit_idx += 1;
12273 }
12274 #[cfg(feature = "extra-children")]
12275 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12276 extra_iter
12277 .next()
12278 .unwrap()
12279 .node
12280 .write_to(writer)
12281 .map_err(SerializeError::from)?;
12282 }
12283 if let Some(ref val) = self.i_cs {
12284 val.write_element("w:iCs", writer)?;
12285 }
12286 #[cfg(feature = "extra-children")]
12287 {
12288 emit_idx += 1;
12289 }
12290 #[cfg(feature = "extra-children")]
12291 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12292 extra_iter
12293 .next()
12294 .unwrap()
12295 .node
12296 .write_to(writer)
12297 .map_err(SerializeError::from)?;
12298 }
12299 if let Some(ref val) = self.caps {
12300 val.write_element("w:caps", writer)?;
12301 }
12302 #[cfg(feature = "extra-children")]
12303 {
12304 emit_idx += 1;
12305 }
12306 #[cfg(feature = "extra-children")]
12307 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12308 extra_iter
12309 .next()
12310 .unwrap()
12311 .node
12312 .write_to(writer)
12313 .map_err(SerializeError::from)?;
12314 }
12315 if let Some(ref val) = self.small_caps {
12316 val.write_element("w:smallCaps", writer)?;
12317 }
12318 #[cfg(feature = "extra-children")]
12319 {
12320 emit_idx += 1;
12321 }
12322 #[cfg(feature = "extra-children")]
12323 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12324 extra_iter
12325 .next()
12326 .unwrap()
12327 .node
12328 .write_to(writer)
12329 .map_err(SerializeError::from)?;
12330 }
12331 if let Some(ref val) = self.strikethrough {
12332 val.write_element("w:strike", writer)?;
12333 }
12334 #[cfg(feature = "extra-children")]
12335 {
12336 emit_idx += 1;
12337 }
12338 #[cfg(feature = "extra-children")]
12339 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12340 extra_iter
12341 .next()
12342 .unwrap()
12343 .node
12344 .write_to(writer)
12345 .map_err(SerializeError::from)?;
12346 }
12347 if let Some(ref val) = self.dstrike {
12348 val.write_element("w:dstrike", writer)?;
12349 }
12350 #[cfg(feature = "extra-children")]
12351 {
12352 emit_idx += 1;
12353 }
12354 #[cfg(feature = "extra-children")]
12355 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12356 extra_iter
12357 .next()
12358 .unwrap()
12359 .node
12360 .write_to(writer)
12361 .map_err(SerializeError::from)?;
12362 }
12363 if let Some(ref val) = self.outline {
12364 val.write_element("w:outline", writer)?;
12365 }
12366 #[cfg(feature = "extra-children")]
12367 {
12368 emit_idx += 1;
12369 }
12370 #[cfg(feature = "extra-children")]
12371 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12372 extra_iter
12373 .next()
12374 .unwrap()
12375 .node
12376 .write_to(writer)
12377 .map_err(SerializeError::from)?;
12378 }
12379 if let Some(ref val) = self.shadow {
12380 val.write_element("w:shadow", writer)?;
12381 }
12382 #[cfg(feature = "extra-children")]
12383 {
12384 emit_idx += 1;
12385 }
12386 #[cfg(feature = "extra-children")]
12387 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12388 extra_iter
12389 .next()
12390 .unwrap()
12391 .node
12392 .write_to(writer)
12393 .map_err(SerializeError::from)?;
12394 }
12395 if let Some(ref val) = self.emboss {
12396 val.write_element("w:emboss", writer)?;
12397 }
12398 #[cfg(feature = "extra-children")]
12399 {
12400 emit_idx += 1;
12401 }
12402 #[cfg(feature = "extra-children")]
12403 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12404 extra_iter
12405 .next()
12406 .unwrap()
12407 .node
12408 .write_to(writer)
12409 .map_err(SerializeError::from)?;
12410 }
12411 if let Some(ref val) = self.imprint {
12412 val.write_element("w:imprint", writer)?;
12413 }
12414 #[cfg(feature = "extra-children")]
12415 {
12416 emit_idx += 1;
12417 }
12418 #[cfg(feature = "extra-children")]
12419 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12420 extra_iter
12421 .next()
12422 .unwrap()
12423 .node
12424 .write_to(writer)
12425 .map_err(SerializeError::from)?;
12426 }
12427 if let Some(ref val) = self.no_proof {
12428 val.write_element("w:noProof", writer)?;
12429 }
12430 #[cfg(feature = "extra-children")]
12431 {
12432 emit_idx += 1;
12433 }
12434 #[cfg(feature = "extra-children")]
12435 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12436 extra_iter
12437 .next()
12438 .unwrap()
12439 .node
12440 .write_to(writer)
12441 .map_err(SerializeError::from)?;
12442 }
12443 if let Some(ref val) = self.snap_to_grid {
12444 val.write_element("w:snapToGrid", writer)?;
12445 }
12446 #[cfg(feature = "extra-children")]
12447 {
12448 emit_idx += 1;
12449 }
12450 #[cfg(feature = "extra-children")]
12451 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12452 extra_iter
12453 .next()
12454 .unwrap()
12455 .node
12456 .write_to(writer)
12457 .map_err(SerializeError::from)?;
12458 }
12459 if let Some(ref val) = self.vanish {
12460 val.write_element("w:vanish", writer)?;
12461 }
12462 #[cfg(feature = "extra-children")]
12463 {
12464 emit_idx += 1;
12465 }
12466 #[cfg(feature = "extra-children")]
12467 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12468 extra_iter
12469 .next()
12470 .unwrap()
12471 .node
12472 .write_to(writer)
12473 .map_err(SerializeError::from)?;
12474 }
12475 if let Some(ref val) = self.web_hidden {
12476 val.write_element("w:webHidden", writer)?;
12477 }
12478 #[cfg(feature = "extra-children")]
12479 {
12480 emit_idx += 1;
12481 }
12482 #[cfg(feature = "extra-children")]
12483 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12484 extra_iter
12485 .next()
12486 .unwrap()
12487 .node
12488 .write_to(writer)
12489 .map_err(SerializeError::from)?;
12490 }
12491 if let Some(ref val) = self.color {
12492 val.write_element("w:color", writer)?;
12493 }
12494 #[cfg(feature = "extra-children")]
12495 {
12496 emit_idx += 1;
12497 }
12498 #[cfg(feature = "extra-children")]
12499 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12500 extra_iter
12501 .next()
12502 .unwrap()
12503 .node
12504 .write_to(writer)
12505 .map_err(SerializeError::from)?;
12506 }
12507 if let Some(ref val) = self.spacing {
12508 val.write_element("w:spacing", writer)?;
12509 }
12510 #[cfg(feature = "extra-children")]
12511 {
12512 emit_idx += 1;
12513 }
12514 #[cfg(feature = "extra-children")]
12515 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12516 extra_iter
12517 .next()
12518 .unwrap()
12519 .node
12520 .write_to(writer)
12521 .map_err(SerializeError::from)?;
12522 }
12523 if let Some(ref val) = self.width {
12524 val.write_element("w:w", writer)?;
12525 }
12526 #[cfg(feature = "extra-children")]
12527 {
12528 emit_idx += 1;
12529 }
12530 #[cfg(feature = "extra-children")]
12531 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12532 extra_iter
12533 .next()
12534 .unwrap()
12535 .node
12536 .write_to(writer)
12537 .map_err(SerializeError::from)?;
12538 }
12539 if let Some(ref val) = self.kern {
12540 val.write_element("w:kern", writer)?;
12541 }
12542 #[cfg(feature = "extra-children")]
12543 {
12544 emit_idx += 1;
12545 }
12546 #[cfg(feature = "extra-children")]
12547 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12548 extra_iter
12549 .next()
12550 .unwrap()
12551 .node
12552 .write_to(writer)
12553 .map_err(SerializeError::from)?;
12554 }
12555 if let Some(ref val) = self.position {
12556 val.write_element("w:position", writer)?;
12557 }
12558 #[cfg(feature = "extra-children")]
12559 {
12560 emit_idx += 1;
12561 }
12562 #[cfg(feature = "extra-children")]
12563 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12564 extra_iter
12565 .next()
12566 .unwrap()
12567 .node
12568 .write_to(writer)
12569 .map_err(SerializeError::from)?;
12570 }
12571 if let Some(ref val) = self.size {
12572 val.write_element("w:sz", writer)?;
12573 }
12574 #[cfg(feature = "extra-children")]
12575 {
12576 emit_idx += 1;
12577 }
12578 #[cfg(feature = "extra-children")]
12579 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12580 extra_iter
12581 .next()
12582 .unwrap()
12583 .node
12584 .write_to(writer)
12585 .map_err(SerializeError::from)?;
12586 }
12587 if let Some(ref val) = self.size_complex_script {
12588 val.write_element("w:szCs", writer)?;
12589 }
12590 #[cfg(feature = "extra-children")]
12591 {
12592 emit_idx += 1;
12593 }
12594 #[cfg(feature = "extra-children")]
12595 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12596 extra_iter
12597 .next()
12598 .unwrap()
12599 .node
12600 .write_to(writer)
12601 .map_err(SerializeError::from)?;
12602 }
12603 if let Some(ref val) = self.highlight {
12604 val.write_element("w:highlight", writer)?;
12605 }
12606 #[cfg(feature = "extra-children")]
12607 {
12608 emit_idx += 1;
12609 }
12610 #[cfg(feature = "extra-children")]
12611 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12612 extra_iter
12613 .next()
12614 .unwrap()
12615 .node
12616 .write_to(writer)
12617 .map_err(SerializeError::from)?;
12618 }
12619 if let Some(ref val) = self.underline {
12620 val.write_element("w:u", writer)?;
12621 }
12622 #[cfg(feature = "extra-children")]
12623 {
12624 emit_idx += 1;
12625 }
12626 #[cfg(feature = "extra-children")]
12627 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12628 extra_iter
12629 .next()
12630 .unwrap()
12631 .node
12632 .write_to(writer)
12633 .map_err(SerializeError::from)?;
12634 }
12635 if let Some(ref val) = self.effect {
12636 val.write_element("w:effect", writer)?;
12637 }
12638 #[cfg(feature = "extra-children")]
12639 {
12640 emit_idx += 1;
12641 }
12642 #[cfg(feature = "extra-children")]
12643 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12644 extra_iter
12645 .next()
12646 .unwrap()
12647 .node
12648 .write_to(writer)
12649 .map_err(SerializeError::from)?;
12650 }
12651 if let Some(ref val) = self.bdr {
12652 val.write_element("w:bdr", writer)?;
12653 }
12654 #[cfg(feature = "extra-children")]
12655 {
12656 emit_idx += 1;
12657 }
12658 #[cfg(feature = "extra-children")]
12659 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12660 extra_iter
12661 .next()
12662 .unwrap()
12663 .node
12664 .write_to(writer)
12665 .map_err(SerializeError::from)?;
12666 }
12667 if let Some(ref val) = self.shading {
12668 val.write_element("w:shd", writer)?;
12669 }
12670 #[cfg(feature = "extra-children")]
12671 {
12672 emit_idx += 1;
12673 }
12674 #[cfg(feature = "extra-children")]
12675 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12676 extra_iter
12677 .next()
12678 .unwrap()
12679 .node
12680 .write_to(writer)
12681 .map_err(SerializeError::from)?;
12682 }
12683 if let Some(ref val) = self.fit_text {
12684 val.write_element("w:fitText", writer)?;
12685 }
12686 #[cfg(feature = "extra-children")]
12687 {
12688 emit_idx += 1;
12689 }
12690 #[cfg(feature = "extra-children")]
12691 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12692 extra_iter
12693 .next()
12694 .unwrap()
12695 .node
12696 .write_to(writer)
12697 .map_err(SerializeError::from)?;
12698 }
12699 if let Some(ref val) = self.vert_align {
12700 val.write_element("w:vertAlign", writer)?;
12701 }
12702 #[cfg(feature = "extra-children")]
12703 {
12704 emit_idx += 1;
12705 }
12706 #[cfg(feature = "extra-children")]
12707 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12708 extra_iter
12709 .next()
12710 .unwrap()
12711 .node
12712 .write_to(writer)
12713 .map_err(SerializeError::from)?;
12714 }
12715 if let Some(ref val) = self.rtl {
12716 val.write_element("w:rtl", writer)?;
12717 }
12718 #[cfg(feature = "extra-children")]
12719 {
12720 emit_idx += 1;
12721 }
12722 #[cfg(feature = "extra-children")]
12723 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12724 extra_iter
12725 .next()
12726 .unwrap()
12727 .node
12728 .write_to(writer)
12729 .map_err(SerializeError::from)?;
12730 }
12731 if let Some(ref val) = self.cs {
12732 val.write_element("w:cs", writer)?;
12733 }
12734 #[cfg(feature = "extra-children")]
12735 {
12736 emit_idx += 1;
12737 }
12738 #[cfg(feature = "extra-children")]
12739 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12740 extra_iter
12741 .next()
12742 .unwrap()
12743 .node
12744 .write_to(writer)
12745 .map_err(SerializeError::from)?;
12746 }
12747 if let Some(ref val) = self.em {
12748 val.write_element("w:em", writer)?;
12749 }
12750 #[cfg(feature = "extra-children")]
12751 {
12752 emit_idx += 1;
12753 }
12754 #[cfg(feature = "extra-children")]
12755 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12756 extra_iter
12757 .next()
12758 .unwrap()
12759 .node
12760 .write_to(writer)
12761 .map_err(SerializeError::from)?;
12762 }
12763 if let Some(ref val) = self.lang {
12764 val.write_element("w:lang", writer)?;
12765 }
12766 #[cfg(feature = "extra-children")]
12767 {
12768 emit_idx += 1;
12769 }
12770 #[cfg(feature = "extra-children")]
12771 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12772 extra_iter
12773 .next()
12774 .unwrap()
12775 .node
12776 .write_to(writer)
12777 .map_err(SerializeError::from)?;
12778 }
12779 if let Some(ref val) = self.east_asian_layout {
12780 val.write_element("w:eastAsianLayout", writer)?;
12781 }
12782 #[cfg(feature = "extra-children")]
12783 {
12784 emit_idx += 1;
12785 }
12786 #[cfg(feature = "extra-children")]
12787 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12788 extra_iter
12789 .next()
12790 .unwrap()
12791 .node
12792 .write_to(writer)
12793 .map_err(SerializeError::from)?;
12794 }
12795 if let Some(ref val) = self.spec_vanish {
12796 val.write_element("w:specVanish", writer)?;
12797 }
12798 #[cfg(feature = "extra-children")]
12799 {
12800 emit_idx += 1;
12801 }
12802 #[cfg(feature = "extra-children")]
12803 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12804 extra_iter
12805 .next()
12806 .unwrap()
12807 .node
12808 .write_to(writer)
12809 .map_err(SerializeError::from)?;
12810 }
12811 if let Some(ref val) = self.o_math {
12812 val.write_element("w:oMath", writer)?;
12813 }
12814 #[cfg(feature = "extra-children")]
12815 {
12816 emit_idx += 1;
12817 }
12818 #[cfg(feature = "extra-children")]
12819 for extra in extra_iter {
12820 extra.node.write_to(writer).map_err(SerializeError::from)?;
12821 }
12822 Ok(())
12823 }
12824
12825 fn is_empty_element(&self) -> bool {
12826 if self.run_style.is_some() {
12827 return false;
12828 }
12829 if self.fonts.is_some() {
12830 return false;
12831 }
12832 if self.bold.is_some() {
12833 return false;
12834 }
12835 if self.b_cs.is_some() {
12836 return false;
12837 }
12838 if self.italic.is_some() {
12839 return false;
12840 }
12841 if self.i_cs.is_some() {
12842 return false;
12843 }
12844 if self.caps.is_some() {
12845 return false;
12846 }
12847 if self.small_caps.is_some() {
12848 return false;
12849 }
12850 if self.strikethrough.is_some() {
12851 return false;
12852 }
12853 if self.dstrike.is_some() {
12854 return false;
12855 }
12856 if self.outline.is_some() {
12857 return false;
12858 }
12859 if self.shadow.is_some() {
12860 return false;
12861 }
12862 if self.emboss.is_some() {
12863 return false;
12864 }
12865 if self.imprint.is_some() {
12866 return false;
12867 }
12868 if self.no_proof.is_some() {
12869 return false;
12870 }
12871 if self.snap_to_grid.is_some() {
12872 return false;
12873 }
12874 if self.vanish.is_some() {
12875 return false;
12876 }
12877 if self.web_hidden.is_some() {
12878 return false;
12879 }
12880 if self.color.is_some() {
12881 return false;
12882 }
12883 if self.spacing.is_some() {
12884 return false;
12885 }
12886 if self.width.is_some() {
12887 return false;
12888 }
12889 if self.kern.is_some() {
12890 return false;
12891 }
12892 if self.position.is_some() {
12893 return false;
12894 }
12895 if self.size.is_some() {
12896 return false;
12897 }
12898 if self.size_complex_script.is_some() {
12899 return false;
12900 }
12901 if self.highlight.is_some() {
12902 return false;
12903 }
12904 if self.underline.is_some() {
12905 return false;
12906 }
12907 if self.effect.is_some() {
12908 return false;
12909 }
12910 if self.bdr.is_some() {
12911 return false;
12912 }
12913 if self.shading.is_some() {
12914 return false;
12915 }
12916 if self.fit_text.is_some() {
12917 return false;
12918 }
12919 if self.vert_align.is_some() {
12920 return false;
12921 }
12922 if self.rtl.is_some() {
12923 return false;
12924 }
12925 if self.cs.is_some() {
12926 return false;
12927 }
12928 if self.em.is_some() {
12929 return false;
12930 }
12931 if self.lang.is_some() {
12932 return false;
12933 }
12934 if self.east_asian_layout.is_some() {
12935 return false;
12936 }
12937 if self.spec_vanish.is_some() {
12938 return false;
12939 }
12940 if self.o_math.is_some() {
12941 return false;
12942 }
12943 #[cfg(feature = "extra-children")]
12944 if !self.extra_children.is_empty() {
12945 return false;
12946 }
12947 true
12948 }
12949}
12950
12951impl ToXml for CTParaRPrOriginal {
12952 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
12953 #[cfg(feature = "extra-children")]
12954 let mut extra_iter = self.extra_children.iter().peekable();
12955 #[cfg(feature = "extra-children")]
12956 let mut emit_idx: usize = 0;
12957 #[cfg(feature = "extra-children")]
12958 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12959 extra_iter
12960 .next()
12961 .unwrap()
12962 .node
12963 .write_to(writer)
12964 .map_err(SerializeError::from)?;
12965 }
12966 if let Some(ref val) = self.ins {
12967 val.write_element("w:ins", writer)?;
12968 }
12969 #[cfg(feature = "extra-children")]
12970 {
12971 emit_idx += 1;
12972 }
12973 #[cfg(feature = "extra-children")]
12974 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12975 extra_iter
12976 .next()
12977 .unwrap()
12978 .node
12979 .write_to(writer)
12980 .map_err(SerializeError::from)?;
12981 }
12982 if let Some(ref val) = self.del {
12983 val.write_element("w:del", writer)?;
12984 }
12985 #[cfg(feature = "extra-children")]
12986 {
12987 emit_idx += 1;
12988 }
12989 #[cfg(feature = "extra-children")]
12990 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12991 extra_iter
12992 .next()
12993 .unwrap()
12994 .node
12995 .write_to(writer)
12996 .map_err(SerializeError::from)?;
12997 }
12998 if let Some(ref val) = self.move_from {
12999 val.write_element("w:moveFrom", writer)?;
13000 }
13001 #[cfg(feature = "extra-children")]
13002 {
13003 emit_idx += 1;
13004 }
13005 #[cfg(feature = "extra-children")]
13006 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13007 extra_iter
13008 .next()
13009 .unwrap()
13010 .node
13011 .write_to(writer)
13012 .map_err(SerializeError::from)?;
13013 }
13014 if let Some(ref val) = self.move_to {
13015 val.write_element("w:moveTo", writer)?;
13016 }
13017 #[cfg(feature = "extra-children")]
13018 {
13019 emit_idx += 1;
13020 }
13021 #[cfg(feature = "extra-children")]
13022 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13023 extra_iter
13024 .next()
13025 .unwrap()
13026 .node
13027 .write_to(writer)
13028 .map_err(SerializeError::from)?;
13029 }
13030 if let Some(ref val) = self.run_style {
13031 val.write_element("w:rStyle", writer)?;
13032 }
13033 #[cfg(feature = "extra-children")]
13034 {
13035 emit_idx += 1;
13036 }
13037 #[cfg(feature = "extra-children")]
13038 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13039 extra_iter
13040 .next()
13041 .unwrap()
13042 .node
13043 .write_to(writer)
13044 .map_err(SerializeError::from)?;
13045 }
13046 if let Some(ref val) = self.fonts {
13047 val.write_element("w:rFonts", writer)?;
13048 }
13049 #[cfg(feature = "extra-children")]
13050 {
13051 emit_idx += 1;
13052 }
13053 #[cfg(feature = "extra-children")]
13054 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13055 extra_iter
13056 .next()
13057 .unwrap()
13058 .node
13059 .write_to(writer)
13060 .map_err(SerializeError::from)?;
13061 }
13062 if let Some(ref val) = self.bold {
13063 val.write_element("w:b", writer)?;
13064 }
13065 #[cfg(feature = "extra-children")]
13066 {
13067 emit_idx += 1;
13068 }
13069 #[cfg(feature = "extra-children")]
13070 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13071 extra_iter
13072 .next()
13073 .unwrap()
13074 .node
13075 .write_to(writer)
13076 .map_err(SerializeError::from)?;
13077 }
13078 if let Some(ref val) = self.b_cs {
13079 val.write_element("w:bCs", writer)?;
13080 }
13081 #[cfg(feature = "extra-children")]
13082 {
13083 emit_idx += 1;
13084 }
13085 #[cfg(feature = "extra-children")]
13086 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13087 extra_iter
13088 .next()
13089 .unwrap()
13090 .node
13091 .write_to(writer)
13092 .map_err(SerializeError::from)?;
13093 }
13094 if let Some(ref val) = self.italic {
13095 val.write_element("w:i", writer)?;
13096 }
13097 #[cfg(feature = "extra-children")]
13098 {
13099 emit_idx += 1;
13100 }
13101 #[cfg(feature = "extra-children")]
13102 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13103 extra_iter
13104 .next()
13105 .unwrap()
13106 .node
13107 .write_to(writer)
13108 .map_err(SerializeError::from)?;
13109 }
13110 if let Some(ref val) = self.i_cs {
13111 val.write_element("w:iCs", writer)?;
13112 }
13113 #[cfg(feature = "extra-children")]
13114 {
13115 emit_idx += 1;
13116 }
13117 #[cfg(feature = "extra-children")]
13118 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13119 extra_iter
13120 .next()
13121 .unwrap()
13122 .node
13123 .write_to(writer)
13124 .map_err(SerializeError::from)?;
13125 }
13126 if let Some(ref val) = self.caps {
13127 val.write_element("w:caps", writer)?;
13128 }
13129 #[cfg(feature = "extra-children")]
13130 {
13131 emit_idx += 1;
13132 }
13133 #[cfg(feature = "extra-children")]
13134 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13135 extra_iter
13136 .next()
13137 .unwrap()
13138 .node
13139 .write_to(writer)
13140 .map_err(SerializeError::from)?;
13141 }
13142 if let Some(ref val) = self.small_caps {
13143 val.write_element("w:smallCaps", writer)?;
13144 }
13145 #[cfg(feature = "extra-children")]
13146 {
13147 emit_idx += 1;
13148 }
13149 #[cfg(feature = "extra-children")]
13150 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13151 extra_iter
13152 .next()
13153 .unwrap()
13154 .node
13155 .write_to(writer)
13156 .map_err(SerializeError::from)?;
13157 }
13158 if let Some(ref val) = self.strikethrough {
13159 val.write_element("w:strike", writer)?;
13160 }
13161 #[cfg(feature = "extra-children")]
13162 {
13163 emit_idx += 1;
13164 }
13165 #[cfg(feature = "extra-children")]
13166 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13167 extra_iter
13168 .next()
13169 .unwrap()
13170 .node
13171 .write_to(writer)
13172 .map_err(SerializeError::from)?;
13173 }
13174 if let Some(ref val) = self.dstrike {
13175 val.write_element("w:dstrike", writer)?;
13176 }
13177 #[cfg(feature = "extra-children")]
13178 {
13179 emit_idx += 1;
13180 }
13181 #[cfg(feature = "extra-children")]
13182 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13183 extra_iter
13184 .next()
13185 .unwrap()
13186 .node
13187 .write_to(writer)
13188 .map_err(SerializeError::from)?;
13189 }
13190 if let Some(ref val) = self.outline {
13191 val.write_element("w:outline", writer)?;
13192 }
13193 #[cfg(feature = "extra-children")]
13194 {
13195 emit_idx += 1;
13196 }
13197 #[cfg(feature = "extra-children")]
13198 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13199 extra_iter
13200 .next()
13201 .unwrap()
13202 .node
13203 .write_to(writer)
13204 .map_err(SerializeError::from)?;
13205 }
13206 if let Some(ref val) = self.shadow {
13207 val.write_element("w:shadow", writer)?;
13208 }
13209 #[cfg(feature = "extra-children")]
13210 {
13211 emit_idx += 1;
13212 }
13213 #[cfg(feature = "extra-children")]
13214 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13215 extra_iter
13216 .next()
13217 .unwrap()
13218 .node
13219 .write_to(writer)
13220 .map_err(SerializeError::from)?;
13221 }
13222 if let Some(ref val) = self.emboss {
13223 val.write_element("w:emboss", writer)?;
13224 }
13225 #[cfg(feature = "extra-children")]
13226 {
13227 emit_idx += 1;
13228 }
13229 #[cfg(feature = "extra-children")]
13230 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13231 extra_iter
13232 .next()
13233 .unwrap()
13234 .node
13235 .write_to(writer)
13236 .map_err(SerializeError::from)?;
13237 }
13238 if let Some(ref val) = self.imprint {
13239 val.write_element("w:imprint", writer)?;
13240 }
13241 #[cfg(feature = "extra-children")]
13242 {
13243 emit_idx += 1;
13244 }
13245 #[cfg(feature = "extra-children")]
13246 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13247 extra_iter
13248 .next()
13249 .unwrap()
13250 .node
13251 .write_to(writer)
13252 .map_err(SerializeError::from)?;
13253 }
13254 if let Some(ref val) = self.no_proof {
13255 val.write_element("w:noProof", writer)?;
13256 }
13257 #[cfg(feature = "extra-children")]
13258 {
13259 emit_idx += 1;
13260 }
13261 #[cfg(feature = "extra-children")]
13262 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13263 extra_iter
13264 .next()
13265 .unwrap()
13266 .node
13267 .write_to(writer)
13268 .map_err(SerializeError::from)?;
13269 }
13270 if let Some(ref val) = self.snap_to_grid {
13271 val.write_element("w:snapToGrid", writer)?;
13272 }
13273 #[cfg(feature = "extra-children")]
13274 {
13275 emit_idx += 1;
13276 }
13277 #[cfg(feature = "extra-children")]
13278 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13279 extra_iter
13280 .next()
13281 .unwrap()
13282 .node
13283 .write_to(writer)
13284 .map_err(SerializeError::from)?;
13285 }
13286 if let Some(ref val) = self.vanish {
13287 val.write_element("w:vanish", writer)?;
13288 }
13289 #[cfg(feature = "extra-children")]
13290 {
13291 emit_idx += 1;
13292 }
13293 #[cfg(feature = "extra-children")]
13294 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13295 extra_iter
13296 .next()
13297 .unwrap()
13298 .node
13299 .write_to(writer)
13300 .map_err(SerializeError::from)?;
13301 }
13302 if let Some(ref val) = self.web_hidden {
13303 val.write_element("w:webHidden", writer)?;
13304 }
13305 #[cfg(feature = "extra-children")]
13306 {
13307 emit_idx += 1;
13308 }
13309 #[cfg(feature = "extra-children")]
13310 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13311 extra_iter
13312 .next()
13313 .unwrap()
13314 .node
13315 .write_to(writer)
13316 .map_err(SerializeError::from)?;
13317 }
13318 if let Some(ref val) = self.color {
13319 val.write_element("w:color", writer)?;
13320 }
13321 #[cfg(feature = "extra-children")]
13322 {
13323 emit_idx += 1;
13324 }
13325 #[cfg(feature = "extra-children")]
13326 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13327 extra_iter
13328 .next()
13329 .unwrap()
13330 .node
13331 .write_to(writer)
13332 .map_err(SerializeError::from)?;
13333 }
13334 if let Some(ref val) = self.spacing {
13335 val.write_element("w:spacing", writer)?;
13336 }
13337 #[cfg(feature = "extra-children")]
13338 {
13339 emit_idx += 1;
13340 }
13341 #[cfg(feature = "extra-children")]
13342 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13343 extra_iter
13344 .next()
13345 .unwrap()
13346 .node
13347 .write_to(writer)
13348 .map_err(SerializeError::from)?;
13349 }
13350 if let Some(ref val) = self.width {
13351 val.write_element("w:w", writer)?;
13352 }
13353 #[cfg(feature = "extra-children")]
13354 {
13355 emit_idx += 1;
13356 }
13357 #[cfg(feature = "extra-children")]
13358 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13359 extra_iter
13360 .next()
13361 .unwrap()
13362 .node
13363 .write_to(writer)
13364 .map_err(SerializeError::from)?;
13365 }
13366 if let Some(ref val) = self.kern {
13367 val.write_element("w:kern", writer)?;
13368 }
13369 #[cfg(feature = "extra-children")]
13370 {
13371 emit_idx += 1;
13372 }
13373 #[cfg(feature = "extra-children")]
13374 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13375 extra_iter
13376 .next()
13377 .unwrap()
13378 .node
13379 .write_to(writer)
13380 .map_err(SerializeError::from)?;
13381 }
13382 if let Some(ref val) = self.position {
13383 val.write_element("w:position", writer)?;
13384 }
13385 #[cfg(feature = "extra-children")]
13386 {
13387 emit_idx += 1;
13388 }
13389 #[cfg(feature = "extra-children")]
13390 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13391 extra_iter
13392 .next()
13393 .unwrap()
13394 .node
13395 .write_to(writer)
13396 .map_err(SerializeError::from)?;
13397 }
13398 if let Some(ref val) = self.size {
13399 val.write_element("w:sz", writer)?;
13400 }
13401 #[cfg(feature = "extra-children")]
13402 {
13403 emit_idx += 1;
13404 }
13405 #[cfg(feature = "extra-children")]
13406 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13407 extra_iter
13408 .next()
13409 .unwrap()
13410 .node
13411 .write_to(writer)
13412 .map_err(SerializeError::from)?;
13413 }
13414 if let Some(ref val) = self.size_complex_script {
13415 val.write_element("w:szCs", writer)?;
13416 }
13417 #[cfg(feature = "extra-children")]
13418 {
13419 emit_idx += 1;
13420 }
13421 #[cfg(feature = "extra-children")]
13422 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13423 extra_iter
13424 .next()
13425 .unwrap()
13426 .node
13427 .write_to(writer)
13428 .map_err(SerializeError::from)?;
13429 }
13430 if let Some(ref val) = self.highlight {
13431 val.write_element("w:highlight", writer)?;
13432 }
13433 #[cfg(feature = "extra-children")]
13434 {
13435 emit_idx += 1;
13436 }
13437 #[cfg(feature = "extra-children")]
13438 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13439 extra_iter
13440 .next()
13441 .unwrap()
13442 .node
13443 .write_to(writer)
13444 .map_err(SerializeError::from)?;
13445 }
13446 if let Some(ref val) = self.underline {
13447 val.write_element("w:u", writer)?;
13448 }
13449 #[cfg(feature = "extra-children")]
13450 {
13451 emit_idx += 1;
13452 }
13453 #[cfg(feature = "extra-children")]
13454 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13455 extra_iter
13456 .next()
13457 .unwrap()
13458 .node
13459 .write_to(writer)
13460 .map_err(SerializeError::from)?;
13461 }
13462 if let Some(ref val) = self.effect {
13463 val.write_element("w:effect", writer)?;
13464 }
13465 #[cfg(feature = "extra-children")]
13466 {
13467 emit_idx += 1;
13468 }
13469 #[cfg(feature = "extra-children")]
13470 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13471 extra_iter
13472 .next()
13473 .unwrap()
13474 .node
13475 .write_to(writer)
13476 .map_err(SerializeError::from)?;
13477 }
13478 if let Some(ref val) = self.bdr {
13479 val.write_element("w:bdr", writer)?;
13480 }
13481 #[cfg(feature = "extra-children")]
13482 {
13483 emit_idx += 1;
13484 }
13485 #[cfg(feature = "extra-children")]
13486 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13487 extra_iter
13488 .next()
13489 .unwrap()
13490 .node
13491 .write_to(writer)
13492 .map_err(SerializeError::from)?;
13493 }
13494 if let Some(ref val) = self.shading {
13495 val.write_element("w:shd", writer)?;
13496 }
13497 #[cfg(feature = "extra-children")]
13498 {
13499 emit_idx += 1;
13500 }
13501 #[cfg(feature = "extra-children")]
13502 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13503 extra_iter
13504 .next()
13505 .unwrap()
13506 .node
13507 .write_to(writer)
13508 .map_err(SerializeError::from)?;
13509 }
13510 if let Some(ref val) = self.fit_text {
13511 val.write_element("w:fitText", writer)?;
13512 }
13513 #[cfg(feature = "extra-children")]
13514 {
13515 emit_idx += 1;
13516 }
13517 #[cfg(feature = "extra-children")]
13518 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13519 extra_iter
13520 .next()
13521 .unwrap()
13522 .node
13523 .write_to(writer)
13524 .map_err(SerializeError::from)?;
13525 }
13526 if let Some(ref val) = self.vert_align {
13527 val.write_element("w:vertAlign", writer)?;
13528 }
13529 #[cfg(feature = "extra-children")]
13530 {
13531 emit_idx += 1;
13532 }
13533 #[cfg(feature = "extra-children")]
13534 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13535 extra_iter
13536 .next()
13537 .unwrap()
13538 .node
13539 .write_to(writer)
13540 .map_err(SerializeError::from)?;
13541 }
13542 if let Some(ref val) = self.rtl {
13543 val.write_element("w:rtl", writer)?;
13544 }
13545 #[cfg(feature = "extra-children")]
13546 {
13547 emit_idx += 1;
13548 }
13549 #[cfg(feature = "extra-children")]
13550 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13551 extra_iter
13552 .next()
13553 .unwrap()
13554 .node
13555 .write_to(writer)
13556 .map_err(SerializeError::from)?;
13557 }
13558 if let Some(ref val) = self.cs {
13559 val.write_element("w:cs", writer)?;
13560 }
13561 #[cfg(feature = "extra-children")]
13562 {
13563 emit_idx += 1;
13564 }
13565 #[cfg(feature = "extra-children")]
13566 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13567 extra_iter
13568 .next()
13569 .unwrap()
13570 .node
13571 .write_to(writer)
13572 .map_err(SerializeError::from)?;
13573 }
13574 if let Some(ref val) = self.em {
13575 val.write_element("w:em", writer)?;
13576 }
13577 #[cfg(feature = "extra-children")]
13578 {
13579 emit_idx += 1;
13580 }
13581 #[cfg(feature = "extra-children")]
13582 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13583 extra_iter
13584 .next()
13585 .unwrap()
13586 .node
13587 .write_to(writer)
13588 .map_err(SerializeError::from)?;
13589 }
13590 if let Some(ref val) = self.lang {
13591 val.write_element("w:lang", writer)?;
13592 }
13593 #[cfg(feature = "extra-children")]
13594 {
13595 emit_idx += 1;
13596 }
13597 #[cfg(feature = "extra-children")]
13598 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13599 extra_iter
13600 .next()
13601 .unwrap()
13602 .node
13603 .write_to(writer)
13604 .map_err(SerializeError::from)?;
13605 }
13606 if let Some(ref val) = self.east_asian_layout {
13607 val.write_element("w:eastAsianLayout", writer)?;
13608 }
13609 #[cfg(feature = "extra-children")]
13610 {
13611 emit_idx += 1;
13612 }
13613 #[cfg(feature = "extra-children")]
13614 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13615 extra_iter
13616 .next()
13617 .unwrap()
13618 .node
13619 .write_to(writer)
13620 .map_err(SerializeError::from)?;
13621 }
13622 if let Some(ref val) = self.spec_vanish {
13623 val.write_element("w:specVanish", writer)?;
13624 }
13625 #[cfg(feature = "extra-children")]
13626 {
13627 emit_idx += 1;
13628 }
13629 #[cfg(feature = "extra-children")]
13630 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13631 extra_iter
13632 .next()
13633 .unwrap()
13634 .node
13635 .write_to(writer)
13636 .map_err(SerializeError::from)?;
13637 }
13638 if let Some(ref val) = self.o_math {
13639 val.write_element("w:oMath", writer)?;
13640 }
13641 #[cfg(feature = "extra-children")]
13642 {
13643 emit_idx += 1;
13644 }
13645 #[cfg(feature = "extra-children")]
13646 for extra in extra_iter {
13647 extra.node.write_to(writer).map_err(SerializeError::from)?;
13648 }
13649 Ok(())
13650 }
13651
13652 fn is_empty_element(&self) -> bool {
13653 if self.ins.is_some() {
13654 return false;
13655 }
13656 if self.del.is_some() {
13657 return false;
13658 }
13659 if self.move_from.is_some() {
13660 return false;
13661 }
13662 if self.move_to.is_some() {
13663 return false;
13664 }
13665 if self.run_style.is_some() {
13666 return false;
13667 }
13668 if self.fonts.is_some() {
13669 return false;
13670 }
13671 if self.bold.is_some() {
13672 return false;
13673 }
13674 if self.b_cs.is_some() {
13675 return false;
13676 }
13677 if self.italic.is_some() {
13678 return false;
13679 }
13680 if self.i_cs.is_some() {
13681 return false;
13682 }
13683 if self.caps.is_some() {
13684 return false;
13685 }
13686 if self.small_caps.is_some() {
13687 return false;
13688 }
13689 if self.strikethrough.is_some() {
13690 return false;
13691 }
13692 if self.dstrike.is_some() {
13693 return false;
13694 }
13695 if self.outline.is_some() {
13696 return false;
13697 }
13698 if self.shadow.is_some() {
13699 return false;
13700 }
13701 if self.emboss.is_some() {
13702 return false;
13703 }
13704 if self.imprint.is_some() {
13705 return false;
13706 }
13707 if self.no_proof.is_some() {
13708 return false;
13709 }
13710 if self.snap_to_grid.is_some() {
13711 return false;
13712 }
13713 if self.vanish.is_some() {
13714 return false;
13715 }
13716 if self.web_hidden.is_some() {
13717 return false;
13718 }
13719 if self.color.is_some() {
13720 return false;
13721 }
13722 if self.spacing.is_some() {
13723 return false;
13724 }
13725 if self.width.is_some() {
13726 return false;
13727 }
13728 if self.kern.is_some() {
13729 return false;
13730 }
13731 if self.position.is_some() {
13732 return false;
13733 }
13734 if self.size.is_some() {
13735 return false;
13736 }
13737 if self.size_complex_script.is_some() {
13738 return false;
13739 }
13740 if self.highlight.is_some() {
13741 return false;
13742 }
13743 if self.underline.is_some() {
13744 return false;
13745 }
13746 if self.effect.is_some() {
13747 return false;
13748 }
13749 if self.bdr.is_some() {
13750 return false;
13751 }
13752 if self.shading.is_some() {
13753 return false;
13754 }
13755 if self.fit_text.is_some() {
13756 return false;
13757 }
13758 if self.vert_align.is_some() {
13759 return false;
13760 }
13761 if self.rtl.is_some() {
13762 return false;
13763 }
13764 if self.cs.is_some() {
13765 return false;
13766 }
13767 if self.em.is_some() {
13768 return false;
13769 }
13770 if self.lang.is_some() {
13771 return false;
13772 }
13773 if self.east_asian_layout.is_some() {
13774 return false;
13775 }
13776 if self.spec_vanish.is_some() {
13777 return false;
13778 }
13779 if self.o_math.is_some() {
13780 return false;
13781 }
13782 #[cfg(feature = "extra-children")]
13783 if !self.extra_children.is_empty() {
13784 return false;
13785 }
13786 true
13787 }
13788}
13789
13790impl ToXml for CTParaRPr {
13791 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
13792 #[cfg(feature = "extra-children")]
13793 let mut extra_iter = self.extra_children.iter().peekable();
13794 #[cfg(feature = "extra-children")]
13795 let mut emit_idx: usize = 0;
13796 #[cfg(feature = "extra-children")]
13797 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13798 extra_iter
13799 .next()
13800 .unwrap()
13801 .node
13802 .write_to(writer)
13803 .map_err(SerializeError::from)?;
13804 }
13805 if let Some(ref val) = self.ins {
13806 val.write_element("w:ins", writer)?;
13807 }
13808 #[cfg(feature = "extra-children")]
13809 {
13810 emit_idx += 1;
13811 }
13812 #[cfg(feature = "extra-children")]
13813 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13814 extra_iter
13815 .next()
13816 .unwrap()
13817 .node
13818 .write_to(writer)
13819 .map_err(SerializeError::from)?;
13820 }
13821 if let Some(ref val) = self.del {
13822 val.write_element("w:del", writer)?;
13823 }
13824 #[cfg(feature = "extra-children")]
13825 {
13826 emit_idx += 1;
13827 }
13828 #[cfg(feature = "extra-children")]
13829 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13830 extra_iter
13831 .next()
13832 .unwrap()
13833 .node
13834 .write_to(writer)
13835 .map_err(SerializeError::from)?;
13836 }
13837 if let Some(ref val) = self.move_from {
13838 val.write_element("w:moveFrom", writer)?;
13839 }
13840 #[cfg(feature = "extra-children")]
13841 {
13842 emit_idx += 1;
13843 }
13844 #[cfg(feature = "extra-children")]
13845 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13846 extra_iter
13847 .next()
13848 .unwrap()
13849 .node
13850 .write_to(writer)
13851 .map_err(SerializeError::from)?;
13852 }
13853 if let Some(ref val) = self.move_to {
13854 val.write_element("w:moveTo", writer)?;
13855 }
13856 #[cfg(feature = "extra-children")]
13857 {
13858 emit_idx += 1;
13859 }
13860 #[cfg(feature = "extra-children")]
13861 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13862 extra_iter
13863 .next()
13864 .unwrap()
13865 .node
13866 .write_to(writer)
13867 .map_err(SerializeError::from)?;
13868 }
13869 if let Some(ref val) = self.run_style {
13870 val.write_element("w:rStyle", writer)?;
13871 }
13872 #[cfg(feature = "extra-children")]
13873 {
13874 emit_idx += 1;
13875 }
13876 #[cfg(feature = "extra-children")]
13877 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13878 extra_iter
13879 .next()
13880 .unwrap()
13881 .node
13882 .write_to(writer)
13883 .map_err(SerializeError::from)?;
13884 }
13885 if let Some(ref val) = self.fonts {
13886 val.write_element("w:rFonts", writer)?;
13887 }
13888 #[cfg(feature = "extra-children")]
13889 {
13890 emit_idx += 1;
13891 }
13892 #[cfg(feature = "extra-children")]
13893 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13894 extra_iter
13895 .next()
13896 .unwrap()
13897 .node
13898 .write_to(writer)
13899 .map_err(SerializeError::from)?;
13900 }
13901 if let Some(ref val) = self.bold {
13902 val.write_element("w:b", writer)?;
13903 }
13904 #[cfg(feature = "extra-children")]
13905 {
13906 emit_idx += 1;
13907 }
13908 #[cfg(feature = "extra-children")]
13909 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13910 extra_iter
13911 .next()
13912 .unwrap()
13913 .node
13914 .write_to(writer)
13915 .map_err(SerializeError::from)?;
13916 }
13917 if let Some(ref val) = self.b_cs {
13918 val.write_element("w:bCs", writer)?;
13919 }
13920 #[cfg(feature = "extra-children")]
13921 {
13922 emit_idx += 1;
13923 }
13924 #[cfg(feature = "extra-children")]
13925 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13926 extra_iter
13927 .next()
13928 .unwrap()
13929 .node
13930 .write_to(writer)
13931 .map_err(SerializeError::from)?;
13932 }
13933 if let Some(ref val) = self.italic {
13934 val.write_element("w:i", writer)?;
13935 }
13936 #[cfg(feature = "extra-children")]
13937 {
13938 emit_idx += 1;
13939 }
13940 #[cfg(feature = "extra-children")]
13941 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13942 extra_iter
13943 .next()
13944 .unwrap()
13945 .node
13946 .write_to(writer)
13947 .map_err(SerializeError::from)?;
13948 }
13949 if let Some(ref val) = self.i_cs {
13950 val.write_element("w:iCs", writer)?;
13951 }
13952 #[cfg(feature = "extra-children")]
13953 {
13954 emit_idx += 1;
13955 }
13956 #[cfg(feature = "extra-children")]
13957 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13958 extra_iter
13959 .next()
13960 .unwrap()
13961 .node
13962 .write_to(writer)
13963 .map_err(SerializeError::from)?;
13964 }
13965 if let Some(ref val) = self.caps {
13966 val.write_element("w:caps", writer)?;
13967 }
13968 #[cfg(feature = "extra-children")]
13969 {
13970 emit_idx += 1;
13971 }
13972 #[cfg(feature = "extra-children")]
13973 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13974 extra_iter
13975 .next()
13976 .unwrap()
13977 .node
13978 .write_to(writer)
13979 .map_err(SerializeError::from)?;
13980 }
13981 if let Some(ref val) = self.small_caps {
13982 val.write_element("w:smallCaps", writer)?;
13983 }
13984 #[cfg(feature = "extra-children")]
13985 {
13986 emit_idx += 1;
13987 }
13988 #[cfg(feature = "extra-children")]
13989 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13990 extra_iter
13991 .next()
13992 .unwrap()
13993 .node
13994 .write_to(writer)
13995 .map_err(SerializeError::from)?;
13996 }
13997 if let Some(ref val) = self.strikethrough {
13998 val.write_element("w:strike", writer)?;
13999 }
14000 #[cfg(feature = "extra-children")]
14001 {
14002 emit_idx += 1;
14003 }
14004 #[cfg(feature = "extra-children")]
14005 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14006 extra_iter
14007 .next()
14008 .unwrap()
14009 .node
14010 .write_to(writer)
14011 .map_err(SerializeError::from)?;
14012 }
14013 if let Some(ref val) = self.dstrike {
14014 val.write_element("w:dstrike", writer)?;
14015 }
14016 #[cfg(feature = "extra-children")]
14017 {
14018 emit_idx += 1;
14019 }
14020 #[cfg(feature = "extra-children")]
14021 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14022 extra_iter
14023 .next()
14024 .unwrap()
14025 .node
14026 .write_to(writer)
14027 .map_err(SerializeError::from)?;
14028 }
14029 if let Some(ref val) = self.outline {
14030 val.write_element("w:outline", writer)?;
14031 }
14032 #[cfg(feature = "extra-children")]
14033 {
14034 emit_idx += 1;
14035 }
14036 #[cfg(feature = "extra-children")]
14037 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14038 extra_iter
14039 .next()
14040 .unwrap()
14041 .node
14042 .write_to(writer)
14043 .map_err(SerializeError::from)?;
14044 }
14045 if let Some(ref val) = self.shadow {
14046 val.write_element("w:shadow", writer)?;
14047 }
14048 #[cfg(feature = "extra-children")]
14049 {
14050 emit_idx += 1;
14051 }
14052 #[cfg(feature = "extra-children")]
14053 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14054 extra_iter
14055 .next()
14056 .unwrap()
14057 .node
14058 .write_to(writer)
14059 .map_err(SerializeError::from)?;
14060 }
14061 if let Some(ref val) = self.emboss {
14062 val.write_element("w:emboss", writer)?;
14063 }
14064 #[cfg(feature = "extra-children")]
14065 {
14066 emit_idx += 1;
14067 }
14068 #[cfg(feature = "extra-children")]
14069 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14070 extra_iter
14071 .next()
14072 .unwrap()
14073 .node
14074 .write_to(writer)
14075 .map_err(SerializeError::from)?;
14076 }
14077 if let Some(ref val) = self.imprint {
14078 val.write_element("w:imprint", writer)?;
14079 }
14080 #[cfg(feature = "extra-children")]
14081 {
14082 emit_idx += 1;
14083 }
14084 #[cfg(feature = "extra-children")]
14085 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14086 extra_iter
14087 .next()
14088 .unwrap()
14089 .node
14090 .write_to(writer)
14091 .map_err(SerializeError::from)?;
14092 }
14093 if let Some(ref val) = self.no_proof {
14094 val.write_element("w:noProof", writer)?;
14095 }
14096 #[cfg(feature = "extra-children")]
14097 {
14098 emit_idx += 1;
14099 }
14100 #[cfg(feature = "extra-children")]
14101 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14102 extra_iter
14103 .next()
14104 .unwrap()
14105 .node
14106 .write_to(writer)
14107 .map_err(SerializeError::from)?;
14108 }
14109 if let Some(ref val) = self.snap_to_grid {
14110 val.write_element("w:snapToGrid", writer)?;
14111 }
14112 #[cfg(feature = "extra-children")]
14113 {
14114 emit_idx += 1;
14115 }
14116 #[cfg(feature = "extra-children")]
14117 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14118 extra_iter
14119 .next()
14120 .unwrap()
14121 .node
14122 .write_to(writer)
14123 .map_err(SerializeError::from)?;
14124 }
14125 if let Some(ref val) = self.vanish {
14126 val.write_element("w:vanish", writer)?;
14127 }
14128 #[cfg(feature = "extra-children")]
14129 {
14130 emit_idx += 1;
14131 }
14132 #[cfg(feature = "extra-children")]
14133 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14134 extra_iter
14135 .next()
14136 .unwrap()
14137 .node
14138 .write_to(writer)
14139 .map_err(SerializeError::from)?;
14140 }
14141 if let Some(ref val) = self.web_hidden {
14142 val.write_element("w:webHidden", writer)?;
14143 }
14144 #[cfg(feature = "extra-children")]
14145 {
14146 emit_idx += 1;
14147 }
14148 #[cfg(feature = "extra-children")]
14149 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14150 extra_iter
14151 .next()
14152 .unwrap()
14153 .node
14154 .write_to(writer)
14155 .map_err(SerializeError::from)?;
14156 }
14157 if let Some(ref val) = self.color {
14158 val.write_element("w:color", writer)?;
14159 }
14160 #[cfg(feature = "extra-children")]
14161 {
14162 emit_idx += 1;
14163 }
14164 #[cfg(feature = "extra-children")]
14165 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14166 extra_iter
14167 .next()
14168 .unwrap()
14169 .node
14170 .write_to(writer)
14171 .map_err(SerializeError::from)?;
14172 }
14173 if let Some(ref val) = self.spacing {
14174 val.write_element("w:spacing", writer)?;
14175 }
14176 #[cfg(feature = "extra-children")]
14177 {
14178 emit_idx += 1;
14179 }
14180 #[cfg(feature = "extra-children")]
14181 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14182 extra_iter
14183 .next()
14184 .unwrap()
14185 .node
14186 .write_to(writer)
14187 .map_err(SerializeError::from)?;
14188 }
14189 if let Some(ref val) = self.width {
14190 val.write_element("w:w", writer)?;
14191 }
14192 #[cfg(feature = "extra-children")]
14193 {
14194 emit_idx += 1;
14195 }
14196 #[cfg(feature = "extra-children")]
14197 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14198 extra_iter
14199 .next()
14200 .unwrap()
14201 .node
14202 .write_to(writer)
14203 .map_err(SerializeError::from)?;
14204 }
14205 if let Some(ref val) = self.kern {
14206 val.write_element("w:kern", writer)?;
14207 }
14208 #[cfg(feature = "extra-children")]
14209 {
14210 emit_idx += 1;
14211 }
14212 #[cfg(feature = "extra-children")]
14213 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14214 extra_iter
14215 .next()
14216 .unwrap()
14217 .node
14218 .write_to(writer)
14219 .map_err(SerializeError::from)?;
14220 }
14221 if let Some(ref val) = self.position {
14222 val.write_element("w:position", writer)?;
14223 }
14224 #[cfg(feature = "extra-children")]
14225 {
14226 emit_idx += 1;
14227 }
14228 #[cfg(feature = "extra-children")]
14229 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14230 extra_iter
14231 .next()
14232 .unwrap()
14233 .node
14234 .write_to(writer)
14235 .map_err(SerializeError::from)?;
14236 }
14237 if let Some(ref val) = self.size {
14238 val.write_element("w:sz", writer)?;
14239 }
14240 #[cfg(feature = "extra-children")]
14241 {
14242 emit_idx += 1;
14243 }
14244 #[cfg(feature = "extra-children")]
14245 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14246 extra_iter
14247 .next()
14248 .unwrap()
14249 .node
14250 .write_to(writer)
14251 .map_err(SerializeError::from)?;
14252 }
14253 if let Some(ref val) = self.size_complex_script {
14254 val.write_element("w:szCs", writer)?;
14255 }
14256 #[cfg(feature = "extra-children")]
14257 {
14258 emit_idx += 1;
14259 }
14260 #[cfg(feature = "extra-children")]
14261 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14262 extra_iter
14263 .next()
14264 .unwrap()
14265 .node
14266 .write_to(writer)
14267 .map_err(SerializeError::from)?;
14268 }
14269 if let Some(ref val) = self.highlight {
14270 val.write_element("w:highlight", writer)?;
14271 }
14272 #[cfg(feature = "extra-children")]
14273 {
14274 emit_idx += 1;
14275 }
14276 #[cfg(feature = "extra-children")]
14277 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14278 extra_iter
14279 .next()
14280 .unwrap()
14281 .node
14282 .write_to(writer)
14283 .map_err(SerializeError::from)?;
14284 }
14285 if let Some(ref val) = self.underline {
14286 val.write_element("w:u", writer)?;
14287 }
14288 #[cfg(feature = "extra-children")]
14289 {
14290 emit_idx += 1;
14291 }
14292 #[cfg(feature = "extra-children")]
14293 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14294 extra_iter
14295 .next()
14296 .unwrap()
14297 .node
14298 .write_to(writer)
14299 .map_err(SerializeError::from)?;
14300 }
14301 if let Some(ref val) = self.effect {
14302 val.write_element("w:effect", writer)?;
14303 }
14304 #[cfg(feature = "extra-children")]
14305 {
14306 emit_idx += 1;
14307 }
14308 #[cfg(feature = "extra-children")]
14309 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14310 extra_iter
14311 .next()
14312 .unwrap()
14313 .node
14314 .write_to(writer)
14315 .map_err(SerializeError::from)?;
14316 }
14317 if let Some(ref val) = self.bdr {
14318 val.write_element("w:bdr", writer)?;
14319 }
14320 #[cfg(feature = "extra-children")]
14321 {
14322 emit_idx += 1;
14323 }
14324 #[cfg(feature = "extra-children")]
14325 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14326 extra_iter
14327 .next()
14328 .unwrap()
14329 .node
14330 .write_to(writer)
14331 .map_err(SerializeError::from)?;
14332 }
14333 if let Some(ref val) = self.shading {
14334 val.write_element("w:shd", writer)?;
14335 }
14336 #[cfg(feature = "extra-children")]
14337 {
14338 emit_idx += 1;
14339 }
14340 #[cfg(feature = "extra-children")]
14341 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14342 extra_iter
14343 .next()
14344 .unwrap()
14345 .node
14346 .write_to(writer)
14347 .map_err(SerializeError::from)?;
14348 }
14349 if let Some(ref val) = self.fit_text {
14350 val.write_element("w:fitText", writer)?;
14351 }
14352 #[cfg(feature = "extra-children")]
14353 {
14354 emit_idx += 1;
14355 }
14356 #[cfg(feature = "extra-children")]
14357 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14358 extra_iter
14359 .next()
14360 .unwrap()
14361 .node
14362 .write_to(writer)
14363 .map_err(SerializeError::from)?;
14364 }
14365 if let Some(ref val) = self.vert_align {
14366 val.write_element("w:vertAlign", writer)?;
14367 }
14368 #[cfg(feature = "extra-children")]
14369 {
14370 emit_idx += 1;
14371 }
14372 #[cfg(feature = "extra-children")]
14373 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14374 extra_iter
14375 .next()
14376 .unwrap()
14377 .node
14378 .write_to(writer)
14379 .map_err(SerializeError::from)?;
14380 }
14381 if let Some(ref val) = self.rtl {
14382 val.write_element("w:rtl", writer)?;
14383 }
14384 #[cfg(feature = "extra-children")]
14385 {
14386 emit_idx += 1;
14387 }
14388 #[cfg(feature = "extra-children")]
14389 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14390 extra_iter
14391 .next()
14392 .unwrap()
14393 .node
14394 .write_to(writer)
14395 .map_err(SerializeError::from)?;
14396 }
14397 if let Some(ref val) = self.cs {
14398 val.write_element("w:cs", writer)?;
14399 }
14400 #[cfg(feature = "extra-children")]
14401 {
14402 emit_idx += 1;
14403 }
14404 #[cfg(feature = "extra-children")]
14405 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14406 extra_iter
14407 .next()
14408 .unwrap()
14409 .node
14410 .write_to(writer)
14411 .map_err(SerializeError::from)?;
14412 }
14413 if let Some(ref val) = self.em {
14414 val.write_element("w:em", writer)?;
14415 }
14416 #[cfg(feature = "extra-children")]
14417 {
14418 emit_idx += 1;
14419 }
14420 #[cfg(feature = "extra-children")]
14421 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14422 extra_iter
14423 .next()
14424 .unwrap()
14425 .node
14426 .write_to(writer)
14427 .map_err(SerializeError::from)?;
14428 }
14429 if let Some(ref val) = self.lang {
14430 val.write_element("w:lang", writer)?;
14431 }
14432 #[cfg(feature = "extra-children")]
14433 {
14434 emit_idx += 1;
14435 }
14436 #[cfg(feature = "extra-children")]
14437 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14438 extra_iter
14439 .next()
14440 .unwrap()
14441 .node
14442 .write_to(writer)
14443 .map_err(SerializeError::from)?;
14444 }
14445 if let Some(ref val) = self.east_asian_layout {
14446 val.write_element("w:eastAsianLayout", writer)?;
14447 }
14448 #[cfg(feature = "extra-children")]
14449 {
14450 emit_idx += 1;
14451 }
14452 #[cfg(feature = "extra-children")]
14453 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14454 extra_iter
14455 .next()
14456 .unwrap()
14457 .node
14458 .write_to(writer)
14459 .map_err(SerializeError::from)?;
14460 }
14461 if let Some(ref val) = self.spec_vanish {
14462 val.write_element("w:specVanish", writer)?;
14463 }
14464 #[cfg(feature = "extra-children")]
14465 {
14466 emit_idx += 1;
14467 }
14468 #[cfg(feature = "extra-children")]
14469 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14470 extra_iter
14471 .next()
14472 .unwrap()
14473 .node
14474 .write_to(writer)
14475 .map_err(SerializeError::from)?;
14476 }
14477 if let Some(ref val) = self.o_math {
14478 val.write_element("w:oMath", writer)?;
14479 }
14480 #[cfg(feature = "extra-children")]
14481 {
14482 emit_idx += 1;
14483 }
14484 #[cfg(feature = "extra-children")]
14485 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14486 extra_iter
14487 .next()
14488 .unwrap()
14489 .node
14490 .write_to(writer)
14491 .map_err(SerializeError::from)?;
14492 }
14493 #[cfg(feature = "wml-track-changes")]
14494 if let Some(ref val) = self.r_pr_change {
14495 val.write_element("w:rPrChange", writer)?;
14496 }
14497 #[cfg(feature = "extra-children")]
14498 {
14499 emit_idx += 1;
14500 }
14501 #[cfg(feature = "extra-children")]
14502 for extra in extra_iter {
14503 extra.node.write_to(writer).map_err(SerializeError::from)?;
14504 }
14505 Ok(())
14506 }
14507
14508 fn is_empty_element(&self) -> bool {
14509 if self.ins.is_some() {
14510 return false;
14511 }
14512 if self.del.is_some() {
14513 return false;
14514 }
14515 if self.move_from.is_some() {
14516 return false;
14517 }
14518 if self.move_to.is_some() {
14519 return false;
14520 }
14521 if self.run_style.is_some() {
14522 return false;
14523 }
14524 if self.fonts.is_some() {
14525 return false;
14526 }
14527 if self.bold.is_some() {
14528 return false;
14529 }
14530 if self.b_cs.is_some() {
14531 return false;
14532 }
14533 if self.italic.is_some() {
14534 return false;
14535 }
14536 if self.i_cs.is_some() {
14537 return false;
14538 }
14539 if self.caps.is_some() {
14540 return false;
14541 }
14542 if self.small_caps.is_some() {
14543 return false;
14544 }
14545 if self.strikethrough.is_some() {
14546 return false;
14547 }
14548 if self.dstrike.is_some() {
14549 return false;
14550 }
14551 if self.outline.is_some() {
14552 return false;
14553 }
14554 if self.shadow.is_some() {
14555 return false;
14556 }
14557 if self.emboss.is_some() {
14558 return false;
14559 }
14560 if self.imprint.is_some() {
14561 return false;
14562 }
14563 if self.no_proof.is_some() {
14564 return false;
14565 }
14566 if self.snap_to_grid.is_some() {
14567 return false;
14568 }
14569 if self.vanish.is_some() {
14570 return false;
14571 }
14572 if self.web_hidden.is_some() {
14573 return false;
14574 }
14575 if self.color.is_some() {
14576 return false;
14577 }
14578 if self.spacing.is_some() {
14579 return false;
14580 }
14581 if self.width.is_some() {
14582 return false;
14583 }
14584 if self.kern.is_some() {
14585 return false;
14586 }
14587 if self.position.is_some() {
14588 return false;
14589 }
14590 if self.size.is_some() {
14591 return false;
14592 }
14593 if self.size_complex_script.is_some() {
14594 return false;
14595 }
14596 if self.highlight.is_some() {
14597 return false;
14598 }
14599 if self.underline.is_some() {
14600 return false;
14601 }
14602 if self.effect.is_some() {
14603 return false;
14604 }
14605 if self.bdr.is_some() {
14606 return false;
14607 }
14608 if self.shading.is_some() {
14609 return false;
14610 }
14611 if self.fit_text.is_some() {
14612 return false;
14613 }
14614 if self.vert_align.is_some() {
14615 return false;
14616 }
14617 if self.rtl.is_some() {
14618 return false;
14619 }
14620 if self.cs.is_some() {
14621 return false;
14622 }
14623 if self.em.is_some() {
14624 return false;
14625 }
14626 if self.lang.is_some() {
14627 return false;
14628 }
14629 if self.east_asian_layout.is_some() {
14630 return false;
14631 }
14632 if self.spec_vanish.is_some() {
14633 return false;
14634 }
14635 if self.o_math.is_some() {
14636 return false;
14637 }
14638 #[cfg(feature = "wml-track-changes")]
14639 if self.r_pr_change.is_some() {
14640 return false;
14641 }
14642 #[cfg(feature = "extra-children")]
14643 if !self.extra_children.is_empty() {
14644 return false;
14645 }
14646 true
14647 }
14648}
14649
14650impl ToXml for EGParaRPrTrackChanges {
14651 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
14652 #[cfg(feature = "extra-children")]
14653 let mut extra_iter = self.extra_children.iter().peekable();
14654 #[cfg(feature = "extra-children")]
14655 let mut emit_idx: usize = 0;
14656 #[cfg(feature = "extra-children")]
14657 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14658 extra_iter
14659 .next()
14660 .unwrap()
14661 .node
14662 .write_to(writer)
14663 .map_err(SerializeError::from)?;
14664 }
14665 if let Some(ref val) = self.ins {
14666 val.write_element("w:ins", writer)?;
14667 }
14668 #[cfg(feature = "extra-children")]
14669 {
14670 emit_idx += 1;
14671 }
14672 #[cfg(feature = "extra-children")]
14673 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14674 extra_iter
14675 .next()
14676 .unwrap()
14677 .node
14678 .write_to(writer)
14679 .map_err(SerializeError::from)?;
14680 }
14681 if let Some(ref val) = self.del {
14682 val.write_element("w:del", writer)?;
14683 }
14684 #[cfg(feature = "extra-children")]
14685 {
14686 emit_idx += 1;
14687 }
14688 #[cfg(feature = "extra-children")]
14689 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14690 extra_iter
14691 .next()
14692 .unwrap()
14693 .node
14694 .write_to(writer)
14695 .map_err(SerializeError::from)?;
14696 }
14697 if let Some(ref val) = self.move_from {
14698 val.write_element("w:moveFrom", writer)?;
14699 }
14700 #[cfg(feature = "extra-children")]
14701 {
14702 emit_idx += 1;
14703 }
14704 #[cfg(feature = "extra-children")]
14705 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14706 extra_iter
14707 .next()
14708 .unwrap()
14709 .node
14710 .write_to(writer)
14711 .map_err(SerializeError::from)?;
14712 }
14713 if let Some(ref val) = self.move_to {
14714 val.write_element("w:moveTo", writer)?;
14715 }
14716 #[cfg(feature = "extra-children")]
14717 {
14718 emit_idx += 1;
14719 }
14720 #[cfg(feature = "extra-children")]
14721 for extra in extra_iter {
14722 extra.node.write_to(writer).map_err(SerializeError::from)?;
14723 }
14724 Ok(())
14725 }
14726
14727 fn is_empty_element(&self) -> bool {
14728 if self.ins.is_some() {
14729 return false;
14730 }
14731 if self.del.is_some() {
14732 return false;
14733 }
14734 if self.move_from.is_some() {
14735 return false;
14736 }
14737 if self.move_to.is_some() {
14738 return false;
14739 }
14740 #[cfg(feature = "extra-children")]
14741 if !self.extra_children.is_empty() {
14742 return false;
14743 }
14744 true
14745 }
14746}
14747
14748impl ToXml for CTAltChunk {
14749 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
14750 #[allow(unused_mut)]
14751 let mut start = start;
14752 if let Some(ref val) = self.id {
14753 start.push_attribute(("r:id", val.as_str()));
14754 }
14755 #[cfg(feature = "extra-attrs")]
14756 for (key, value) in &self.extra_attrs {
14757 start.push_attribute((key.as_str(), value.as_str()));
14758 }
14759 start
14760 }
14761
14762 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
14763 #[cfg(feature = "extra-children")]
14764 let mut extra_iter = self.extra_children.iter().peekable();
14765 #[cfg(feature = "extra-children")]
14766 let mut emit_idx: usize = 0;
14767 #[cfg(feature = "extra-children")]
14768 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14769 extra_iter
14770 .next()
14771 .unwrap()
14772 .node
14773 .write_to(writer)
14774 .map_err(SerializeError::from)?;
14775 }
14776 #[cfg(feature = "wml-settings")]
14777 if let Some(ref val) = self.alt_chunk_pr {
14778 val.write_element("w:altChunkPr", writer)?;
14779 }
14780 #[cfg(feature = "extra-children")]
14781 {
14782 emit_idx += 1;
14783 }
14784 #[cfg(feature = "extra-children")]
14785 for extra in extra_iter {
14786 extra.node.write_to(writer).map_err(SerializeError::from)?;
14787 }
14788 Ok(())
14789 }
14790
14791 fn is_empty_element(&self) -> bool {
14792 #[cfg(feature = "wml-settings")]
14793 if self.alt_chunk_pr.is_some() {
14794 return false;
14795 }
14796 #[cfg(feature = "extra-children")]
14797 if !self.extra_children.is_empty() {
14798 return false;
14799 }
14800 true
14801 }
14802}
14803
14804impl ToXml for CTAltChunkPr {
14805 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
14806 #[cfg(feature = "extra-children")]
14807 let mut extra_iter = self.extra_children.iter().peekable();
14808 #[cfg(feature = "extra-children")]
14809 let mut emit_idx: usize = 0;
14810 #[cfg(feature = "extra-children")]
14811 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14812 extra_iter
14813 .next()
14814 .unwrap()
14815 .node
14816 .write_to(writer)
14817 .map_err(SerializeError::from)?;
14818 }
14819 #[cfg(feature = "wml-settings")]
14820 if let Some(ref val) = self.match_src {
14821 val.write_element("w:matchSrc", writer)?;
14822 }
14823 #[cfg(feature = "extra-children")]
14824 {
14825 emit_idx += 1;
14826 }
14827 #[cfg(feature = "extra-children")]
14828 for extra in extra_iter {
14829 extra.node.write_to(writer).map_err(SerializeError::from)?;
14830 }
14831 Ok(())
14832 }
14833
14834 fn is_empty_element(&self) -> bool {
14835 #[cfg(feature = "wml-settings")]
14836 if self.match_src.is_some() {
14837 return false;
14838 }
14839 #[cfg(feature = "extra-children")]
14840 if !self.extra_children.is_empty() {
14841 return false;
14842 }
14843 true
14844 }
14845}
14846
14847impl ToXml for CTRubyAlign {
14848 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
14849 #[allow(unused_mut)]
14850 let mut start = start;
14851 {
14852 let val = &self.value;
14853 {
14854 let s = val.to_string();
14855 start.push_attribute(("w:val", s.as_str()));
14856 }
14857 }
14858 #[cfg(feature = "extra-attrs")]
14859 for (key, value) in &self.extra_attrs {
14860 start.push_attribute((key.as_str(), value.as_str()));
14861 }
14862 start
14863 }
14864
14865 fn is_empty_element(&self) -> bool {
14866 true
14867 }
14868}
14869
14870impl ToXml for CTRubyPr {
14871 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
14872 #[cfg(feature = "extra-children")]
14873 let mut extra_iter = self.extra_children.iter().peekable();
14874 #[cfg(feature = "extra-children")]
14875 let mut emit_idx: usize = 0;
14876 #[cfg(feature = "extra-children")]
14877 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14878 extra_iter
14879 .next()
14880 .unwrap()
14881 .node
14882 .write_to(writer)
14883 .map_err(SerializeError::from)?;
14884 }
14885 #[cfg(feature = "wml-styling")]
14886 {
14887 let val = &self.ruby_align;
14888 val.write_element("w:rubyAlign", writer)?;
14889 }
14890 #[cfg(feature = "extra-children")]
14891 {
14892 emit_idx += 1;
14893 }
14894 #[cfg(feature = "extra-children")]
14895 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14896 extra_iter
14897 .next()
14898 .unwrap()
14899 .node
14900 .write_to(writer)
14901 .map_err(SerializeError::from)?;
14902 }
14903 #[cfg(feature = "wml-styling")]
14904 {
14905 let val = &self.hps;
14906 val.write_element("w:hps", writer)?;
14907 }
14908 #[cfg(feature = "extra-children")]
14909 {
14910 emit_idx += 1;
14911 }
14912 #[cfg(feature = "extra-children")]
14913 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14914 extra_iter
14915 .next()
14916 .unwrap()
14917 .node
14918 .write_to(writer)
14919 .map_err(SerializeError::from)?;
14920 }
14921 #[cfg(feature = "wml-styling")]
14922 {
14923 let val = &self.hps_raise;
14924 val.write_element("w:hpsRaise", writer)?;
14925 }
14926 #[cfg(feature = "extra-children")]
14927 {
14928 emit_idx += 1;
14929 }
14930 #[cfg(feature = "extra-children")]
14931 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14932 extra_iter
14933 .next()
14934 .unwrap()
14935 .node
14936 .write_to(writer)
14937 .map_err(SerializeError::from)?;
14938 }
14939 #[cfg(feature = "wml-styling")]
14940 {
14941 let val = &self.hps_base_text;
14942 val.write_element("w:hpsBaseText", writer)?;
14943 }
14944 #[cfg(feature = "extra-children")]
14945 {
14946 emit_idx += 1;
14947 }
14948 #[cfg(feature = "extra-children")]
14949 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14950 extra_iter
14951 .next()
14952 .unwrap()
14953 .node
14954 .write_to(writer)
14955 .map_err(SerializeError::from)?;
14956 }
14957 #[cfg(feature = "wml-styling")]
14958 {
14959 let val = &self.lid;
14960 val.write_element("w:lid", writer)?;
14961 }
14962 #[cfg(feature = "extra-children")]
14963 {
14964 emit_idx += 1;
14965 }
14966 #[cfg(feature = "extra-children")]
14967 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14968 extra_iter
14969 .next()
14970 .unwrap()
14971 .node
14972 .write_to(writer)
14973 .map_err(SerializeError::from)?;
14974 }
14975 #[cfg(feature = "wml-styling")]
14976 if let Some(ref val) = self.dirty {
14977 val.write_element("w:dirty", writer)?;
14978 }
14979 #[cfg(feature = "extra-children")]
14980 {
14981 emit_idx += 1;
14982 }
14983 #[cfg(feature = "extra-children")]
14984 for extra in extra_iter {
14985 extra.node.write_to(writer).map_err(SerializeError::from)?;
14986 }
14987 Ok(())
14988 }
14989
14990 fn is_empty_element(&self) -> bool {
14991 #[cfg(feature = "wml-styling")]
14992 return false;
14993 #[cfg(feature = "wml-styling")]
14994 return false;
14995 #[cfg(feature = "wml-styling")]
14996 return false;
14997 #[cfg(feature = "wml-styling")]
14998 return false;
14999 #[cfg(feature = "wml-styling")]
15000 return false;
15001 #[cfg(feature = "wml-styling")]
15002 if self.dirty.is_some() {
15003 return false;
15004 }
15005 #[cfg(feature = "extra-children")]
15006 if !self.extra_children.is_empty() {
15007 return false;
15008 }
15009 true
15010 }
15011}
15012
15013impl ToXml for RubyContent {
15014 fn write_element<W: Write>(
15015 &self,
15016 _tag: &str,
15017 writer: &mut Writer<W>,
15018 ) -> Result<(), SerializeError> {
15019 match self {
15020 Self::R(inner) => inner.write_element("w:r", writer)?,
15021 Self::ProofErr(inner) => inner.write_element("w:proofErr", writer)?,
15022 Self::PermStart(inner) => inner.write_element("w:permStart", writer)?,
15023 Self::PermEnd(inner) => inner.write_element("w:permEnd", writer)?,
15024 Self::BookmarkStart(inner) => inner.write_element("w:bookmarkStart", writer)?,
15025 Self::BookmarkEnd(inner) => inner.write_element("w:bookmarkEnd", writer)?,
15026 Self::MoveFromRangeStart(inner) => {
15027 inner.write_element("w:moveFromRangeStart", writer)?
15028 }
15029 Self::MoveFromRangeEnd(inner) => inner.write_element("w:moveFromRangeEnd", writer)?,
15030 Self::MoveToRangeStart(inner) => inner.write_element("w:moveToRangeStart", writer)?,
15031 Self::MoveToRangeEnd(inner) => inner.write_element("w:moveToRangeEnd", writer)?,
15032 Self::CommentRangeStart(inner) => inner.write_element("w:commentRangeStart", writer)?,
15033 Self::CommentRangeEnd(inner) => inner.write_element("w:commentRangeEnd", writer)?,
15034 Self::CustomXmlInsRangeStart(inner) => {
15035 inner.write_element("w:customXmlInsRangeStart", writer)?
15036 }
15037 Self::CustomXmlInsRangeEnd(inner) => {
15038 inner.write_element("w:customXmlInsRangeEnd", writer)?
15039 }
15040 Self::CustomXmlDelRangeStart(inner) => {
15041 inner.write_element("w:customXmlDelRangeStart", writer)?
15042 }
15043 Self::CustomXmlDelRangeEnd(inner) => {
15044 inner.write_element("w:customXmlDelRangeEnd", writer)?
15045 }
15046 Self::CustomXmlMoveFromRangeStart(inner) => {
15047 inner.write_element("w:customXmlMoveFromRangeStart", writer)?
15048 }
15049 Self::CustomXmlMoveFromRangeEnd(inner) => {
15050 inner.write_element("w:customXmlMoveFromRangeEnd", writer)?
15051 }
15052 Self::CustomXmlMoveToRangeStart(inner) => {
15053 inner.write_element("w:customXmlMoveToRangeStart", writer)?
15054 }
15055 Self::CustomXmlMoveToRangeEnd(inner) => {
15056 inner.write_element("w:customXmlMoveToRangeEnd", writer)?
15057 }
15058 Self::Ins(inner) => inner.write_element("w:ins", writer)?,
15059 Self::Del(inner) => inner.write_element("w:del", writer)?,
15060 Self::MoveFrom(inner) => inner.write_element("w:moveFrom", writer)?,
15061 Self::MoveTo(inner) => inner.write_element("w:moveTo", writer)?,
15062 }
15063 Ok(())
15064 }
15065}
15066
15067impl ToXml for CTRubyContent {
15068 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15069 #[cfg(feature = "extra-children")]
15070 let mut extra_iter = self.extra_children.iter().peekable();
15071 #[cfg(feature = "extra-children")]
15072 let mut emit_idx: usize = 0;
15073 for item in &self.ruby_content {
15074 #[cfg(feature = "extra-children")]
15075 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15076 extra_iter
15077 .next()
15078 .unwrap()
15079 .node
15080 .write_to(writer)
15081 .map_err(SerializeError::from)?;
15082 }
15083 item.write_element("", writer)?;
15084 #[cfg(feature = "extra-children")]
15085 {
15086 emit_idx += 1;
15087 }
15088 }
15089 #[cfg(feature = "extra-children")]
15090 for extra in extra_iter {
15091 extra.node.write_to(writer).map_err(SerializeError::from)?;
15092 }
15093 Ok(())
15094 }
15095
15096 fn is_empty_element(&self) -> bool {
15097 if !self.ruby_content.is_empty() {
15098 return false;
15099 }
15100 #[cfg(feature = "extra-children")]
15101 if !self.extra_children.is_empty() {
15102 return false;
15103 }
15104 true
15105 }
15106}
15107
15108impl ToXml for CTRuby {
15109 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15110 #[cfg(feature = "extra-children")]
15111 let mut extra_iter = self.extra_children.iter().peekable();
15112 #[cfg(feature = "extra-children")]
15113 let mut emit_idx: usize = 0;
15114 #[cfg(feature = "extra-children")]
15115 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15116 extra_iter
15117 .next()
15118 .unwrap()
15119 .node
15120 .write_to(writer)
15121 .map_err(SerializeError::from)?;
15122 }
15123 #[cfg(feature = "wml-styling")]
15124 {
15125 let val = &self.ruby_pr;
15126 val.write_element("w:rubyPr", writer)?;
15127 }
15128 #[cfg(feature = "extra-children")]
15129 {
15130 emit_idx += 1;
15131 }
15132 #[cfg(feature = "extra-children")]
15133 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15134 extra_iter
15135 .next()
15136 .unwrap()
15137 .node
15138 .write_to(writer)
15139 .map_err(SerializeError::from)?;
15140 }
15141 {
15142 let val = &self.rt;
15143 val.write_element("w:rt", writer)?;
15144 }
15145 #[cfg(feature = "extra-children")]
15146 {
15147 emit_idx += 1;
15148 }
15149 #[cfg(feature = "extra-children")]
15150 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15151 extra_iter
15152 .next()
15153 .unwrap()
15154 .node
15155 .write_to(writer)
15156 .map_err(SerializeError::from)?;
15157 }
15158 {
15159 let val = &self.ruby_base;
15160 val.write_element("w:rubyBase", writer)?;
15161 }
15162 #[cfg(feature = "extra-children")]
15163 {
15164 emit_idx += 1;
15165 }
15166 #[cfg(feature = "extra-children")]
15167 for extra in extra_iter {
15168 extra.node.write_to(writer).map_err(SerializeError::from)?;
15169 }
15170 Ok(())
15171 }
15172
15173 fn is_empty_element(&self) -> bool {
15174 #[cfg(feature = "wml-styling")]
15175 return false;
15176 false
15177 }
15178}
15179
15180impl ToXml for CTLock {
15181 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15182 #[allow(unused_mut)]
15183 let mut start = start;
15184 if let Some(ref val) = self.value {
15185 {
15186 let s = val.to_string();
15187 start.push_attribute(("w:val", s.as_str()));
15188 }
15189 }
15190 #[cfg(feature = "extra-attrs")]
15191 for (key, value) in &self.extra_attrs {
15192 start.push_attribute((key.as_str(), value.as_str()));
15193 }
15194 start
15195 }
15196
15197 fn is_empty_element(&self) -> bool {
15198 true
15199 }
15200}
15201
15202impl ToXml for CTSdtListItem {
15203 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15204 #[allow(unused_mut)]
15205 let mut start = start;
15206 if let Some(ref val) = self.display_text {
15207 start.push_attribute(("w:displayText", val.as_str()));
15208 }
15209 if let Some(ref val) = self.value {
15210 start.push_attribute(("w:value", val.as_str()));
15211 }
15212 #[cfg(feature = "extra-attrs")]
15213 for (key, value) in &self.extra_attrs {
15214 start.push_attribute((key.as_str(), value.as_str()));
15215 }
15216 start
15217 }
15218
15219 fn is_empty_element(&self) -> bool {
15220 true
15221 }
15222}
15223
15224impl ToXml for CTSdtDateMappingType {
15225 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15226 #[allow(unused_mut)]
15227 let mut start = start;
15228 if let Some(ref val) = self.value {
15229 {
15230 let s = val.to_string();
15231 start.push_attribute(("w:val", s.as_str()));
15232 }
15233 }
15234 #[cfg(feature = "extra-attrs")]
15235 for (key, value) in &self.extra_attrs {
15236 start.push_attribute((key.as_str(), value.as_str()));
15237 }
15238 start
15239 }
15240
15241 fn is_empty_element(&self) -> bool {
15242 true
15243 }
15244}
15245
15246impl ToXml for CTCalendarType {
15247 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15248 #[allow(unused_mut)]
15249 let mut start = start;
15250 if let Some(ref val) = self.value {
15251 {
15252 let s = val.to_string();
15253 start.push_attribute(("w:val", s.as_str()));
15254 }
15255 }
15256 #[cfg(feature = "extra-attrs")]
15257 for (key, value) in &self.extra_attrs {
15258 start.push_attribute((key.as_str(), value.as_str()));
15259 }
15260 start
15261 }
15262
15263 fn is_empty_element(&self) -> bool {
15264 true
15265 }
15266}
15267
15268impl ToXml for CTSdtDate {
15269 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15270 #[allow(unused_mut)]
15271 let mut start = start;
15272 #[cfg(feature = "wml-settings")]
15273 if let Some(ref val) = self.full_date {
15274 start.push_attribute(("w:fullDate", val.as_str()));
15275 }
15276 #[cfg(feature = "extra-attrs")]
15277 for (key, value) in &self.extra_attrs {
15278 start.push_attribute((key.as_str(), value.as_str()));
15279 }
15280 start
15281 }
15282
15283 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15284 #[cfg(feature = "extra-children")]
15285 let mut extra_iter = self.extra_children.iter().peekable();
15286 #[cfg(feature = "extra-children")]
15287 let mut emit_idx: usize = 0;
15288 #[cfg(feature = "extra-children")]
15289 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15290 extra_iter
15291 .next()
15292 .unwrap()
15293 .node
15294 .write_to(writer)
15295 .map_err(SerializeError::from)?;
15296 }
15297 #[cfg(feature = "wml-settings")]
15298 if let Some(ref val) = self.date_format {
15299 val.write_element("w:dateFormat", writer)?;
15300 }
15301 #[cfg(feature = "extra-children")]
15302 {
15303 emit_idx += 1;
15304 }
15305 #[cfg(feature = "extra-children")]
15306 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15307 extra_iter
15308 .next()
15309 .unwrap()
15310 .node
15311 .write_to(writer)
15312 .map_err(SerializeError::from)?;
15313 }
15314 #[cfg(feature = "wml-settings")]
15315 if let Some(ref val) = self.lid {
15316 val.write_element("w:lid", writer)?;
15317 }
15318 #[cfg(feature = "extra-children")]
15319 {
15320 emit_idx += 1;
15321 }
15322 #[cfg(feature = "extra-children")]
15323 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15324 extra_iter
15325 .next()
15326 .unwrap()
15327 .node
15328 .write_to(writer)
15329 .map_err(SerializeError::from)?;
15330 }
15331 #[cfg(feature = "wml-settings")]
15332 if let Some(ref val) = self.store_mapped_data_as {
15333 val.write_element("w:storeMappedDataAs", writer)?;
15334 }
15335 #[cfg(feature = "extra-children")]
15336 {
15337 emit_idx += 1;
15338 }
15339 #[cfg(feature = "extra-children")]
15340 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15341 extra_iter
15342 .next()
15343 .unwrap()
15344 .node
15345 .write_to(writer)
15346 .map_err(SerializeError::from)?;
15347 }
15348 #[cfg(feature = "wml-settings")]
15349 if let Some(ref val) = self.calendar {
15350 val.write_element("w:calendar", writer)?;
15351 }
15352 #[cfg(feature = "extra-children")]
15353 {
15354 emit_idx += 1;
15355 }
15356 #[cfg(feature = "extra-children")]
15357 for extra in extra_iter {
15358 extra.node.write_to(writer).map_err(SerializeError::from)?;
15359 }
15360 Ok(())
15361 }
15362
15363 fn is_empty_element(&self) -> bool {
15364 #[cfg(feature = "wml-settings")]
15365 if self.date_format.is_some() {
15366 return false;
15367 }
15368 #[cfg(feature = "wml-settings")]
15369 if self.lid.is_some() {
15370 return false;
15371 }
15372 #[cfg(feature = "wml-settings")]
15373 if self.store_mapped_data_as.is_some() {
15374 return false;
15375 }
15376 #[cfg(feature = "wml-settings")]
15377 if self.calendar.is_some() {
15378 return false;
15379 }
15380 #[cfg(feature = "extra-children")]
15381 if !self.extra_children.is_empty() {
15382 return false;
15383 }
15384 true
15385 }
15386}
15387
15388impl ToXml for CTSdtComboBox {
15389 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15390 #[allow(unused_mut)]
15391 let mut start = start;
15392 #[cfg(feature = "wml-settings")]
15393 if let Some(ref val) = self.last_value {
15394 start.push_attribute(("w:lastValue", val.as_str()));
15395 }
15396 #[cfg(feature = "extra-attrs")]
15397 for (key, value) in &self.extra_attrs {
15398 start.push_attribute((key.as_str(), value.as_str()));
15399 }
15400 start
15401 }
15402
15403 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15404 #[cfg(feature = "extra-children")]
15405 let mut extra_iter = self.extra_children.iter().peekable();
15406 #[cfg(feature = "extra-children")]
15407 let mut emit_idx: usize = 0;
15408 #[cfg(feature = "wml-settings")]
15409 for item in &self.list_item {
15410 #[cfg(feature = "extra-children")]
15411 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15412 extra_iter
15413 .next()
15414 .unwrap()
15415 .node
15416 .write_to(writer)
15417 .map_err(SerializeError::from)?;
15418 }
15419 item.write_element("w:listItem", writer)?;
15420 #[cfg(feature = "extra-children")]
15421 {
15422 emit_idx += 1;
15423 }
15424 }
15425 #[cfg(feature = "extra-children")]
15426 for extra in extra_iter {
15427 extra.node.write_to(writer).map_err(SerializeError::from)?;
15428 }
15429 Ok(())
15430 }
15431
15432 fn is_empty_element(&self) -> bool {
15433 #[cfg(feature = "wml-settings")]
15434 if !self.list_item.is_empty() {
15435 return false;
15436 }
15437 #[cfg(feature = "extra-children")]
15438 if !self.extra_children.is_empty() {
15439 return false;
15440 }
15441 true
15442 }
15443}
15444
15445impl ToXml for CTSdtDocPart {
15446 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15447 #[cfg(feature = "extra-children")]
15448 let mut extra_iter = self.extra_children.iter().peekable();
15449 #[cfg(feature = "extra-children")]
15450 let mut emit_idx: usize = 0;
15451 #[cfg(feature = "extra-children")]
15452 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15453 extra_iter
15454 .next()
15455 .unwrap()
15456 .node
15457 .write_to(writer)
15458 .map_err(SerializeError::from)?;
15459 }
15460 #[cfg(feature = "wml-settings")]
15461 if let Some(ref val) = self.doc_part_gallery {
15462 val.write_element("w:docPartGallery", writer)?;
15463 }
15464 #[cfg(feature = "extra-children")]
15465 {
15466 emit_idx += 1;
15467 }
15468 #[cfg(feature = "extra-children")]
15469 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15470 extra_iter
15471 .next()
15472 .unwrap()
15473 .node
15474 .write_to(writer)
15475 .map_err(SerializeError::from)?;
15476 }
15477 #[cfg(feature = "wml-settings")]
15478 if let Some(ref val) = self.doc_part_category {
15479 val.write_element("w:docPartCategory", writer)?;
15480 }
15481 #[cfg(feature = "extra-children")]
15482 {
15483 emit_idx += 1;
15484 }
15485 #[cfg(feature = "extra-children")]
15486 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15487 extra_iter
15488 .next()
15489 .unwrap()
15490 .node
15491 .write_to(writer)
15492 .map_err(SerializeError::from)?;
15493 }
15494 #[cfg(feature = "wml-settings")]
15495 if let Some(ref val) = self.doc_part_unique {
15496 val.write_element("w:docPartUnique", writer)?;
15497 }
15498 #[cfg(feature = "extra-children")]
15499 {
15500 emit_idx += 1;
15501 }
15502 #[cfg(feature = "extra-children")]
15503 for extra in extra_iter {
15504 extra.node.write_to(writer).map_err(SerializeError::from)?;
15505 }
15506 Ok(())
15507 }
15508
15509 fn is_empty_element(&self) -> bool {
15510 #[cfg(feature = "wml-settings")]
15511 if self.doc_part_gallery.is_some() {
15512 return false;
15513 }
15514 #[cfg(feature = "wml-settings")]
15515 if self.doc_part_category.is_some() {
15516 return false;
15517 }
15518 #[cfg(feature = "wml-settings")]
15519 if self.doc_part_unique.is_some() {
15520 return false;
15521 }
15522 #[cfg(feature = "extra-children")]
15523 if !self.extra_children.is_empty() {
15524 return false;
15525 }
15526 true
15527 }
15528}
15529
15530impl ToXml for CTSdtDropDownList {
15531 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15532 #[allow(unused_mut)]
15533 let mut start = start;
15534 #[cfg(feature = "wml-settings")]
15535 if let Some(ref val) = self.last_value {
15536 start.push_attribute(("w:lastValue", val.as_str()));
15537 }
15538 #[cfg(feature = "extra-attrs")]
15539 for (key, value) in &self.extra_attrs {
15540 start.push_attribute((key.as_str(), value.as_str()));
15541 }
15542 start
15543 }
15544
15545 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15546 #[cfg(feature = "extra-children")]
15547 let mut extra_iter = self.extra_children.iter().peekable();
15548 #[cfg(feature = "extra-children")]
15549 let mut emit_idx: usize = 0;
15550 #[cfg(feature = "wml-settings")]
15551 for item in &self.list_item {
15552 #[cfg(feature = "extra-children")]
15553 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15554 extra_iter
15555 .next()
15556 .unwrap()
15557 .node
15558 .write_to(writer)
15559 .map_err(SerializeError::from)?;
15560 }
15561 item.write_element("w:listItem", writer)?;
15562 #[cfg(feature = "extra-children")]
15563 {
15564 emit_idx += 1;
15565 }
15566 }
15567 #[cfg(feature = "extra-children")]
15568 for extra in extra_iter {
15569 extra.node.write_to(writer).map_err(SerializeError::from)?;
15570 }
15571 Ok(())
15572 }
15573
15574 fn is_empty_element(&self) -> bool {
15575 #[cfg(feature = "wml-settings")]
15576 if !self.list_item.is_empty() {
15577 return false;
15578 }
15579 #[cfg(feature = "extra-children")]
15580 if !self.extra_children.is_empty() {
15581 return false;
15582 }
15583 true
15584 }
15585}
15586
15587impl ToXml for CTSdtText {
15588 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15589 #[allow(unused_mut)]
15590 let mut start = start;
15591 #[cfg(feature = "wml-settings")]
15592 if let Some(ref val) = self.multi_line {
15593 {
15594 let s = val.to_string();
15595 start.push_attribute(("w:multiLine", s.as_str()));
15596 }
15597 }
15598 #[cfg(feature = "extra-attrs")]
15599 for (key, value) in &self.extra_attrs {
15600 start.push_attribute((key.as_str(), value.as_str()));
15601 }
15602 start
15603 }
15604
15605 fn is_empty_element(&self) -> bool {
15606 true
15607 }
15608}
15609
15610impl ToXml for CTDataBinding {
15611 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15612 #[allow(unused_mut)]
15613 let mut start = start;
15614 #[cfg(feature = "wml-settings")]
15615 if let Some(ref val) = self.prefix_mappings {
15616 start.push_attribute(("w:prefixMappings", val.as_str()));
15617 }
15618 #[cfg(feature = "wml-settings")]
15619 {
15620 let val = &self.xpath;
15621 start.push_attribute(("w:xpath", val.as_str()));
15622 }
15623 #[cfg(feature = "wml-settings")]
15624 {
15625 let val = &self.store_item_i_d;
15626 start.push_attribute(("w:storeItemID", val.as_str()));
15627 }
15628 #[cfg(feature = "extra-attrs")]
15629 for (key, value) in &self.extra_attrs {
15630 start.push_attribute((key.as_str(), value.as_str()));
15631 }
15632 start
15633 }
15634
15635 fn is_empty_element(&self) -> bool {
15636 true
15637 }
15638}
15639
15640impl ToXml for CTSdtPr {
15641 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15642 #[cfg(feature = "extra-children")]
15643 let mut extra_iter = self.extra_children.iter().peekable();
15644 #[cfg(feature = "extra-children")]
15645 let mut emit_idx: usize = 0;
15646 #[cfg(feature = "extra-children")]
15647 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15648 extra_iter
15649 .next()
15650 .unwrap()
15651 .node
15652 .write_to(writer)
15653 .map_err(SerializeError::from)?;
15654 }
15655 #[cfg(feature = "wml-settings")]
15656 if let Some(ref val) = self.r_pr {
15657 val.write_element("w:rPr", writer)?;
15658 }
15659 #[cfg(feature = "extra-children")]
15660 {
15661 emit_idx += 1;
15662 }
15663 #[cfg(feature = "extra-children")]
15664 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15665 extra_iter
15666 .next()
15667 .unwrap()
15668 .node
15669 .write_to(writer)
15670 .map_err(SerializeError::from)?;
15671 }
15672 #[cfg(feature = "wml-settings")]
15673 if let Some(ref val) = self.alias {
15674 val.write_element("w:alias", writer)?;
15675 }
15676 #[cfg(feature = "extra-children")]
15677 {
15678 emit_idx += 1;
15679 }
15680 #[cfg(feature = "extra-children")]
15681 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15682 extra_iter
15683 .next()
15684 .unwrap()
15685 .node
15686 .write_to(writer)
15687 .map_err(SerializeError::from)?;
15688 }
15689 #[cfg(feature = "wml-settings")]
15690 if let Some(ref val) = self.tag {
15691 val.write_element("w:tag", writer)?;
15692 }
15693 #[cfg(feature = "extra-children")]
15694 {
15695 emit_idx += 1;
15696 }
15697 #[cfg(feature = "extra-children")]
15698 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15699 extra_iter
15700 .next()
15701 .unwrap()
15702 .node
15703 .write_to(writer)
15704 .map_err(SerializeError::from)?;
15705 }
15706 #[cfg(feature = "wml-settings")]
15707 if let Some(ref val) = self.id {
15708 val.write_element("w:id", writer)?;
15709 }
15710 #[cfg(feature = "extra-children")]
15711 {
15712 emit_idx += 1;
15713 }
15714 #[cfg(feature = "extra-children")]
15715 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15716 extra_iter
15717 .next()
15718 .unwrap()
15719 .node
15720 .write_to(writer)
15721 .map_err(SerializeError::from)?;
15722 }
15723 #[cfg(feature = "wml-settings")]
15724 if let Some(ref val) = self.lock {
15725 val.write_element("w:lock", writer)?;
15726 }
15727 #[cfg(feature = "extra-children")]
15728 {
15729 emit_idx += 1;
15730 }
15731 #[cfg(feature = "extra-children")]
15732 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15733 extra_iter
15734 .next()
15735 .unwrap()
15736 .node
15737 .write_to(writer)
15738 .map_err(SerializeError::from)?;
15739 }
15740 #[cfg(feature = "wml-settings")]
15741 if let Some(ref val) = self.placeholder {
15742 val.write_element("w:placeholder", writer)?;
15743 }
15744 #[cfg(feature = "extra-children")]
15745 {
15746 emit_idx += 1;
15747 }
15748 #[cfg(feature = "extra-children")]
15749 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15750 extra_iter
15751 .next()
15752 .unwrap()
15753 .node
15754 .write_to(writer)
15755 .map_err(SerializeError::from)?;
15756 }
15757 #[cfg(feature = "wml-settings")]
15758 if let Some(ref val) = self.temporary {
15759 val.write_element("w:temporary", writer)?;
15760 }
15761 #[cfg(feature = "extra-children")]
15762 {
15763 emit_idx += 1;
15764 }
15765 #[cfg(feature = "extra-children")]
15766 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15767 extra_iter
15768 .next()
15769 .unwrap()
15770 .node
15771 .write_to(writer)
15772 .map_err(SerializeError::from)?;
15773 }
15774 #[cfg(feature = "wml-settings")]
15775 if let Some(ref val) = self.showing_plc_hdr {
15776 val.write_element("w:showingPlcHdr", writer)?;
15777 }
15778 #[cfg(feature = "extra-children")]
15779 {
15780 emit_idx += 1;
15781 }
15782 #[cfg(feature = "extra-children")]
15783 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15784 extra_iter
15785 .next()
15786 .unwrap()
15787 .node
15788 .write_to(writer)
15789 .map_err(SerializeError::from)?;
15790 }
15791 #[cfg(feature = "wml-settings")]
15792 if let Some(ref val) = self.data_binding {
15793 val.write_element("w:dataBinding", writer)?;
15794 }
15795 #[cfg(feature = "extra-children")]
15796 {
15797 emit_idx += 1;
15798 }
15799 #[cfg(feature = "extra-children")]
15800 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15801 extra_iter
15802 .next()
15803 .unwrap()
15804 .node
15805 .write_to(writer)
15806 .map_err(SerializeError::from)?;
15807 }
15808 #[cfg(feature = "wml-settings")]
15809 if let Some(ref val) = self.label {
15810 val.write_element("w:label", writer)?;
15811 }
15812 #[cfg(feature = "extra-children")]
15813 {
15814 emit_idx += 1;
15815 }
15816 #[cfg(feature = "extra-children")]
15817 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15818 extra_iter
15819 .next()
15820 .unwrap()
15821 .node
15822 .write_to(writer)
15823 .map_err(SerializeError::from)?;
15824 }
15825 #[cfg(feature = "wml-settings")]
15826 if let Some(ref val) = self.tab_index {
15827 val.write_element("w:tabIndex", writer)?;
15828 }
15829 #[cfg(feature = "extra-children")]
15830 {
15831 emit_idx += 1;
15832 }
15833 #[cfg(feature = "extra-children")]
15834 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15835 extra_iter
15836 .next()
15837 .unwrap()
15838 .node
15839 .write_to(writer)
15840 .map_err(SerializeError::from)?;
15841 }
15842 #[cfg(feature = "wml-settings")]
15843 if let Some(ref val) = self.equation {
15844 val.write_element("w:equation", writer)?;
15845 }
15846 #[cfg(feature = "extra-children")]
15847 {
15848 emit_idx += 1;
15849 }
15850 #[cfg(feature = "extra-children")]
15851 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15852 extra_iter
15853 .next()
15854 .unwrap()
15855 .node
15856 .write_to(writer)
15857 .map_err(SerializeError::from)?;
15858 }
15859 #[cfg(feature = "wml-settings")]
15860 if let Some(ref val) = self.combo_box {
15861 val.write_element("w:comboBox", writer)?;
15862 }
15863 #[cfg(feature = "extra-children")]
15864 {
15865 emit_idx += 1;
15866 }
15867 #[cfg(feature = "extra-children")]
15868 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15869 extra_iter
15870 .next()
15871 .unwrap()
15872 .node
15873 .write_to(writer)
15874 .map_err(SerializeError::from)?;
15875 }
15876 #[cfg(feature = "wml-settings")]
15877 if let Some(ref val) = self.date {
15878 val.write_element("w:date", writer)?;
15879 }
15880 #[cfg(feature = "extra-children")]
15881 {
15882 emit_idx += 1;
15883 }
15884 #[cfg(feature = "extra-children")]
15885 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15886 extra_iter
15887 .next()
15888 .unwrap()
15889 .node
15890 .write_to(writer)
15891 .map_err(SerializeError::from)?;
15892 }
15893 #[cfg(feature = "wml-settings")]
15894 if let Some(ref val) = self.doc_part_obj {
15895 val.write_element("w:docPartObj", writer)?;
15896 }
15897 #[cfg(feature = "extra-children")]
15898 {
15899 emit_idx += 1;
15900 }
15901 #[cfg(feature = "extra-children")]
15902 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15903 extra_iter
15904 .next()
15905 .unwrap()
15906 .node
15907 .write_to(writer)
15908 .map_err(SerializeError::from)?;
15909 }
15910 #[cfg(feature = "wml-settings")]
15911 if let Some(ref val) = self.doc_part_list {
15912 val.write_element("w:docPartList", writer)?;
15913 }
15914 #[cfg(feature = "extra-children")]
15915 {
15916 emit_idx += 1;
15917 }
15918 #[cfg(feature = "extra-children")]
15919 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15920 extra_iter
15921 .next()
15922 .unwrap()
15923 .node
15924 .write_to(writer)
15925 .map_err(SerializeError::from)?;
15926 }
15927 #[cfg(feature = "wml-settings")]
15928 if let Some(ref val) = self.drop_down_list {
15929 val.write_element("w:dropDownList", writer)?;
15930 }
15931 #[cfg(feature = "extra-children")]
15932 {
15933 emit_idx += 1;
15934 }
15935 #[cfg(feature = "extra-children")]
15936 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15937 extra_iter
15938 .next()
15939 .unwrap()
15940 .node
15941 .write_to(writer)
15942 .map_err(SerializeError::from)?;
15943 }
15944 #[cfg(feature = "wml-settings")]
15945 if let Some(ref val) = self.picture {
15946 val.write_element("w:picture", writer)?;
15947 }
15948 #[cfg(feature = "extra-children")]
15949 {
15950 emit_idx += 1;
15951 }
15952 #[cfg(feature = "extra-children")]
15953 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15954 extra_iter
15955 .next()
15956 .unwrap()
15957 .node
15958 .write_to(writer)
15959 .map_err(SerializeError::from)?;
15960 }
15961 #[cfg(feature = "wml-settings")]
15962 if let Some(ref val) = self.rich_text {
15963 val.write_element("w:richText", writer)?;
15964 }
15965 #[cfg(feature = "extra-children")]
15966 {
15967 emit_idx += 1;
15968 }
15969 #[cfg(feature = "extra-children")]
15970 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15971 extra_iter
15972 .next()
15973 .unwrap()
15974 .node
15975 .write_to(writer)
15976 .map_err(SerializeError::from)?;
15977 }
15978 #[cfg(feature = "wml-settings")]
15979 if let Some(ref val) = self.text {
15980 val.write_element("w:text", writer)?;
15981 }
15982 #[cfg(feature = "extra-children")]
15983 {
15984 emit_idx += 1;
15985 }
15986 #[cfg(feature = "extra-children")]
15987 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15988 extra_iter
15989 .next()
15990 .unwrap()
15991 .node
15992 .write_to(writer)
15993 .map_err(SerializeError::from)?;
15994 }
15995 #[cfg(feature = "wml-settings")]
15996 if let Some(ref val) = self.citation {
15997 val.write_element("w:citation", writer)?;
15998 }
15999 #[cfg(feature = "extra-children")]
16000 {
16001 emit_idx += 1;
16002 }
16003 #[cfg(feature = "extra-children")]
16004 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16005 extra_iter
16006 .next()
16007 .unwrap()
16008 .node
16009 .write_to(writer)
16010 .map_err(SerializeError::from)?;
16011 }
16012 #[cfg(feature = "wml-settings")]
16013 if let Some(ref val) = self.group {
16014 val.write_element("w:group", writer)?;
16015 }
16016 #[cfg(feature = "extra-children")]
16017 {
16018 emit_idx += 1;
16019 }
16020 #[cfg(feature = "extra-children")]
16021 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16022 extra_iter
16023 .next()
16024 .unwrap()
16025 .node
16026 .write_to(writer)
16027 .map_err(SerializeError::from)?;
16028 }
16029 #[cfg(feature = "wml-settings")]
16030 if let Some(ref val) = self.bibliography {
16031 val.write_element("w:bibliography", writer)?;
16032 }
16033 #[cfg(feature = "extra-children")]
16034 {
16035 emit_idx += 1;
16036 }
16037 #[cfg(feature = "extra-children")]
16038 for extra in extra_iter {
16039 extra.node.write_to(writer).map_err(SerializeError::from)?;
16040 }
16041 Ok(())
16042 }
16043
16044 fn is_empty_element(&self) -> bool {
16045 #[cfg(feature = "wml-settings")]
16046 if self.r_pr.is_some() {
16047 return false;
16048 }
16049 #[cfg(feature = "wml-settings")]
16050 if self.alias.is_some() {
16051 return false;
16052 }
16053 #[cfg(feature = "wml-settings")]
16054 if self.tag.is_some() {
16055 return false;
16056 }
16057 #[cfg(feature = "wml-settings")]
16058 if self.id.is_some() {
16059 return false;
16060 }
16061 #[cfg(feature = "wml-settings")]
16062 if self.lock.is_some() {
16063 return false;
16064 }
16065 #[cfg(feature = "wml-settings")]
16066 if self.placeholder.is_some() {
16067 return false;
16068 }
16069 #[cfg(feature = "wml-settings")]
16070 if self.temporary.is_some() {
16071 return false;
16072 }
16073 #[cfg(feature = "wml-settings")]
16074 if self.showing_plc_hdr.is_some() {
16075 return false;
16076 }
16077 #[cfg(feature = "wml-settings")]
16078 if self.data_binding.is_some() {
16079 return false;
16080 }
16081 #[cfg(feature = "wml-settings")]
16082 if self.label.is_some() {
16083 return false;
16084 }
16085 #[cfg(feature = "wml-settings")]
16086 if self.tab_index.is_some() {
16087 return false;
16088 }
16089 #[cfg(feature = "wml-settings")]
16090 if self.equation.is_some() {
16091 return false;
16092 }
16093 #[cfg(feature = "wml-settings")]
16094 if self.combo_box.is_some() {
16095 return false;
16096 }
16097 #[cfg(feature = "wml-settings")]
16098 if self.date.is_some() {
16099 return false;
16100 }
16101 #[cfg(feature = "wml-settings")]
16102 if self.doc_part_obj.is_some() {
16103 return false;
16104 }
16105 #[cfg(feature = "wml-settings")]
16106 if self.doc_part_list.is_some() {
16107 return false;
16108 }
16109 #[cfg(feature = "wml-settings")]
16110 if self.drop_down_list.is_some() {
16111 return false;
16112 }
16113 #[cfg(feature = "wml-settings")]
16114 if self.picture.is_some() {
16115 return false;
16116 }
16117 #[cfg(feature = "wml-settings")]
16118 if self.rich_text.is_some() {
16119 return false;
16120 }
16121 #[cfg(feature = "wml-settings")]
16122 if self.text.is_some() {
16123 return false;
16124 }
16125 #[cfg(feature = "wml-settings")]
16126 if self.citation.is_some() {
16127 return false;
16128 }
16129 #[cfg(feature = "wml-settings")]
16130 if self.group.is_some() {
16131 return false;
16132 }
16133 #[cfg(feature = "wml-settings")]
16134 if self.bibliography.is_some() {
16135 return false;
16136 }
16137 #[cfg(feature = "extra-children")]
16138 if !self.extra_children.is_empty() {
16139 return false;
16140 }
16141 true
16142 }
16143}
16144
16145impl ToXml for CTSdtEndPr {
16146 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16147 #[cfg(feature = "extra-children")]
16148 let mut extra_iter = self.extra_children.iter().peekable();
16149 #[cfg(feature = "extra-children")]
16150 let mut emit_idx: usize = 0;
16151 #[cfg(feature = "extra-children")]
16152 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16153 extra_iter
16154 .next()
16155 .unwrap()
16156 .node
16157 .write_to(writer)
16158 .map_err(SerializeError::from)?;
16159 }
16160 #[cfg(feature = "wml-styling")]
16161 if let Some(ref val) = self.r_pr {
16162 val.write_element("w:rPr", writer)?;
16163 }
16164 #[cfg(feature = "extra-children")]
16165 {
16166 emit_idx += 1;
16167 }
16168 #[cfg(feature = "extra-children")]
16169 for extra in extra_iter {
16170 extra.node.write_to(writer).map_err(SerializeError::from)?;
16171 }
16172 Ok(())
16173 }
16174
16175 fn is_empty_element(&self) -> bool {
16176 #[cfg(feature = "wml-styling")]
16177 if self.r_pr.is_some() {
16178 return false;
16179 }
16180 #[cfg(feature = "extra-children")]
16181 if !self.extra_children.is_empty() {
16182 return false;
16183 }
16184 true
16185 }
16186}
16187
16188impl ToXml for RunContentChoice {
16189 fn write_element<W: Write>(
16190 &self,
16191 _tag: &str,
16192 writer: &mut Writer<W>,
16193 ) -> Result<(), SerializeError> {
16194 match self {
16195 Self::CustomXml(inner) => inner.write_element("w:customXml", writer)?,
16196 Self::SmartTag(inner) => inner.write_element("w:smartTag", writer)?,
16197 Self::Sdt(inner) => inner.write_element("w:sdt", writer)?,
16198 Self::Dir(inner) => inner.write_element("w:dir", writer)?,
16199 Self::Bdo(inner) => inner.write_element("w:bdo", writer)?,
16200 Self::R(inner) => inner.write_element("w:r", writer)?,
16201 Self::ProofErr(inner) => inner.write_element("w:proofErr", writer)?,
16202 Self::PermStart(inner) => inner.write_element("w:permStart", writer)?,
16203 Self::PermEnd(inner) => inner.write_element("w:permEnd", writer)?,
16204 Self::BookmarkStart(inner) => inner.write_element("w:bookmarkStart", writer)?,
16205 Self::BookmarkEnd(inner) => inner.write_element("w:bookmarkEnd", writer)?,
16206 Self::MoveFromRangeStart(inner) => {
16207 inner.write_element("w:moveFromRangeStart", writer)?
16208 }
16209 Self::MoveFromRangeEnd(inner) => inner.write_element("w:moveFromRangeEnd", writer)?,
16210 Self::MoveToRangeStart(inner) => inner.write_element("w:moveToRangeStart", writer)?,
16211 Self::MoveToRangeEnd(inner) => inner.write_element("w:moveToRangeEnd", writer)?,
16212 Self::CommentRangeStart(inner) => inner.write_element("w:commentRangeStart", writer)?,
16213 Self::CommentRangeEnd(inner) => inner.write_element("w:commentRangeEnd", writer)?,
16214 Self::CustomXmlInsRangeStart(inner) => {
16215 inner.write_element("w:customXmlInsRangeStart", writer)?
16216 }
16217 Self::CustomXmlInsRangeEnd(inner) => {
16218 inner.write_element("w:customXmlInsRangeEnd", writer)?
16219 }
16220 Self::CustomXmlDelRangeStart(inner) => {
16221 inner.write_element("w:customXmlDelRangeStart", writer)?
16222 }
16223 Self::CustomXmlDelRangeEnd(inner) => {
16224 inner.write_element("w:customXmlDelRangeEnd", writer)?
16225 }
16226 Self::CustomXmlMoveFromRangeStart(inner) => {
16227 inner.write_element("w:customXmlMoveFromRangeStart", writer)?
16228 }
16229 Self::CustomXmlMoveFromRangeEnd(inner) => {
16230 inner.write_element("w:customXmlMoveFromRangeEnd", writer)?
16231 }
16232 Self::CustomXmlMoveToRangeStart(inner) => {
16233 inner.write_element("w:customXmlMoveToRangeStart", writer)?
16234 }
16235 Self::CustomXmlMoveToRangeEnd(inner) => {
16236 inner.write_element("w:customXmlMoveToRangeEnd", writer)?
16237 }
16238 Self::Ins(inner) => inner.write_element("w:ins", writer)?,
16239 Self::Del(inner) => inner.write_element("w:del", writer)?,
16240 Self::MoveFrom(inner) => inner.write_element("w:moveFrom", writer)?,
16241 Self::MoveTo(inner) => inner.write_element("w:moveTo", writer)?,
16242 }
16243 Ok(())
16244 }
16245}
16246
16247impl ToXml for CTDirContentRun {
16248 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
16249 #[allow(unused_mut)]
16250 let mut start = start;
16251 if let Some(ref val) = self.value {
16252 {
16253 let s = val.to_string();
16254 start.push_attribute(("w:val", s.as_str()));
16255 }
16256 }
16257 #[cfg(feature = "extra-attrs")]
16258 for (key, value) in &self.extra_attrs {
16259 start.push_attribute((key.as_str(), value.as_str()));
16260 }
16261 start
16262 }
16263
16264 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16265 #[cfg(feature = "extra-children")]
16266 let mut extra_iter = self.extra_children.iter().peekable();
16267 #[cfg(feature = "extra-children")]
16268 let mut emit_idx: usize = 0;
16269 for item in &self.paragraph_content {
16270 #[cfg(feature = "extra-children")]
16271 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16272 extra_iter
16273 .next()
16274 .unwrap()
16275 .node
16276 .write_to(writer)
16277 .map_err(SerializeError::from)?;
16278 }
16279 item.write_element("", writer)?;
16280 #[cfg(feature = "extra-children")]
16281 {
16282 emit_idx += 1;
16283 }
16284 }
16285 #[cfg(feature = "extra-children")]
16286 for extra in extra_iter {
16287 extra.node.write_to(writer).map_err(SerializeError::from)?;
16288 }
16289 Ok(())
16290 }
16291
16292 fn is_empty_element(&self) -> bool {
16293 if !self.paragraph_content.is_empty() {
16294 return false;
16295 }
16296 #[cfg(feature = "extra-children")]
16297 if !self.extra_children.is_empty() {
16298 return false;
16299 }
16300 true
16301 }
16302}
16303
16304impl ToXml for CTBdoContentRun {
16305 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
16306 #[allow(unused_mut)]
16307 let mut start = start;
16308 if let Some(ref val) = self.value {
16309 {
16310 let s = val.to_string();
16311 start.push_attribute(("w:val", s.as_str()));
16312 }
16313 }
16314 #[cfg(feature = "extra-attrs")]
16315 for (key, value) in &self.extra_attrs {
16316 start.push_attribute((key.as_str(), value.as_str()));
16317 }
16318 start
16319 }
16320
16321 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16322 #[cfg(feature = "extra-children")]
16323 let mut extra_iter = self.extra_children.iter().peekable();
16324 #[cfg(feature = "extra-children")]
16325 let mut emit_idx: usize = 0;
16326 for item in &self.paragraph_content {
16327 #[cfg(feature = "extra-children")]
16328 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16329 extra_iter
16330 .next()
16331 .unwrap()
16332 .node
16333 .write_to(writer)
16334 .map_err(SerializeError::from)?;
16335 }
16336 item.write_element("", writer)?;
16337 #[cfg(feature = "extra-children")]
16338 {
16339 emit_idx += 1;
16340 }
16341 }
16342 #[cfg(feature = "extra-children")]
16343 for extra in extra_iter {
16344 extra.node.write_to(writer).map_err(SerializeError::from)?;
16345 }
16346 Ok(())
16347 }
16348
16349 fn is_empty_element(&self) -> bool {
16350 if !self.paragraph_content.is_empty() {
16351 return false;
16352 }
16353 #[cfg(feature = "extra-children")]
16354 if !self.extra_children.is_empty() {
16355 return false;
16356 }
16357 true
16358 }
16359}
16360
16361impl ToXml for CTSdtContentRun {
16362 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16363 #[cfg(feature = "extra-children")]
16364 let mut extra_iter = self.extra_children.iter().peekable();
16365 #[cfg(feature = "extra-children")]
16366 let mut emit_idx: usize = 0;
16367 for item in &self.paragraph_content {
16368 #[cfg(feature = "extra-children")]
16369 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16370 extra_iter
16371 .next()
16372 .unwrap()
16373 .node
16374 .write_to(writer)
16375 .map_err(SerializeError::from)?;
16376 }
16377 item.write_element("", writer)?;
16378 #[cfg(feature = "extra-children")]
16379 {
16380 emit_idx += 1;
16381 }
16382 }
16383 #[cfg(feature = "extra-children")]
16384 for extra in extra_iter {
16385 extra.node.write_to(writer).map_err(SerializeError::from)?;
16386 }
16387 Ok(())
16388 }
16389
16390 fn is_empty_element(&self) -> bool {
16391 if !self.paragraph_content.is_empty() {
16392 return false;
16393 }
16394 #[cfg(feature = "extra-children")]
16395 if !self.extra_children.is_empty() {
16396 return false;
16397 }
16398 true
16399 }
16400}
16401
16402impl ToXml for BlockContentChoice {
16403 fn write_element<W: Write>(
16404 &self,
16405 _tag: &str,
16406 writer: &mut Writer<W>,
16407 ) -> Result<(), SerializeError> {
16408 match self {
16409 Self::CustomXml(inner) => inner.write_element("w:customXml", writer)?,
16410 Self::Sdt(inner) => inner.write_element("w:sdt", writer)?,
16411 Self::P(inner) => inner.write_element("w:p", writer)?,
16412 Self::Tbl(inner) => inner.write_element("w:tbl", writer)?,
16413 Self::ProofErr(inner) => inner.write_element("w:proofErr", writer)?,
16414 Self::PermStart(inner) => inner.write_element("w:permStart", writer)?,
16415 Self::PermEnd(inner) => inner.write_element("w:permEnd", writer)?,
16416 Self::BookmarkStart(inner) => inner.write_element("w:bookmarkStart", writer)?,
16417 Self::BookmarkEnd(inner) => inner.write_element("w:bookmarkEnd", writer)?,
16418 Self::MoveFromRangeStart(inner) => {
16419 inner.write_element("w:moveFromRangeStart", writer)?
16420 }
16421 Self::MoveFromRangeEnd(inner) => inner.write_element("w:moveFromRangeEnd", writer)?,
16422 Self::MoveToRangeStart(inner) => inner.write_element("w:moveToRangeStart", writer)?,
16423 Self::MoveToRangeEnd(inner) => inner.write_element("w:moveToRangeEnd", writer)?,
16424 Self::CommentRangeStart(inner) => inner.write_element("w:commentRangeStart", writer)?,
16425 Self::CommentRangeEnd(inner) => inner.write_element("w:commentRangeEnd", writer)?,
16426 Self::CustomXmlInsRangeStart(inner) => {
16427 inner.write_element("w:customXmlInsRangeStart", writer)?
16428 }
16429 Self::CustomXmlInsRangeEnd(inner) => {
16430 inner.write_element("w:customXmlInsRangeEnd", writer)?
16431 }
16432 Self::CustomXmlDelRangeStart(inner) => {
16433 inner.write_element("w:customXmlDelRangeStart", writer)?
16434 }
16435 Self::CustomXmlDelRangeEnd(inner) => {
16436 inner.write_element("w:customXmlDelRangeEnd", writer)?
16437 }
16438 Self::CustomXmlMoveFromRangeStart(inner) => {
16439 inner.write_element("w:customXmlMoveFromRangeStart", writer)?
16440 }
16441 Self::CustomXmlMoveFromRangeEnd(inner) => {
16442 inner.write_element("w:customXmlMoveFromRangeEnd", writer)?
16443 }
16444 Self::CustomXmlMoveToRangeStart(inner) => {
16445 inner.write_element("w:customXmlMoveToRangeStart", writer)?
16446 }
16447 Self::CustomXmlMoveToRangeEnd(inner) => {
16448 inner.write_element("w:customXmlMoveToRangeEnd", writer)?
16449 }
16450 Self::Ins(inner) => inner.write_element("w:ins", writer)?,
16451 Self::Del(inner) => inner.write_element("w:del", writer)?,
16452 Self::MoveFrom(inner) => inner.write_element("w:moveFrom", writer)?,
16453 Self::MoveTo(inner) => inner.write_element("w:moveTo", writer)?,
16454 }
16455 Ok(())
16456 }
16457}
16458
16459impl ToXml for CTSdtContentBlock {
16460 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16461 #[cfg(feature = "extra-children")]
16462 let mut extra_iter = self.extra_children.iter().peekable();
16463 #[cfg(feature = "extra-children")]
16464 let mut emit_idx: usize = 0;
16465 for item in &self.block_content {
16466 #[cfg(feature = "extra-children")]
16467 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16468 extra_iter
16469 .next()
16470 .unwrap()
16471 .node
16472 .write_to(writer)
16473 .map_err(SerializeError::from)?;
16474 }
16475 item.write_element("", writer)?;
16476 #[cfg(feature = "extra-children")]
16477 {
16478 emit_idx += 1;
16479 }
16480 }
16481 #[cfg(feature = "extra-children")]
16482 for extra in extra_iter {
16483 extra.node.write_to(writer).map_err(SerializeError::from)?;
16484 }
16485 Ok(())
16486 }
16487
16488 fn is_empty_element(&self) -> bool {
16489 if !self.block_content.is_empty() {
16490 return false;
16491 }
16492 #[cfg(feature = "extra-children")]
16493 if !self.extra_children.is_empty() {
16494 return false;
16495 }
16496 true
16497 }
16498}
16499
16500impl ToXml for RowContent {
16501 fn write_element<W: Write>(
16502 &self,
16503 _tag: &str,
16504 writer: &mut Writer<W>,
16505 ) -> Result<(), SerializeError> {
16506 match self {
16507 Self::Tr(inner) => inner.write_element("w:tr", writer)?,
16508 Self::CustomXml(inner) => inner.write_element("w:customXml", writer)?,
16509 Self::Sdt(inner) => inner.write_element("w:sdt", writer)?,
16510 Self::ProofErr(inner) => inner.write_element("w:proofErr", writer)?,
16511 Self::PermStart(inner) => inner.write_element("w:permStart", writer)?,
16512 Self::PermEnd(inner) => inner.write_element("w:permEnd", writer)?,
16513 Self::BookmarkStart(inner) => inner.write_element("w:bookmarkStart", writer)?,
16514 Self::BookmarkEnd(inner) => inner.write_element("w:bookmarkEnd", writer)?,
16515 Self::MoveFromRangeStart(inner) => {
16516 inner.write_element("w:moveFromRangeStart", writer)?
16517 }
16518 Self::MoveFromRangeEnd(inner) => inner.write_element("w:moveFromRangeEnd", writer)?,
16519 Self::MoveToRangeStart(inner) => inner.write_element("w:moveToRangeStart", writer)?,
16520 Self::MoveToRangeEnd(inner) => inner.write_element("w:moveToRangeEnd", writer)?,
16521 Self::CommentRangeStart(inner) => inner.write_element("w:commentRangeStart", writer)?,
16522 Self::CommentRangeEnd(inner) => inner.write_element("w:commentRangeEnd", writer)?,
16523 Self::CustomXmlInsRangeStart(inner) => {
16524 inner.write_element("w:customXmlInsRangeStart", writer)?
16525 }
16526 Self::CustomXmlInsRangeEnd(inner) => {
16527 inner.write_element("w:customXmlInsRangeEnd", writer)?
16528 }
16529 Self::CustomXmlDelRangeStart(inner) => {
16530 inner.write_element("w:customXmlDelRangeStart", writer)?
16531 }
16532 Self::CustomXmlDelRangeEnd(inner) => {
16533 inner.write_element("w:customXmlDelRangeEnd", writer)?
16534 }
16535 Self::CustomXmlMoveFromRangeStart(inner) => {
16536 inner.write_element("w:customXmlMoveFromRangeStart", writer)?
16537 }
16538 Self::CustomXmlMoveFromRangeEnd(inner) => {
16539 inner.write_element("w:customXmlMoveFromRangeEnd", writer)?
16540 }
16541 Self::CustomXmlMoveToRangeStart(inner) => {
16542 inner.write_element("w:customXmlMoveToRangeStart", writer)?
16543 }
16544 Self::CustomXmlMoveToRangeEnd(inner) => {
16545 inner.write_element("w:customXmlMoveToRangeEnd", writer)?
16546 }
16547 Self::Ins(inner) => inner.write_element("w:ins", writer)?,
16548 Self::Del(inner) => inner.write_element("w:del", writer)?,
16549 Self::MoveFrom(inner) => inner.write_element("w:moveFrom", writer)?,
16550 Self::MoveTo(inner) => inner.write_element("w:moveTo", writer)?,
16551 }
16552 Ok(())
16553 }
16554}
16555
16556impl ToXml for CTSdtContentRow {
16557 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16558 #[cfg(feature = "extra-children")]
16559 let mut extra_iter = self.extra_children.iter().peekable();
16560 #[cfg(feature = "extra-children")]
16561 let mut emit_idx: usize = 0;
16562 for item in &self.rows {
16563 #[cfg(feature = "extra-children")]
16564 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16565 extra_iter
16566 .next()
16567 .unwrap()
16568 .node
16569 .write_to(writer)
16570 .map_err(SerializeError::from)?;
16571 }
16572 item.write_element("", writer)?;
16573 #[cfg(feature = "extra-children")]
16574 {
16575 emit_idx += 1;
16576 }
16577 }
16578 #[cfg(feature = "extra-children")]
16579 for extra in extra_iter {
16580 extra.node.write_to(writer).map_err(SerializeError::from)?;
16581 }
16582 Ok(())
16583 }
16584
16585 fn is_empty_element(&self) -> bool {
16586 if !self.rows.is_empty() {
16587 return false;
16588 }
16589 #[cfg(feature = "extra-children")]
16590 if !self.extra_children.is_empty() {
16591 return false;
16592 }
16593 true
16594 }
16595}
16596
16597impl ToXml for CellContent {
16598 fn write_element<W: Write>(
16599 &self,
16600 _tag: &str,
16601 writer: &mut Writer<W>,
16602 ) -> Result<(), SerializeError> {
16603 match self {
16604 Self::Tc(inner) => inner.write_element("w:tc", writer)?,
16605 Self::CustomXml(inner) => inner.write_element("w:customXml", writer)?,
16606 Self::Sdt(inner) => inner.write_element("w:sdt", writer)?,
16607 Self::ProofErr(inner) => inner.write_element("w:proofErr", writer)?,
16608 Self::PermStart(inner) => inner.write_element("w:permStart", writer)?,
16609 Self::PermEnd(inner) => inner.write_element("w:permEnd", writer)?,
16610 Self::BookmarkStart(inner) => inner.write_element("w:bookmarkStart", writer)?,
16611 Self::BookmarkEnd(inner) => inner.write_element("w:bookmarkEnd", writer)?,
16612 Self::MoveFromRangeStart(inner) => {
16613 inner.write_element("w:moveFromRangeStart", writer)?
16614 }
16615 Self::MoveFromRangeEnd(inner) => inner.write_element("w:moveFromRangeEnd", writer)?,
16616 Self::MoveToRangeStart(inner) => inner.write_element("w:moveToRangeStart", writer)?,
16617 Self::MoveToRangeEnd(inner) => inner.write_element("w:moveToRangeEnd", writer)?,
16618 Self::CommentRangeStart(inner) => inner.write_element("w:commentRangeStart", writer)?,
16619 Self::CommentRangeEnd(inner) => inner.write_element("w:commentRangeEnd", writer)?,
16620 Self::CustomXmlInsRangeStart(inner) => {
16621 inner.write_element("w:customXmlInsRangeStart", writer)?
16622 }
16623 Self::CustomXmlInsRangeEnd(inner) => {
16624 inner.write_element("w:customXmlInsRangeEnd", writer)?
16625 }
16626 Self::CustomXmlDelRangeStart(inner) => {
16627 inner.write_element("w:customXmlDelRangeStart", writer)?
16628 }
16629 Self::CustomXmlDelRangeEnd(inner) => {
16630 inner.write_element("w:customXmlDelRangeEnd", writer)?
16631 }
16632 Self::CustomXmlMoveFromRangeStart(inner) => {
16633 inner.write_element("w:customXmlMoveFromRangeStart", writer)?
16634 }
16635 Self::CustomXmlMoveFromRangeEnd(inner) => {
16636 inner.write_element("w:customXmlMoveFromRangeEnd", writer)?
16637 }
16638 Self::CustomXmlMoveToRangeStart(inner) => {
16639 inner.write_element("w:customXmlMoveToRangeStart", writer)?
16640 }
16641 Self::CustomXmlMoveToRangeEnd(inner) => {
16642 inner.write_element("w:customXmlMoveToRangeEnd", writer)?
16643 }
16644 Self::Ins(inner) => inner.write_element("w:ins", writer)?,
16645 Self::Del(inner) => inner.write_element("w:del", writer)?,
16646 Self::MoveFrom(inner) => inner.write_element("w:moveFrom", writer)?,
16647 Self::MoveTo(inner) => inner.write_element("w:moveTo", writer)?,
16648 }
16649 Ok(())
16650 }
16651}
16652
16653impl ToXml for CTSdtContentCell {
16654 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16655 #[cfg(feature = "extra-children")]
16656 let mut extra_iter = self.extra_children.iter().peekable();
16657 #[cfg(feature = "extra-children")]
16658 let mut emit_idx: usize = 0;
16659 for item in &self.cells {
16660 #[cfg(feature = "extra-children")]
16661 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16662 extra_iter
16663 .next()
16664 .unwrap()
16665 .node
16666 .write_to(writer)
16667 .map_err(SerializeError::from)?;
16668 }
16669 item.write_element("", writer)?;
16670 #[cfg(feature = "extra-children")]
16671 {
16672 emit_idx += 1;
16673 }
16674 }
16675 #[cfg(feature = "extra-children")]
16676 for extra in extra_iter {
16677 extra.node.write_to(writer).map_err(SerializeError::from)?;
16678 }
16679 Ok(())
16680 }
16681
16682 fn is_empty_element(&self) -> bool {
16683 if !self.cells.is_empty() {
16684 return false;
16685 }
16686 #[cfg(feature = "extra-children")]
16687 if !self.extra_children.is_empty() {
16688 return false;
16689 }
16690 true
16691 }
16692}
16693
16694impl ToXml for CTSdtBlock {
16695 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16696 #[cfg(feature = "extra-children")]
16697 let mut extra_iter = self.extra_children.iter().peekable();
16698 #[cfg(feature = "extra-children")]
16699 let mut emit_idx: usize = 0;
16700 #[cfg(feature = "extra-children")]
16701 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16702 extra_iter
16703 .next()
16704 .unwrap()
16705 .node
16706 .write_to(writer)
16707 .map_err(SerializeError::from)?;
16708 }
16709 #[cfg(feature = "wml-settings")]
16710 if let Some(ref val) = self.sdt_pr {
16711 val.write_element("w:sdtPr", writer)?;
16712 }
16713 #[cfg(feature = "extra-children")]
16714 {
16715 emit_idx += 1;
16716 }
16717 #[cfg(feature = "extra-children")]
16718 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16719 extra_iter
16720 .next()
16721 .unwrap()
16722 .node
16723 .write_to(writer)
16724 .map_err(SerializeError::from)?;
16725 }
16726 #[cfg(feature = "wml-settings")]
16727 if let Some(ref val) = self.sdt_end_pr {
16728 val.write_element("w:sdtEndPr", writer)?;
16729 }
16730 #[cfg(feature = "extra-children")]
16731 {
16732 emit_idx += 1;
16733 }
16734 #[cfg(feature = "extra-children")]
16735 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16736 extra_iter
16737 .next()
16738 .unwrap()
16739 .node
16740 .write_to(writer)
16741 .map_err(SerializeError::from)?;
16742 }
16743 if let Some(ref val) = self.sdt_content {
16744 val.write_element("w:sdtContent", writer)?;
16745 }
16746 #[cfg(feature = "extra-children")]
16747 {
16748 emit_idx += 1;
16749 }
16750 #[cfg(feature = "extra-children")]
16751 for extra in extra_iter {
16752 extra.node.write_to(writer).map_err(SerializeError::from)?;
16753 }
16754 Ok(())
16755 }
16756
16757 fn is_empty_element(&self) -> bool {
16758 #[cfg(feature = "wml-settings")]
16759 if self.sdt_pr.is_some() {
16760 return false;
16761 }
16762 #[cfg(feature = "wml-settings")]
16763 if self.sdt_end_pr.is_some() {
16764 return false;
16765 }
16766 if self.sdt_content.is_some() {
16767 return false;
16768 }
16769 #[cfg(feature = "extra-children")]
16770 if !self.extra_children.is_empty() {
16771 return false;
16772 }
16773 true
16774 }
16775}
16776
16777impl ToXml for CTSdtRun {
16778 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16779 #[cfg(feature = "extra-children")]
16780 let mut extra_iter = self.extra_children.iter().peekable();
16781 #[cfg(feature = "extra-children")]
16782 let mut emit_idx: usize = 0;
16783 #[cfg(feature = "extra-children")]
16784 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16785 extra_iter
16786 .next()
16787 .unwrap()
16788 .node
16789 .write_to(writer)
16790 .map_err(SerializeError::from)?;
16791 }
16792 #[cfg(feature = "wml-settings")]
16793 if let Some(ref val) = self.sdt_pr {
16794 val.write_element("w:sdtPr", writer)?;
16795 }
16796 #[cfg(feature = "extra-children")]
16797 {
16798 emit_idx += 1;
16799 }
16800 #[cfg(feature = "extra-children")]
16801 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16802 extra_iter
16803 .next()
16804 .unwrap()
16805 .node
16806 .write_to(writer)
16807 .map_err(SerializeError::from)?;
16808 }
16809 #[cfg(feature = "wml-settings")]
16810 if let Some(ref val) = self.sdt_end_pr {
16811 val.write_element("w:sdtEndPr", writer)?;
16812 }
16813 #[cfg(feature = "extra-children")]
16814 {
16815 emit_idx += 1;
16816 }
16817 #[cfg(feature = "extra-children")]
16818 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16819 extra_iter
16820 .next()
16821 .unwrap()
16822 .node
16823 .write_to(writer)
16824 .map_err(SerializeError::from)?;
16825 }
16826 if let Some(ref val) = self.sdt_content {
16827 val.write_element("w:sdtContent", writer)?;
16828 }
16829 #[cfg(feature = "extra-children")]
16830 {
16831 emit_idx += 1;
16832 }
16833 #[cfg(feature = "extra-children")]
16834 for extra in extra_iter {
16835 extra.node.write_to(writer).map_err(SerializeError::from)?;
16836 }
16837 Ok(())
16838 }
16839
16840 fn is_empty_element(&self) -> bool {
16841 #[cfg(feature = "wml-settings")]
16842 if self.sdt_pr.is_some() {
16843 return false;
16844 }
16845 #[cfg(feature = "wml-settings")]
16846 if self.sdt_end_pr.is_some() {
16847 return false;
16848 }
16849 if self.sdt_content.is_some() {
16850 return false;
16851 }
16852 #[cfg(feature = "extra-children")]
16853 if !self.extra_children.is_empty() {
16854 return false;
16855 }
16856 true
16857 }
16858}
16859
16860impl ToXml for CTSdtCell {
16861 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16862 #[cfg(feature = "extra-children")]
16863 let mut extra_iter = self.extra_children.iter().peekable();
16864 #[cfg(feature = "extra-children")]
16865 let mut emit_idx: usize = 0;
16866 #[cfg(feature = "extra-children")]
16867 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16868 extra_iter
16869 .next()
16870 .unwrap()
16871 .node
16872 .write_to(writer)
16873 .map_err(SerializeError::from)?;
16874 }
16875 #[cfg(feature = "wml-settings")]
16876 if let Some(ref val) = self.sdt_pr {
16877 val.write_element("w:sdtPr", writer)?;
16878 }
16879 #[cfg(feature = "extra-children")]
16880 {
16881 emit_idx += 1;
16882 }
16883 #[cfg(feature = "extra-children")]
16884 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16885 extra_iter
16886 .next()
16887 .unwrap()
16888 .node
16889 .write_to(writer)
16890 .map_err(SerializeError::from)?;
16891 }
16892 #[cfg(feature = "wml-settings")]
16893 if let Some(ref val) = self.sdt_end_pr {
16894 val.write_element("w:sdtEndPr", writer)?;
16895 }
16896 #[cfg(feature = "extra-children")]
16897 {
16898 emit_idx += 1;
16899 }
16900 #[cfg(feature = "extra-children")]
16901 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16902 extra_iter
16903 .next()
16904 .unwrap()
16905 .node
16906 .write_to(writer)
16907 .map_err(SerializeError::from)?;
16908 }
16909 if let Some(ref val) = self.sdt_content {
16910 val.write_element("w:sdtContent", writer)?;
16911 }
16912 #[cfg(feature = "extra-children")]
16913 {
16914 emit_idx += 1;
16915 }
16916 #[cfg(feature = "extra-children")]
16917 for extra in extra_iter {
16918 extra.node.write_to(writer).map_err(SerializeError::from)?;
16919 }
16920 Ok(())
16921 }
16922
16923 fn is_empty_element(&self) -> bool {
16924 #[cfg(feature = "wml-settings")]
16925 if self.sdt_pr.is_some() {
16926 return false;
16927 }
16928 #[cfg(feature = "wml-settings")]
16929 if self.sdt_end_pr.is_some() {
16930 return false;
16931 }
16932 if self.sdt_content.is_some() {
16933 return false;
16934 }
16935 #[cfg(feature = "extra-children")]
16936 if !self.extra_children.is_empty() {
16937 return false;
16938 }
16939 true
16940 }
16941}
16942
16943impl ToXml for CTSdtRow {
16944 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16945 #[cfg(feature = "extra-children")]
16946 let mut extra_iter = self.extra_children.iter().peekable();
16947 #[cfg(feature = "extra-children")]
16948 let mut emit_idx: usize = 0;
16949 #[cfg(feature = "extra-children")]
16950 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16951 extra_iter
16952 .next()
16953 .unwrap()
16954 .node
16955 .write_to(writer)
16956 .map_err(SerializeError::from)?;
16957 }
16958 #[cfg(feature = "wml-settings")]
16959 if let Some(ref val) = self.sdt_pr {
16960 val.write_element("w:sdtPr", writer)?;
16961 }
16962 #[cfg(feature = "extra-children")]
16963 {
16964 emit_idx += 1;
16965 }
16966 #[cfg(feature = "extra-children")]
16967 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16968 extra_iter
16969 .next()
16970 .unwrap()
16971 .node
16972 .write_to(writer)
16973 .map_err(SerializeError::from)?;
16974 }
16975 #[cfg(feature = "wml-settings")]
16976 if let Some(ref val) = self.sdt_end_pr {
16977 val.write_element("w:sdtEndPr", writer)?;
16978 }
16979 #[cfg(feature = "extra-children")]
16980 {
16981 emit_idx += 1;
16982 }
16983 #[cfg(feature = "extra-children")]
16984 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16985 extra_iter
16986 .next()
16987 .unwrap()
16988 .node
16989 .write_to(writer)
16990 .map_err(SerializeError::from)?;
16991 }
16992 if let Some(ref val) = self.sdt_content {
16993 val.write_element("w:sdtContent", writer)?;
16994 }
16995 #[cfg(feature = "extra-children")]
16996 {
16997 emit_idx += 1;
16998 }
16999 #[cfg(feature = "extra-children")]
17000 for extra in extra_iter {
17001 extra.node.write_to(writer).map_err(SerializeError::from)?;
17002 }
17003 Ok(())
17004 }
17005
17006 fn is_empty_element(&self) -> bool {
17007 #[cfg(feature = "wml-settings")]
17008 if self.sdt_pr.is_some() {
17009 return false;
17010 }
17011 #[cfg(feature = "wml-settings")]
17012 if self.sdt_end_pr.is_some() {
17013 return false;
17014 }
17015 if self.sdt_content.is_some() {
17016 return false;
17017 }
17018 #[cfg(feature = "extra-children")]
17019 if !self.extra_children.is_empty() {
17020 return false;
17021 }
17022 true
17023 }
17024}
17025
17026impl ToXml for CTAttr {
17027 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17028 #[allow(unused_mut)]
17029 let mut start = start;
17030 if let Some(ref val) = self.uri {
17031 start.push_attribute(("w:uri", val.as_str()));
17032 }
17033 {
17034 let val = &self.name;
17035 start.push_attribute(("w:name", val.as_str()));
17036 }
17037 {
17038 let val = &self.value;
17039 start.push_attribute(("w:val", val.as_str()));
17040 }
17041 #[cfg(feature = "extra-attrs")]
17042 for (key, value) in &self.extra_attrs {
17043 start.push_attribute((key.as_str(), value.as_str()));
17044 }
17045 start
17046 }
17047
17048 fn is_empty_element(&self) -> bool {
17049 true
17050 }
17051}
17052
17053impl ToXml for CTCustomXmlRun {
17054 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17055 #[allow(unused_mut)]
17056 let mut start = start;
17057 #[cfg(feature = "wml-settings")]
17058 if let Some(ref val) = self.uri {
17059 start.push_attribute(("w:uri", val.as_str()));
17060 }
17061 #[cfg(feature = "wml-settings")]
17062 {
17063 let val = &self.element;
17064 start.push_attribute(("w:element", val.as_str()));
17065 }
17066 #[cfg(feature = "extra-attrs")]
17067 for (key, value) in &self.extra_attrs {
17068 start.push_attribute((key.as_str(), value.as_str()));
17069 }
17070 start
17071 }
17072
17073 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17074 #[cfg(feature = "extra-children")]
17075 let mut extra_iter = self.extra_children.iter().peekable();
17076 #[cfg(feature = "extra-children")]
17077 let mut emit_idx: usize = 0;
17078 #[cfg(feature = "extra-children")]
17079 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17080 extra_iter
17081 .next()
17082 .unwrap()
17083 .node
17084 .write_to(writer)
17085 .map_err(SerializeError::from)?;
17086 }
17087 #[cfg(feature = "wml-settings")]
17088 if let Some(ref val) = self.custom_xml_pr {
17089 val.write_element("w:customXmlPr", writer)?;
17090 }
17091 #[cfg(feature = "extra-children")]
17092 {
17093 emit_idx += 1;
17094 }
17095 for item in &self.paragraph_content {
17096 #[cfg(feature = "extra-children")]
17097 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17098 extra_iter
17099 .next()
17100 .unwrap()
17101 .node
17102 .write_to(writer)
17103 .map_err(SerializeError::from)?;
17104 }
17105 item.write_element("", writer)?;
17106 #[cfg(feature = "extra-children")]
17107 {
17108 emit_idx += 1;
17109 }
17110 }
17111 #[cfg(feature = "extra-children")]
17112 for extra in extra_iter {
17113 extra.node.write_to(writer).map_err(SerializeError::from)?;
17114 }
17115 Ok(())
17116 }
17117
17118 fn is_empty_element(&self) -> bool {
17119 #[cfg(feature = "wml-settings")]
17120 if self.custom_xml_pr.is_some() {
17121 return false;
17122 }
17123 if !self.paragraph_content.is_empty() {
17124 return false;
17125 }
17126 #[cfg(feature = "extra-children")]
17127 if !self.extra_children.is_empty() {
17128 return false;
17129 }
17130 true
17131 }
17132}
17133
17134impl ToXml for CTSmartTagRun {
17135 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17136 #[allow(unused_mut)]
17137 let mut start = start;
17138 #[cfg(feature = "wml-settings")]
17139 if let Some(ref val) = self.uri {
17140 start.push_attribute(("w:uri", val.as_str()));
17141 }
17142 #[cfg(feature = "wml-settings")]
17143 {
17144 let val = &self.element;
17145 start.push_attribute(("w:element", val.as_str()));
17146 }
17147 #[cfg(feature = "extra-attrs")]
17148 for (key, value) in &self.extra_attrs {
17149 start.push_attribute((key.as_str(), value.as_str()));
17150 }
17151 start
17152 }
17153
17154 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17155 #[cfg(feature = "extra-children")]
17156 let mut extra_iter = self.extra_children.iter().peekable();
17157 #[cfg(feature = "extra-children")]
17158 let mut emit_idx: usize = 0;
17159 #[cfg(feature = "extra-children")]
17160 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17161 extra_iter
17162 .next()
17163 .unwrap()
17164 .node
17165 .write_to(writer)
17166 .map_err(SerializeError::from)?;
17167 }
17168 #[cfg(feature = "wml-settings")]
17169 if let Some(ref val) = self.smart_tag_pr {
17170 val.write_element("w:smartTagPr", writer)?;
17171 }
17172 #[cfg(feature = "extra-children")]
17173 {
17174 emit_idx += 1;
17175 }
17176 for item in &self.paragraph_content {
17177 #[cfg(feature = "extra-children")]
17178 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17179 extra_iter
17180 .next()
17181 .unwrap()
17182 .node
17183 .write_to(writer)
17184 .map_err(SerializeError::from)?;
17185 }
17186 item.write_element("", writer)?;
17187 #[cfg(feature = "extra-children")]
17188 {
17189 emit_idx += 1;
17190 }
17191 }
17192 #[cfg(feature = "extra-children")]
17193 for extra in extra_iter {
17194 extra.node.write_to(writer).map_err(SerializeError::from)?;
17195 }
17196 Ok(())
17197 }
17198
17199 fn is_empty_element(&self) -> bool {
17200 #[cfg(feature = "wml-settings")]
17201 if self.smart_tag_pr.is_some() {
17202 return false;
17203 }
17204 if !self.paragraph_content.is_empty() {
17205 return false;
17206 }
17207 #[cfg(feature = "extra-children")]
17208 if !self.extra_children.is_empty() {
17209 return false;
17210 }
17211 true
17212 }
17213}
17214
17215impl ToXml for CTCustomXmlBlock {
17216 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17217 #[allow(unused_mut)]
17218 let mut start = start;
17219 #[cfg(feature = "wml-settings")]
17220 if let Some(ref val) = self.uri {
17221 start.push_attribute(("w:uri", val.as_str()));
17222 }
17223 #[cfg(feature = "wml-settings")]
17224 {
17225 let val = &self.element;
17226 start.push_attribute(("w:element", val.as_str()));
17227 }
17228 #[cfg(feature = "extra-attrs")]
17229 for (key, value) in &self.extra_attrs {
17230 start.push_attribute((key.as_str(), value.as_str()));
17231 }
17232 start
17233 }
17234
17235 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17236 #[cfg(feature = "extra-children")]
17237 let mut extra_iter = self.extra_children.iter().peekable();
17238 #[cfg(feature = "extra-children")]
17239 let mut emit_idx: usize = 0;
17240 #[cfg(feature = "extra-children")]
17241 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17242 extra_iter
17243 .next()
17244 .unwrap()
17245 .node
17246 .write_to(writer)
17247 .map_err(SerializeError::from)?;
17248 }
17249 #[cfg(feature = "wml-settings")]
17250 if let Some(ref val) = self.custom_xml_pr {
17251 val.write_element("w:customXmlPr", writer)?;
17252 }
17253 #[cfg(feature = "extra-children")]
17254 {
17255 emit_idx += 1;
17256 }
17257 for item in &self.block_content {
17258 #[cfg(feature = "extra-children")]
17259 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17260 extra_iter
17261 .next()
17262 .unwrap()
17263 .node
17264 .write_to(writer)
17265 .map_err(SerializeError::from)?;
17266 }
17267 item.write_element("", writer)?;
17268 #[cfg(feature = "extra-children")]
17269 {
17270 emit_idx += 1;
17271 }
17272 }
17273 #[cfg(feature = "extra-children")]
17274 for extra in extra_iter {
17275 extra.node.write_to(writer).map_err(SerializeError::from)?;
17276 }
17277 Ok(())
17278 }
17279
17280 fn is_empty_element(&self) -> bool {
17281 #[cfg(feature = "wml-settings")]
17282 if self.custom_xml_pr.is_some() {
17283 return false;
17284 }
17285 if !self.block_content.is_empty() {
17286 return false;
17287 }
17288 #[cfg(feature = "extra-children")]
17289 if !self.extra_children.is_empty() {
17290 return false;
17291 }
17292 true
17293 }
17294}
17295
17296impl ToXml for CTCustomXmlPr {
17297 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17298 #[cfg(feature = "extra-children")]
17299 let mut extra_iter = self.extra_children.iter().peekable();
17300 #[cfg(feature = "extra-children")]
17301 let mut emit_idx: usize = 0;
17302 #[cfg(feature = "extra-children")]
17303 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17304 extra_iter
17305 .next()
17306 .unwrap()
17307 .node
17308 .write_to(writer)
17309 .map_err(SerializeError::from)?;
17310 }
17311 #[cfg(feature = "wml-settings")]
17312 if let Some(ref val) = self.placeholder {
17313 val.write_element("w:placeholder", writer)?;
17314 }
17315 #[cfg(feature = "extra-children")]
17316 {
17317 emit_idx += 1;
17318 }
17319 #[cfg(feature = "wml-settings")]
17320 for item in &self.attr {
17321 #[cfg(feature = "extra-children")]
17322 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17323 extra_iter
17324 .next()
17325 .unwrap()
17326 .node
17327 .write_to(writer)
17328 .map_err(SerializeError::from)?;
17329 }
17330 item.write_element("w:attr", writer)?;
17331 #[cfg(feature = "extra-children")]
17332 {
17333 emit_idx += 1;
17334 }
17335 }
17336 #[cfg(feature = "extra-children")]
17337 for extra in extra_iter {
17338 extra.node.write_to(writer).map_err(SerializeError::from)?;
17339 }
17340 Ok(())
17341 }
17342
17343 fn is_empty_element(&self) -> bool {
17344 #[cfg(feature = "wml-settings")]
17345 if self.placeholder.is_some() {
17346 return false;
17347 }
17348 #[cfg(feature = "wml-settings")]
17349 if !self.attr.is_empty() {
17350 return false;
17351 }
17352 #[cfg(feature = "extra-children")]
17353 if !self.extra_children.is_empty() {
17354 return false;
17355 }
17356 true
17357 }
17358}
17359
17360impl ToXml for CTCustomXmlRow {
17361 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17362 #[allow(unused_mut)]
17363 let mut start = start;
17364 #[cfg(feature = "wml-settings")]
17365 if let Some(ref val) = self.uri {
17366 start.push_attribute(("w:uri", val.as_str()));
17367 }
17368 #[cfg(feature = "wml-settings")]
17369 {
17370 let val = &self.element;
17371 start.push_attribute(("w:element", val.as_str()));
17372 }
17373 #[cfg(feature = "extra-attrs")]
17374 for (key, value) in &self.extra_attrs {
17375 start.push_attribute((key.as_str(), value.as_str()));
17376 }
17377 start
17378 }
17379
17380 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17381 #[cfg(feature = "extra-children")]
17382 let mut extra_iter = self.extra_children.iter().peekable();
17383 #[cfg(feature = "extra-children")]
17384 let mut emit_idx: usize = 0;
17385 #[cfg(feature = "extra-children")]
17386 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17387 extra_iter
17388 .next()
17389 .unwrap()
17390 .node
17391 .write_to(writer)
17392 .map_err(SerializeError::from)?;
17393 }
17394 #[cfg(feature = "wml-settings")]
17395 if let Some(ref val) = self.custom_xml_pr {
17396 val.write_element("w:customXmlPr", writer)?;
17397 }
17398 #[cfg(feature = "extra-children")]
17399 {
17400 emit_idx += 1;
17401 }
17402 for item in &self.rows {
17403 #[cfg(feature = "extra-children")]
17404 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17405 extra_iter
17406 .next()
17407 .unwrap()
17408 .node
17409 .write_to(writer)
17410 .map_err(SerializeError::from)?;
17411 }
17412 item.write_element("", writer)?;
17413 #[cfg(feature = "extra-children")]
17414 {
17415 emit_idx += 1;
17416 }
17417 }
17418 #[cfg(feature = "extra-children")]
17419 for extra in extra_iter {
17420 extra.node.write_to(writer).map_err(SerializeError::from)?;
17421 }
17422 Ok(())
17423 }
17424
17425 fn is_empty_element(&self) -> bool {
17426 #[cfg(feature = "wml-settings")]
17427 if self.custom_xml_pr.is_some() {
17428 return false;
17429 }
17430 if !self.rows.is_empty() {
17431 return false;
17432 }
17433 #[cfg(feature = "extra-children")]
17434 if !self.extra_children.is_empty() {
17435 return false;
17436 }
17437 true
17438 }
17439}
17440
17441impl ToXml for CTCustomXmlCell {
17442 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17443 #[allow(unused_mut)]
17444 let mut start = start;
17445 #[cfg(feature = "wml-settings")]
17446 if let Some(ref val) = self.uri {
17447 start.push_attribute(("w:uri", val.as_str()));
17448 }
17449 #[cfg(feature = "wml-settings")]
17450 {
17451 let val = &self.element;
17452 start.push_attribute(("w:element", val.as_str()));
17453 }
17454 #[cfg(feature = "extra-attrs")]
17455 for (key, value) in &self.extra_attrs {
17456 start.push_attribute((key.as_str(), value.as_str()));
17457 }
17458 start
17459 }
17460
17461 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17462 #[cfg(feature = "extra-children")]
17463 let mut extra_iter = self.extra_children.iter().peekable();
17464 #[cfg(feature = "extra-children")]
17465 let mut emit_idx: usize = 0;
17466 #[cfg(feature = "extra-children")]
17467 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17468 extra_iter
17469 .next()
17470 .unwrap()
17471 .node
17472 .write_to(writer)
17473 .map_err(SerializeError::from)?;
17474 }
17475 #[cfg(feature = "wml-settings")]
17476 if let Some(ref val) = self.custom_xml_pr {
17477 val.write_element("w:customXmlPr", writer)?;
17478 }
17479 #[cfg(feature = "extra-children")]
17480 {
17481 emit_idx += 1;
17482 }
17483 for item in &self.cells {
17484 #[cfg(feature = "extra-children")]
17485 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17486 extra_iter
17487 .next()
17488 .unwrap()
17489 .node
17490 .write_to(writer)
17491 .map_err(SerializeError::from)?;
17492 }
17493 item.write_element("", writer)?;
17494 #[cfg(feature = "extra-children")]
17495 {
17496 emit_idx += 1;
17497 }
17498 }
17499 #[cfg(feature = "extra-children")]
17500 for extra in extra_iter {
17501 extra.node.write_to(writer).map_err(SerializeError::from)?;
17502 }
17503 Ok(())
17504 }
17505
17506 fn is_empty_element(&self) -> bool {
17507 #[cfg(feature = "wml-settings")]
17508 if self.custom_xml_pr.is_some() {
17509 return false;
17510 }
17511 if !self.cells.is_empty() {
17512 return false;
17513 }
17514 #[cfg(feature = "extra-children")]
17515 if !self.extra_children.is_empty() {
17516 return false;
17517 }
17518 true
17519 }
17520}
17521
17522impl ToXml for CTSmartTagPr {
17523 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17524 #[cfg(feature = "extra-children")]
17525 let mut extra_iter = self.extra_children.iter().peekable();
17526 #[cfg(feature = "extra-children")]
17527 let mut emit_idx: usize = 0;
17528 #[cfg(feature = "wml-settings")]
17529 for item in &self.attr {
17530 #[cfg(feature = "extra-children")]
17531 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17532 extra_iter
17533 .next()
17534 .unwrap()
17535 .node
17536 .write_to(writer)
17537 .map_err(SerializeError::from)?;
17538 }
17539 item.write_element("w:attr", writer)?;
17540 #[cfg(feature = "extra-children")]
17541 {
17542 emit_idx += 1;
17543 }
17544 }
17545 #[cfg(feature = "extra-children")]
17546 for extra in extra_iter {
17547 extra.node.write_to(writer).map_err(SerializeError::from)?;
17548 }
17549 Ok(())
17550 }
17551
17552 fn is_empty_element(&self) -> bool {
17553 #[cfg(feature = "wml-settings")]
17554 if !self.attr.is_empty() {
17555 return false;
17556 }
17557 #[cfg(feature = "extra-children")]
17558 if !self.extra_children.is_empty() {
17559 return false;
17560 }
17561 true
17562 }
17563}
17564
17565impl ToXml for ParagraphContent {
17566 fn write_element<W: Write>(
17567 &self,
17568 _tag: &str,
17569 writer: &mut Writer<W>,
17570 ) -> Result<(), SerializeError> {
17571 match self {
17572 Self::CustomXml(inner) => inner.write_element("w:customXml", writer)?,
17573 Self::SmartTag(inner) => inner.write_element("w:smartTag", writer)?,
17574 Self::Sdt(inner) => inner.write_element("w:sdt", writer)?,
17575 Self::Dir(inner) => inner.write_element("w:dir", writer)?,
17576 Self::Bdo(inner) => inner.write_element("w:bdo", writer)?,
17577 Self::R(inner) => inner.write_element("w:r", writer)?,
17578 Self::ProofErr(inner) => inner.write_element("w:proofErr", writer)?,
17579 Self::PermStart(inner) => inner.write_element("w:permStart", writer)?,
17580 Self::PermEnd(inner) => inner.write_element("w:permEnd", writer)?,
17581 Self::BookmarkStart(inner) => inner.write_element("w:bookmarkStart", writer)?,
17582 Self::BookmarkEnd(inner) => inner.write_element("w:bookmarkEnd", writer)?,
17583 Self::MoveFromRangeStart(inner) => {
17584 inner.write_element("w:moveFromRangeStart", writer)?
17585 }
17586 Self::MoveFromRangeEnd(inner) => inner.write_element("w:moveFromRangeEnd", writer)?,
17587 Self::MoveToRangeStart(inner) => inner.write_element("w:moveToRangeStart", writer)?,
17588 Self::MoveToRangeEnd(inner) => inner.write_element("w:moveToRangeEnd", writer)?,
17589 Self::CommentRangeStart(inner) => inner.write_element("w:commentRangeStart", writer)?,
17590 Self::CommentRangeEnd(inner) => inner.write_element("w:commentRangeEnd", writer)?,
17591 Self::CustomXmlInsRangeStart(inner) => {
17592 inner.write_element("w:customXmlInsRangeStart", writer)?
17593 }
17594 Self::CustomXmlInsRangeEnd(inner) => {
17595 inner.write_element("w:customXmlInsRangeEnd", writer)?
17596 }
17597 Self::CustomXmlDelRangeStart(inner) => {
17598 inner.write_element("w:customXmlDelRangeStart", writer)?
17599 }
17600 Self::CustomXmlDelRangeEnd(inner) => {
17601 inner.write_element("w:customXmlDelRangeEnd", writer)?
17602 }
17603 Self::CustomXmlMoveFromRangeStart(inner) => {
17604 inner.write_element("w:customXmlMoveFromRangeStart", writer)?
17605 }
17606 Self::CustomXmlMoveFromRangeEnd(inner) => {
17607 inner.write_element("w:customXmlMoveFromRangeEnd", writer)?
17608 }
17609 Self::CustomXmlMoveToRangeStart(inner) => {
17610 inner.write_element("w:customXmlMoveToRangeStart", writer)?
17611 }
17612 Self::CustomXmlMoveToRangeEnd(inner) => {
17613 inner.write_element("w:customXmlMoveToRangeEnd", writer)?
17614 }
17615 Self::Ins(inner) => inner.write_element("w:ins", writer)?,
17616 Self::Del(inner) => inner.write_element("w:del", writer)?,
17617 Self::MoveFrom(inner) => inner.write_element("w:moveFrom", writer)?,
17618 Self::MoveTo(inner) => inner.write_element("w:moveTo", writer)?,
17619 Self::FldSimple(inner) => inner.write_element("w:fldSimple", writer)?,
17620 Self::Hyperlink(inner) => inner.write_element("w:hyperlink", writer)?,
17621 Self::SubDoc(inner) => inner.write_element("w:subDoc", writer)?,
17622 }
17623 Ok(())
17624 }
17625}
17626
17627impl ToXml for Paragraph {
17628 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17629 #[allow(unused_mut)]
17630 let mut start = start;
17631 #[cfg(feature = "wml-track-changes")]
17632 if let Some(ref val) = self.rsid_r_pr {
17633 {
17634 let hex = encode_hex(val);
17635 start.push_attribute(("w:rsidRPr", hex.as_str()));
17636 }
17637 }
17638 #[cfg(feature = "wml-track-changes")]
17639 if let Some(ref val) = self.rsid_r {
17640 {
17641 let hex = encode_hex(val);
17642 start.push_attribute(("w:rsidR", hex.as_str()));
17643 }
17644 }
17645 #[cfg(feature = "wml-track-changes")]
17646 if let Some(ref val) = self.rsid_del {
17647 {
17648 let hex = encode_hex(val);
17649 start.push_attribute(("w:rsidDel", hex.as_str()));
17650 }
17651 }
17652 #[cfg(feature = "wml-track-changes")]
17653 if let Some(ref val) = self.rsid_p {
17654 {
17655 let hex = encode_hex(val);
17656 start.push_attribute(("w:rsidP", hex.as_str()));
17657 }
17658 }
17659 #[cfg(feature = "wml-track-changes")]
17660 if let Some(ref val) = self.rsid_r_default {
17661 {
17662 let hex = encode_hex(val);
17663 start.push_attribute(("w:rsidRDefault", hex.as_str()));
17664 }
17665 }
17666 #[cfg(feature = "extra-attrs")]
17667 for (key, value) in &self.extra_attrs {
17668 start.push_attribute((key.as_str(), value.as_str()));
17669 }
17670 start
17671 }
17672
17673 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17674 #[cfg(feature = "extra-children")]
17675 let mut extra_iter = self.extra_children.iter().peekable();
17676 #[cfg(feature = "extra-children")]
17677 let mut emit_idx: usize = 0;
17678 #[cfg(feature = "extra-children")]
17679 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17680 extra_iter
17681 .next()
17682 .unwrap()
17683 .node
17684 .write_to(writer)
17685 .map_err(SerializeError::from)?;
17686 }
17687 #[cfg(feature = "wml-styling")]
17688 if let Some(ref val) = self.p_pr {
17689 val.write_element("w:pPr", writer)?;
17690 }
17691 #[cfg(feature = "extra-children")]
17692 {
17693 emit_idx += 1;
17694 }
17695 for item in &self.paragraph_content {
17696 #[cfg(feature = "extra-children")]
17697 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17698 extra_iter
17699 .next()
17700 .unwrap()
17701 .node
17702 .write_to(writer)
17703 .map_err(SerializeError::from)?;
17704 }
17705 item.write_element("", writer)?;
17706 #[cfg(feature = "extra-children")]
17707 {
17708 emit_idx += 1;
17709 }
17710 }
17711 #[cfg(feature = "extra-children")]
17712 for extra in extra_iter {
17713 extra.node.write_to(writer).map_err(SerializeError::from)?;
17714 }
17715 Ok(())
17716 }
17717
17718 fn is_empty_element(&self) -> bool {
17719 #[cfg(feature = "wml-styling")]
17720 if self.p_pr.is_some() {
17721 return false;
17722 }
17723 if !self.paragraph_content.is_empty() {
17724 return false;
17725 }
17726 #[cfg(feature = "extra-children")]
17727 if !self.extra_children.is_empty() {
17728 return false;
17729 }
17730 true
17731 }
17732}
17733
17734impl ToXml for CTHeight {
17735 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17736 #[allow(unused_mut)]
17737 let mut start = start;
17738 if let Some(ref val) = self.value {
17739 {
17740 let s = val.to_string();
17741 start.push_attribute(("w:val", s.as_str()));
17742 }
17743 }
17744 #[cfg(feature = "wml-tables")]
17745 if let Some(ref val) = self.h_rule {
17746 {
17747 let s = val.to_string();
17748 start.push_attribute(("w:hRule", s.as_str()));
17749 }
17750 }
17751 #[cfg(feature = "extra-attrs")]
17752 for (key, value) in &self.extra_attrs {
17753 start.push_attribute((key.as_str(), value.as_str()));
17754 }
17755 start
17756 }
17757
17758 fn is_empty_element(&self) -> bool {
17759 true
17760 }
17761}
17762
17763impl ToXml for CTTblWidth {
17764 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17765 #[allow(unused_mut)]
17766 let mut start = start;
17767 if let Some(ref val) = self.width {
17768 {
17769 let s = val.to_string();
17770 start.push_attribute(("w:w", s.as_str()));
17771 }
17772 }
17773 if let Some(ref val) = self.r#type {
17774 {
17775 let s = val.to_string();
17776 start.push_attribute(("w:type", s.as_str()));
17777 }
17778 }
17779 #[cfg(feature = "extra-attrs")]
17780 for (key, value) in &self.extra_attrs {
17781 start.push_attribute((key.as_str(), value.as_str()));
17782 }
17783 start
17784 }
17785
17786 fn is_empty_element(&self) -> bool {
17787 true
17788 }
17789}
17790
17791impl ToXml for TableGridColumn {
17792 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17793 #[allow(unused_mut)]
17794 let mut start = start;
17795 if let Some(ref val) = self.width {
17796 {
17797 let s = val.to_string();
17798 start.push_attribute(("w:w", s.as_str()));
17799 }
17800 }
17801 #[cfg(feature = "extra-attrs")]
17802 for (key, value) in &self.extra_attrs {
17803 start.push_attribute((key.as_str(), value.as_str()));
17804 }
17805 start
17806 }
17807
17808 fn is_empty_element(&self) -> bool {
17809 true
17810 }
17811}
17812
17813impl ToXml for CTTblGridBase {
17814 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17815 #[cfg(feature = "extra-children")]
17816 let mut extra_iter = self.extra_children.iter().peekable();
17817 #[cfg(feature = "extra-children")]
17818 let mut emit_idx: usize = 0;
17819 for item in &self.grid_col {
17820 #[cfg(feature = "extra-children")]
17821 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17822 extra_iter
17823 .next()
17824 .unwrap()
17825 .node
17826 .write_to(writer)
17827 .map_err(SerializeError::from)?;
17828 }
17829 item.write_element("w:gridCol", writer)?;
17830 #[cfg(feature = "extra-children")]
17831 {
17832 emit_idx += 1;
17833 }
17834 }
17835 #[cfg(feature = "extra-children")]
17836 for extra in extra_iter {
17837 extra.node.write_to(writer).map_err(SerializeError::from)?;
17838 }
17839 Ok(())
17840 }
17841
17842 fn is_empty_element(&self) -> bool {
17843 if !self.grid_col.is_empty() {
17844 return false;
17845 }
17846 #[cfg(feature = "extra-children")]
17847 if !self.extra_children.is_empty() {
17848 return false;
17849 }
17850 true
17851 }
17852}
17853
17854impl ToXml for TableGrid {
17855 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17856 #[cfg(feature = "extra-children")]
17857 let mut extra_iter = self.extra_children.iter().peekable();
17858 #[cfg(feature = "extra-children")]
17859 let mut emit_idx: usize = 0;
17860 for item in &self.grid_col {
17861 #[cfg(feature = "extra-children")]
17862 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17863 extra_iter
17864 .next()
17865 .unwrap()
17866 .node
17867 .write_to(writer)
17868 .map_err(SerializeError::from)?;
17869 }
17870 item.write_element("w:gridCol", writer)?;
17871 #[cfg(feature = "extra-children")]
17872 {
17873 emit_idx += 1;
17874 }
17875 }
17876 #[cfg(feature = "extra-children")]
17877 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17878 extra_iter
17879 .next()
17880 .unwrap()
17881 .node
17882 .write_to(writer)
17883 .map_err(SerializeError::from)?;
17884 }
17885 #[cfg(feature = "wml-track-changes")]
17886 if let Some(ref val) = self.tbl_grid_change {
17887 val.write_element("w:tblGridChange", writer)?;
17888 }
17889 #[cfg(feature = "extra-children")]
17890 {
17891 emit_idx += 1;
17892 }
17893 #[cfg(feature = "extra-children")]
17894 for extra in extra_iter {
17895 extra.node.write_to(writer).map_err(SerializeError::from)?;
17896 }
17897 Ok(())
17898 }
17899
17900 fn is_empty_element(&self) -> bool {
17901 if !self.grid_col.is_empty() {
17902 return false;
17903 }
17904 #[cfg(feature = "wml-track-changes")]
17905 if self.tbl_grid_change.is_some() {
17906 return false;
17907 }
17908 #[cfg(feature = "extra-children")]
17909 if !self.extra_children.is_empty() {
17910 return false;
17911 }
17912 true
17913 }
17914}
17915
17916impl ToXml for CTTcBorders {
17917 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17918 #[cfg(feature = "extra-children")]
17919 let mut extra_iter = self.extra_children.iter().peekable();
17920 #[cfg(feature = "extra-children")]
17921 let mut emit_idx: usize = 0;
17922 #[cfg(feature = "extra-children")]
17923 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17924 extra_iter
17925 .next()
17926 .unwrap()
17927 .node
17928 .write_to(writer)
17929 .map_err(SerializeError::from)?;
17930 }
17931 #[cfg(feature = "wml-tables")]
17932 if let Some(ref val) = self.top {
17933 val.write_element("w:top", writer)?;
17934 }
17935 #[cfg(feature = "extra-children")]
17936 {
17937 emit_idx += 1;
17938 }
17939 #[cfg(feature = "extra-children")]
17940 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17941 extra_iter
17942 .next()
17943 .unwrap()
17944 .node
17945 .write_to(writer)
17946 .map_err(SerializeError::from)?;
17947 }
17948 #[cfg(feature = "wml-tables")]
17949 if let Some(ref val) = self.start {
17950 val.write_element("w:start", writer)?;
17951 }
17952 #[cfg(feature = "extra-children")]
17953 {
17954 emit_idx += 1;
17955 }
17956 #[cfg(feature = "extra-children")]
17957 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17958 extra_iter
17959 .next()
17960 .unwrap()
17961 .node
17962 .write_to(writer)
17963 .map_err(SerializeError::from)?;
17964 }
17965 #[cfg(feature = "wml-tables")]
17966 if let Some(ref val) = self.left {
17967 val.write_element("w:left", writer)?;
17968 }
17969 #[cfg(feature = "extra-children")]
17970 {
17971 emit_idx += 1;
17972 }
17973 #[cfg(feature = "extra-children")]
17974 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17975 extra_iter
17976 .next()
17977 .unwrap()
17978 .node
17979 .write_to(writer)
17980 .map_err(SerializeError::from)?;
17981 }
17982 #[cfg(feature = "wml-tables")]
17983 if let Some(ref val) = self.bottom {
17984 val.write_element("w:bottom", writer)?;
17985 }
17986 #[cfg(feature = "extra-children")]
17987 {
17988 emit_idx += 1;
17989 }
17990 #[cfg(feature = "extra-children")]
17991 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17992 extra_iter
17993 .next()
17994 .unwrap()
17995 .node
17996 .write_to(writer)
17997 .map_err(SerializeError::from)?;
17998 }
17999 #[cfg(feature = "wml-tables")]
18000 if let Some(ref val) = self.end {
18001 val.write_element("w:end", writer)?;
18002 }
18003 #[cfg(feature = "extra-children")]
18004 {
18005 emit_idx += 1;
18006 }
18007 #[cfg(feature = "extra-children")]
18008 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18009 extra_iter
18010 .next()
18011 .unwrap()
18012 .node
18013 .write_to(writer)
18014 .map_err(SerializeError::from)?;
18015 }
18016 #[cfg(feature = "wml-tables")]
18017 if let Some(ref val) = self.right {
18018 val.write_element("w:right", writer)?;
18019 }
18020 #[cfg(feature = "extra-children")]
18021 {
18022 emit_idx += 1;
18023 }
18024 #[cfg(feature = "extra-children")]
18025 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18026 extra_iter
18027 .next()
18028 .unwrap()
18029 .node
18030 .write_to(writer)
18031 .map_err(SerializeError::from)?;
18032 }
18033 #[cfg(feature = "wml-tables")]
18034 if let Some(ref val) = self.inside_h {
18035 val.write_element("w:insideH", writer)?;
18036 }
18037 #[cfg(feature = "extra-children")]
18038 {
18039 emit_idx += 1;
18040 }
18041 #[cfg(feature = "extra-children")]
18042 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18043 extra_iter
18044 .next()
18045 .unwrap()
18046 .node
18047 .write_to(writer)
18048 .map_err(SerializeError::from)?;
18049 }
18050 #[cfg(feature = "wml-tables")]
18051 if let Some(ref val) = self.inside_v {
18052 val.write_element("w:insideV", writer)?;
18053 }
18054 #[cfg(feature = "extra-children")]
18055 {
18056 emit_idx += 1;
18057 }
18058 #[cfg(feature = "extra-children")]
18059 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18060 extra_iter
18061 .next()
18062 .unwrap()
18063 .node
18064 .write_to(writer)
18065 .map_err(SerializeError::from)?;
18066 }
18067 #[cfg(feature = "wml-tables")]
18068 if let Some(ref val) = self.tl2br {
18069 val.write_element("w:tl2br", writer)?;
18070 }
18071 #[cfg(feature = "extra-children")]
18072 {
18073 emit_idx += 1;
18074 }
18075 #[cfg(feature = "extra-children")]
18076 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18077 extra_iter
18078 .next()
18079 .unwrap()
18080 .node
18081 .write_to(writer)
18082 .map_err(SerializeError::from)?;
18083 }
18084 #[cfg(feature = "wml-tables")]
18085 if let Some(ref val) = self.tr2bl {
18086 val.write_element("w:tr2bl", writer)?;
18087 }
18088 #[cfg(feature = "extra-children")]
18089 {
18090 emit_idx += 1;
18091 }
18092 #[cfg(feature = "extra-children")]
18093 for extra in extra_iter {
18094 extra.node.write_to(writer).map_err(SerializeError::from)?;
18095 }
18096 Ok(())
18097 }
18098
18099 fn is_empty_element(&self) -> bool {
18100 #[cfg(feature = "wml-tables")]
18101 if self.top.is_some() {
18102 return false;
18103 }
18104 #[cfg(feature = "wml-tables")]
18105 if self.start.is_some() {
18106 return false;
18107 }
18108 #[cfg(feature = "wml-tables")]
18109 if self.left.is_some() {
18110 return false;
18111 }
18112 #[cfg(feature = "wml-tables")]
18113 if self.bottom.is_some() {
18114 return false;
18115 }
18116 #[cfg(feature = "wml-tables")]
18117 if self.end.is_some() {
18118 return false;
18119 }
18120 #[cfg(feature = "wml-tables")]
18121 if self.right.is_some() {
18122 return false;
18123 }
18124 #[cfg(feature = "wml-tables")]
18125 if self.inside_h.is_some() {
18126 return false;
18127 }
18128 #[cfg(feature = "wml-tables")]
18129 if self.inside_v.is_some() {
18130 return false;
18131 }
18132 #[cfg(feature = "wml-tables")]
18133 if self.tl2br.is_some() {
18134 return false;
18135 }
18136 #[cfg(feature = "wml-tables")]
18137 if self.tr2bl.is_some() {
18138 return false;
18139 }
18140 #[cfg(feature = "extra-children")]
18141 if !self.extra_children.is_empty() {
18142 return false;
18143 }
18144 true
18145 }
18146}
18147
18148impl ToXml for CTTcMar {
18149 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
18150 #[cfg(feature = "extra-children")]
18151 let mut extra_iter = self.extra_children.iter().peekable();
18152 #[cfg(feature = "extra-children")]
18153 let mut emit_idx: usize = 0;
18154 #[cfg(feature = "extra-children")]
18155 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18156 extra_iter
18157 .next()
18158 .unwrap()
18159 .node
18160 .write_to(writer)
18161 .map_err(SerializeError::from)?;
18162 }
18163 #[cfg(feature = "wml-tables")]
18164 if let Some(ref val) = self.top {
18165 val.write_element("w:top", writer)?;
18166 }
18167 #[cfg(feature = "extra-children")]
18168 {
18169 emit_idx += 1;
18170 }
18171 #[cfg(feature = "extra-children")]
18172 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18173 extra_iter
18174 .next()
18175 .unwrap()
18176 .node
18177 .write_to(writer)
18178 .map_err(SerializeError::from)?;
18179 }
18180 #[cfg(feature = "wml-tables")]
18181 if let Some(ref val) = self.start {
18182 val.write_element("w:start", writer)?;
18183 }
18184 #[cfg(feature = "extra-children")]
18185 {
18186 emit_idx += 1;
18187 }
18188 #[cfg(feature = "extra-children")]
18189 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18190 extra_iter
18191 .next()
18192 .unwrap()
18193 .node
18194 .write_to(writer)
18195 .map_err(SerializeError::from)?;
18196 }
18197 #[cfg(feature = "wml-tables")]
18198 if let Some(ref val) = self.left {
18199 val.write_element("w:left", writer)?;
18200 }
18201 #[cfg(feature = "extra-children")]
18202 {
18203 emit_idx += 1;
18204 }
18205 #[cfg(feature = "extra-children")]
18206 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18207 extra_iter
18208 .next()
18209 .unwrap()
18210 .node
18211 .write_to(writer)
18212 .map_err(SerializeError::from)?;
18213 }
18214 #[cfg(feature = "wml-tables")]
18215 if let Some(ref val) = self.bottom {
18216 val.write_element("w:bottom", writer)?;
18217 }
18218 #[cfg(feature = "extra-children")]
18219 {
18220 emit_idx += 1;
18221 }
18222 #[cfg(feature = "extra-children")]
18223 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18224 extra_iter
18225 .next()
18226 .unwrap()
18227 .node
18228 .write_to(writer)
18229 .map_err(SerializeError::from)?;
18230 }
18231 #[cfg(feature = "wml-tables")]
18232 if let Some(ref val) = self.end {
18233 val.write_element("w:end", writer)?;
18234 }
18235 #[cfg(feature = "extra-children")]
18236 {
18237 emit_idx += 1;
18238 }
18239 #[cfg(feature = "extra-children")]
18240 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18241 extra_iter
18242 .next()
18243 .unwrap()
18244 .node
18245 .write_to(writer)
18246 .map_err(SerializeError::from)?;
18247 }
18248 #[cfg(feature = "wml-tables")]
18249 if let Some(ref val) = self.right {
18250 val.write_element("w:right", writer)?;
18251 }
18252 #[cfg(feature = "extra-children")]
18253 {
18254 emit_idx += 1;
18255 }
18256 #[cfg(feature = "extra-children")]
18257 for extra in extra_iter {
18258 extra.node.write_to(writer).map_err(SerializeError::from)?;
18259 }
18260 Ok(())
18261 }
18262
18263 fn is_empty_element(&self) -> bool {
18264 #[cfg(feature = "wml-tables")]
18265 if self.top.is_some() {
18266 return false;
18267 }
18268 #[cfg(feature = "wml-tables")]
18269 if self.start.is_some() {
18270 return false;
18271 }
18272 #[cfg(feature = "wml-tables")]
18273 if self.left.is_some() {
18274 return false;
18275 }
18276 #[cfg(feature = "wml-tables")]
18277 if self.bottom.is_some() {
18278 return false;
18279 }
18280 #[cfg(feature = "wml-tables")]
18281 if self.end.is_some() {
18282 return false;
18283 }
18284 #[cfg(feature = "wml-tables")]
18285 if self.right.is_some() {
18286 return false;
18287 }
18288 #[cfg(feature = "extra-children")]
18289 if !self.extra_children.is_empty() {
18290 return false;
18291 }
18292 true
18293 }
18294}
18295
18296impl ToXml for CTVMerge {
18297 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
18298 #[allow(unused_mut)]
18299 let mut start = start;
18300 if let Some(ref val) = self.value {
18301 {
18302 let s = val.to_string();
18303 start.push_attribute(("w:val", s.as_str()));
18304 }
18305 }
18306 #[cfg(feature = "extra-attrs")]
18307 for (key, value) in &self.extra_attrs {
18308 start.push_attribute((key.as_str(), value.as_str()));
18309 }
18310 start
18311 }
18312
18313 fn is_empty_element(&self) -> bool {
18314 true
18315 }
18316}
18317
18318impl ToXml for CTHMerge {
18319 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
18320 #[allow(unused_mut)]
18321 let mut start = start;
18322 if let Some(ref val) = self.value {
18323 {
18324 let s = val.to_string();
18325 start.push_attribute(("w:val", s.as_str()));
18326 }
18327 }
18328 #[cfg(feature = "extra-attrs")]
18329 for (key, value) in &self.extra_attrs {
18330 start.push_attribute((key.as_str(), value.as_str()));
18331 }
18332 start
18333 }
18334
18335 fn is_empty_element(&self) -> bool {
18336 true
18337 }
18338}
18339
18340impl ToXml for CTTcPrBase {
18341 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
18342 #[cfg(feature = "extra-children")]
18343 let mut extra_iter = self.extra_children.iter().peekable();
18344 #[cfg(feature = "extra-children")]
18345 let mut emit_idx: usize = 0;
18346 #[cfg(feature = "extra-children")]
18347 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18348 extra_iter
18349 .next()
18350 .unwrap()
18351 .node
18352 .write_to(writer)
18353 .map_err(SerializeError::from)?;
18354 }
18355 #[cfg(feature = "wml-styling")]
18356 if let Some(ref val) = self.cnf_style {
18357 val.write_element("w:cnfStyle", writer)?;
18358 }
18359 #[cfg(feature = "extra-children")]
18360 {
18361 emit_idx += 1;
18362 }
18363 #[cfg(feature = "extra-children")]
18364 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18365 extra_iter
18366 .next()
18367 .unwrap()
18368 .node
18369 .write_to(writer)
18370 .map_err(SerializeError::from)?;
18371 }
18372 #[cfg(feature = "wml-tables")]
18373 if let Some(ref val) = self.tc_w {
18374 val.write_element("w:tcW", writer)?;
18375 }
18376 #[cfg(feature = "extra-children")]
18377 {
18378 emit_idx += 1;
18379 }
18380 #[cfg(feature = "extra-children")]
18381 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18382 extra_iter
18383 .next()
18384 .unwrap()
18385 .node
18386 .write_to(writer)
18387 .map_err(SerializeError::from)?;
18388 }
18389 #[cfg(feature = "wml-tables")]
18390 if let Some(ref val) = self.grid_span {
18391 val.write_element("w:gridSpan", writer)?;
18392 }
18393 #[cfg(feature = "extra-children")]
18394 {
18395 emit_idx += 1;
18396 }
18397 #[cfg(feature = "extra-children")]
18398 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18399 extra_iter
18400 .next()
18401 .unwrap()
18402 .node
18403 .write_to(writer)
18404 .map_err(SerializeError::from)?;
18405 }
18406 #[cfg(feature = "wml-tables")]
18407 if let Some(ref val) = self.horizontal_merge {
18408 val.write_element("w:hMerge", writer)?;
18409 }
18410 #[cfg(feature = "extra-children")]
18411 {
18412 emit_idx += 1;
18413 }
18414 #[cfg(feature = "extra-children")]
18415 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18416 extra_iter
18417 .next()
18418 .unwrap()
18419 .node
18420 .write_to(writer)
18421 .map_err(SerializeError::from)?;
18422 }
18423 #[cfg(feature = "wml-tables")]
18424 if let Some(ref val) = self.vertical_merge {
18425 val.write_element("w:vMerge", writer)?;
18426 }
18427 #[cfg(feature = "extra-children")]
18428 {
18429 emit_idx += 1;
18430 }
18431 #[cfg(feature = "extra-children")]
18432 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18433 extra_iter
18434 .next()
18435 .unwrap()
18436 .node
18437 .write_to(writer)
18438 .map_err(SerializeError::from)?;
18439 }
18440 #[cfg(feature = "wml-tables")]
18441 if let Some(ref val) = self.tc_borders {
18442 val.write_element("w:tcBorders", writer)?;
18443 }
18444 #[cfg(feature = "extra-children")]
18445 {
18446 emit_idx += 1;
18447 }
18448 #[cfg(feature = "extra-children")]
18449 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18450 extra_iter
18451 .next()
18452 .unwrap()
18453 .node
18454 .write_to(writer)
18455 .map_err(SerializeError::from)?;
18456 }
18457 #[cfg(feature = "wml-tables")]
18458 if let Some(ref val) = self.shading {
18459 val.write_element("w:shd", writer)?;
18460 }
18461 #[cfg(feature = "extra-children")]
18462 {
18463 emit_idx += 1;
18464 }
18465 #[cfg(feature = "extra-children")]
18466 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18467 extra_iter
18468 .next()
18469 .unwrap()
18470 .node
18471 .write_to(writer)
18472 .map_err(SerializeError::from)?;
18473 }
18474 #[cfg(feature = "wml-tables")]
18475 if let Some(ref val) = self.no_wrap {
18476 val.write_element("w:noWrap", writer)?;
18477 }
18478 #[cfg(feature = "extra-children")]
18479 {
18480 emit_idx += 1;
18481 }
18482 #[cfg(feature = "extra-children")]
18483 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18484 extra_iter
18485 .next()
18486 .unwrap()
18487 .node
18488 .write_to(writer)
18489 .map_err(SerializeError::from)?;
18490 }
18491 #[cfg(feature = "wml-tables")]
18492 if let Some(ref val) = self.tc_mar {
18493 val.write_element("w:tcMar", writer)?;
18494 }
18495 #[cfg(feature = "extra-children")]
18496 {
18497 emit_idx += 1;
18498 }
18499 #[cfg(feature = "extra-children")]
18500 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18501 extra_iter
18502 .next()
18503 .unwrap()
18504 .node
18505 .write_to(writer)
18506 .map_err(SerializeError::from)?;
18507 }
18508 #[cfg(feature = "wml-tables")]
18509 if let Some(ref val) = self.text_direction {
18510 val.write_element("w:textDirection", writer)?;
18511 }
18512 #[cfg(feature = "extra-children")]
18513 {
18514 emit_idx += 1;
18515 }
18516 #[cfg(feature = "extra-children")]
18517 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18518 extra_iter
18519 .next()
18520 .unwrap()
18521 .node
18522 .write_to(writer)
18523 .map_err(SerializeError::from)?;
18524 }
18525 #[cfg(feature = "wml-tables")]
18526 if let Some(ref val) = self.tc_fit_text {
18527 val.write_element("w:tcFitText", writer)?;
18528 }
18529 #[cfg(feature = "extra-children")]
18530 {
18531 emit_idx += 1;
18532 }
18533 #[cfg(feature = "extra-children")]
18534 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18535 extra_iter
18536 .next()
18537 .unwrap()
18538 .node
18539 .write_to(writer)
18540 .map_err(SerializeError::from)?;
18541 }
18542 #[cfg(feature = "wml-tables")]
18543 if let Some(ref val) = self.v_align {
18544 val.write_element("w:vAlign", writer)?;
18545 }
18546 #[cfg(feature = "extra-children")]
18547 {
18548 emit_idx += 1;
18549 }
18550 #[cfg(feature = "extra-children")]
18551 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18552 extra_iter
18553 .next()
18554 .unwrap()
18555 .node
18556 .write_to(writer)
18557 .map_err(SerializeError::from)?;
18558 }
18559 #[cfg(feature = "wml-tables")]
18560 if let Some(ref val) = self.hide_mark {
18561 val.write_element("w:hideMark", writer)?;
18562 }
18563 #[cfg(feature = "extra-children")]
18564 {
18565 emit_idx += 1;
18566 }
18567 #[cfg(feature = "extra-children")]
18568 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18569 extra_iter
18570 .next()
18571 .unwrap()
18572 .node
18573 .write_to(writer)
18574 .map_err(SerializeError::from)?;
18575 }
18576 #[cfg(feature = "wml-tables")]
18577 if let Some(ref val) = self.headers {
18578 val.write_element("w:headers", writer)?;
18579 }
18580 #[cfg(feature = "extra-children")]
18581 {
18582 emit_idx += 1;
18583 }
18584 #[cfg(feature = "extra-children")]
18585 for extra in extra_iter {
18586 extra.node.write_to(writer).map_err(SerializeError::from)?;
18587 }
18588 Ok(())
18589 }
18590
18591 fn is_empty_element(&self) -> bool {
18592 #[cfg(feature = "wml-styling")]
18593 if self.cnf_style.is_some() {
18594 return false;
18595 }
18596 #[cfg(feature = "wml-tables")]
18597 if self.tc_w.is_some() {
18598 return false;
18599 }
18600 #[cfg(feature = "wml-tables")]
18601 if self.grid_span.is_some() {
18602 return false;
18603 }
18604 #[cfg(feature = "wml-tables")]
18605 if self.horizontal_merge.is_some() {
18606 return false;
18607 }
18608 #[cfg(feature = "wml-tables")]
18609 if self.vertical_merge.is_some() {
18610 return false;
18611 }
18612 #[cfg(feature = "wml-tables")]
18613 if self.tc_borders.is_some() {
18614 return false;
18615 }
18616 #[cfg(feature = "wml-tables")]
18617 if self.shading.is_some() {
18618 return false;
18619 }
18620 #[cfg(feature = "wml-tables")]
18621 if self.no_wrap.is_some() {
18622 return false;
18623 }
18624 #[cfg(feature = "wml-tables")]
18625 if self.tc_mar.is_some() {
18626 return false;
18627 }
18628 #[cfg(feature = "wml-tables")]
18629 if self.text_direction.is_some() {
18630 return false;
18631 }
18632 #[cfg(feature = "wml-tables")]
18633 if self.tc_fit_text.is_some() {
18634 return false;
18635 }
18636 #[cfg(feature = "wml-tables")]
18637 if self.v_align.is_some() {
18638 return false;
18639 }
18640 #[cfg(feature = "wml-tables")]
18641 if self.hide_mark.is_some() {
18642 return false;
18643 }
18644 #[cfg(feature = "wml-tables")]
18645 if self.headers.is_some() {
18646 return false;
18647 }
18648 #[cfg(feature = "extra-children")]
18649 if !self.extra_children.is_empty() {
18650 return false;
18651 }
18652 true
18653 }
18654}
18655
18656impl ToXml for TableCellProperties {
18657 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
18658 #[cfg(feature = "extra-children")]
18659 let mut extra_iter = self.extra_children.iter().peekable();
18660 #[cfg(feature = "extra-children")]
18661 let mut emit_idx: usize = 0;
18662 #[cfg(feature = "extra-children")]
18663 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18664 extra_iter
18665 .next()
18666 .unwrap()
18667 .node
18668 .write_to(writer)
18669 .map_err(SerializeError::from)?;
18670 }
18671 #[cfg(feature = "wml-styling")]
18672 if let Some(ref val) = self.cnf_style {
18673 val.write_element("w:cnfStyle", writer)?;
18674 }
18675 #[cfg(feature = "extra-children")]
18676 {
18677 emit_idx += 1;
18678 }
18679 #[cfg(feature = "extra-children")]
18680 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18681 extra_iter
18682 .next()
18683 .unwrap()
18684 .node
18685 .write_to(writer)
18686 .map_err(SerializeError::from)?;
18687 }
18688 #[cfg(feature = "wml-tables")]
18689 if let Some(ref val) = self.tc_w {
18690 val.write_element("w:tcW", writer)?;
18691 }
18692 #[cfg(feature = "extra-children")]
18693 {
18694 emit_idx += 1;
18695 }
18696 #[cfg(feature = "extra-children")]
18697 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18698 extra_iter
18699 .next()
18700 .unwrap()
18701 .node
18702 .write_to(writer)
18703 .map_err(SerializeError::from)?;
18704 }
18705 #[cfg(feature = "wml-tables")]
18706 if let Some(ref val) = self.grid_span {
18707 val.write_element("w:gridSpan", writer)?;
18708 }
18709 #[cfg(feature = "extra-children")]
18710 {
18711 emit_idx += 1;
18712 }
18713 #[cfg(feature = "extra-children")]
18714 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18715 extra_iter
18716 .next()
18717 .unwrap()
18718 .node
18719 .write_to(writer)
18720 .map_err(SerializeError::from)?;
18721 }
18722 #[cfg(feature = "wml-tables")]
18723 if let Some(ref val) = self.horizontal_merge {
18724 val.write_element("w:hMerge", writer)?;
18725 }
18726 #[cfg(feature = "extra-children")]
18727 {
18728 emit_idx += 1;
18729 }
18730 #[cfg(feature = "extra-children")]
18731 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18732 extra_iter
18733 .next()
18734 .unwrap()
18735 .node
18736 .write_to(writer)
18737 .map_err(SerializeError::from)?;
18738 }
18739 #[cfg(feature = "wml-tables")]
18740 if let Some(ref val) = self.vertical_merge {
18741 val.write_element("w:vMerge", writer)?;
18742 }
18743 #[cfg(feature = "extra-children")]
18744 {
18745 emit_idx += 1;
18746 }
18747 #[cfg(feature = "extra-children")]
18748 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18749 extra_iter
18750 .next()
18751 .unwrap()
18752 .node
18753 .write_to(writer)
18754 .map_err(SerializeError::from)?;
18755 }
18756 #[cfg(feature = "wml-tables")]
18757 if let Some(ref val) = self.tc_borders {
18758 val.write_element("w:tcBorders", writer)?;
18759 }
18760 #[cfg(feature = "extra-children")]
18761 {
18762 emit_idx += 1;
18763 }
18764 #[cfg(feature = "extra-children")]
18765 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18766 extra_iter
18767 .next()
18768 .unwrap()
18769 .node
18770 .write_to(writer)
18771 .map_err(SerializeError::from)?;
18772 }
18773 #[cfg(feature = "wml-tables")]
18774 if let Some(ref val) = self.shading {
18775 val.write_element("w:shd", writer)?;
18776 }
18777 #[cfg(feature = "extra-children")]
18778 {
18779 emit_idx += 1;
18780 }
18781 #[cfg(feature = "extra-children")]
18782 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18783 extra_iter
18784 .next()
18785 .unwrap()
18786 .node
18787 .write_to(writer)
18788 .map_err(SerializeError::from)?;
18789 }
18790 #[cfg(feature = "wml-tables")]
18791 if let Some(ref val) = self.no_wrap {
18792 val.write_element("w:noWrap", writer)?;
18793 }
18794 #[cfg(feature = "extra-children")]
18795 {
18796 emit_idx += 1;
18797 }
18798 #[cfg(feature = "extra-children")]
18799 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18800 extra_iter
18801 .next()
18802 .unwrap()
18803 .node
18804 .write_to(writer)
18805 .map_err(SerializeError::from)?;
18806 }
18807 #[cfg(feature = "wml-tables")]
18808 if let Some(ref val) = self.tc_mar {
18809 val.write_element("w:tcMar", writer)?;
18810 }
18811 #[cfg(feature = "extra-children")]
18812 {
18813 emit_idx += 1;
18814 }
18815 #[cfg(feature = "extra-children")]
18816 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18817 extra_iter
18818 .next()
18819 .unwrap()
18820 .node
18821 .write_to(writer)
18822 .map_err(SerializeError::from)?;
18823 }
18824 #[cfg(feature = "wml-tables")]
18825 if let Some(ref val) = self.text_direction {
18826 val.write_element("w:textDirection", writer)?;
18827 }
18828 #[cfg(feature = "extra-children")]
18829 {
18830 emit_idx += 1;
18831 }
18832 #[cfg(feature = "extra-children")]
18833 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18834 extra_iter
18835 .next()
18836 .unwrap()
18837 .node
18838 .write_to(writer)
18839 .map_err(SerializeError::from)?;
18840 }
18841 #[cfg(feature = "wml-tables")]
18842 if let Some(ref val) = self.tc_fit_text {
18843 val.write_element("w:tcFitText", writer)?;
18844 }
18845 #[cfg(feature = "extra-children")]
18846 {
18847 emit_idx += 1;
18848 }
18849 #[cfg(feature = "extra-children")]
18850 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18851 extra_iter
18852 .next()
18853 .unwrap()
18854 .node
18855 .write_to(writer)
18856 .map_err(SerializeError::from)?;
18857 }
18858 #[cfg(feature = "wml-tables")]
18859 if let Some(ref val) = self.v_align {
18860 val.write_element("w:vAlign", writer)?;
18861 }
18862 #[cfg(feature = "extra-children")]
18863 {
18864 emit_idx += 1;
18865 }
18866 #[cfg(feature = "extra-children")]
18867 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18868 extra_iter
18869 .next()
18870 .unwrap()
18871 .node
18872 .write_to(writer)
18873 .map_err(SerializeError::from)?;
18874 }
18875 #[cfg(feature = "wml-tables")]
18876 if let Some(ref val) = self.hide_mark {
18877 val.write_element("w:hideMark", writer)?;
18878 }
18879 #[cfg(feature = "extra-children")]
18880 {
18881 emit_idx += 1;
18882 }
18883 #[cfg(feature = "extra-children")]
18884 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18885 extra_iter
18886 .next()
18887 .unwrap()
18888 .node
18889 .write_to(writer)
18890 .map_err(SerializeError::from)?;
18891 }
18892 #[cfg(feature = "wml-tables")]
18893 if let Some(ref val) = self.headers {
18894 val.write_element("w:headers", writer)?;
18895 }
18896 #[cfg(feature = "extra-children")]
18897 {
18898 emit_idx += 1;
18899 }
18900 #[cfg(feature = "extra-children")]
18901 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18902 extra_iter
18903 .next()
18904 .unwrap()
18905 .node
18906 .write_to(writer)
18907 .map_err(SerializeError::from)?;
18908 }
18909 if let Some(ref val) = self.cell_markup {
18910 val.write_element("", writer)?;
18911 }
18912 #[cfg(feature = "extra-children")]
18913 {
18914 emit_idx += 1;
18915 }
18916 #[cfg(feature = "extra-children")]
18917 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18918 extra_iter
18919 .next()
18920 .unwrap()
18921 .node
18922 .write_to(writer)
18923 .map_err(SerializeError::from)?;
18924 }
18925 #[cfg(feature = "wml-track-changes")]
18926 if let Some(ref val) = self.tc_pr_change {
18927 val.write_element("w:tcPrChange", writer)?;
18928 }
18929 #[cfg(feature = "extra-children")]
18930 {
18931 emit_idx += 1;
18932 }
18933 #[cfg(feature = "extra-children")]
18934 for extra in extra_iter {
18935 extra.node.write_to(writer).map_err(SerializeError::from)?;
18936 }
18937 Ok(())
18938 }
18939
18940 fn is_empty_element(&self) -> bool {
18941 #[cfg(feature = "wml-styling")]
18942 if self.cnf_style.is_some() {
18943 return false;
18944 }
18945 #[cfg(feature = "wml-tables")]
18946 if self.tc_w.is_some() {
18947 return false;
18948 }
18949 #[cfg(feature = "wml-tables")]
18950 if self.grid_span.is_some() {
18951 return false;
18952 }
18953 #[cfg(feature = "wml-tables")]
18954 if self.horizontal_merge.is_some() {
18955 return false;
18956 }
18957 #[cfg(feature = "wml-tables")]
18958 if self.vertical_merge.is_some() {
18959 return false;
18960 }
18961 #[cfg(feature = "wml-tables")]
18962 if self.tc_borders.is_some() {
18963 return false;
18964 }
18965 #[cfg(feature = "wml-tables")]
18966 if self.shading.is_some() {
18967 return false;
18968 }
18969 #[cfg(feature = "wml-tables")]
18970 if self.no_wrap.is_some() {
18971 return false;
18972 }
18973 #[cfg(feature = "wml-tables")]
18974 if self.tc_mar.is_some() {
18975 return false;
18976 }
18977 #[cfg(feature = "wml-tables")]
18978 if self.text_direction.is_some() {
18979 return false;
18980 }
18981 #[cfg(feature = "wml-tables")]
18982 if self.tc_fit_text.is_some() {
18983 return false;
18984 }
18985 #[cfg(feature = "wml-tables")]
18986 if self.v_align.is_some() {
18987 return false;
18988 }
18989 #[cfg(feature = "wml-tables")]
18990 if self.hide_mark.is_some() {
18991 return false;
18992 }
18993 #[cfg(feature = "wml-tables")]
18994 if self.headers.is_some() {
18995 return false;
18996 }
18997 if self.cell_markup.is_some() {
18998 return false;
18999 }
19000 #[cfg(feature = "wml-track-changes")]
19001 if self.tc_pr_change.is_some() {
19002 return false;
19003 }
19004 #[cfg(feature = "extra-children")]
19005 if !self.extra_children.is_empty() {
19006 return false;
19007 }
19008 true
19009 }
19010}
19011
19012impl ToXml for CTTcPrInner {
19013 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19014 #[cfg(feature = "extra-children")]
19015 let mut extra_iter = self.extra_children.iter().peekable();
19016 #[cfg(feature = "extra-children")]
19017 let mut emit_idx: usize = 0;
19018 #[cfg(feature = "extra-children")]
19019 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19020 extra_iter
19021 .next()
19022 .unwrap()
19023 .node
19024 .write_to(writer)
19025 .map_err(SerializeError::from)?;
19026 }
19027 if let Some(ref val) = self.cnf_style {
19028 val.write_element("w:cnfStyle", writer)?;
19029 }
19030 #[cfg(feature = "extra-children")]
19031 {
19032 emit_idx += 1;
19033 }
19034 #[cfg(feature = "extra-children")]
19035 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19036 extra_iter
19037 .next()
19038 .unwrap()
19039 .node
19040 .write_to(writer)
19041 .map_err(SerializeError::from)?;
19042 }
19043 if let Some(ref val) = self.tc_w {
19044 val.write_element("w:tcW", writer)?;
19045 }
19046 #[cfg(feature = "extra-children")]
19047 {
19048 emit_idx += 1;
19049 }
19050 #[cfg(feature = "extra-children")]
19051 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19052 extra_iter
19053 .next()
19054 .unwrap()
19055 .node
19056 .write_to(writer)
19057 .map_err(SerializeError::from)?;
19058 }
19059 if let Some(ref val) = self.grid_span {
19060 val.write_element("w:gridSpan", writer)?;
19061 }
19062 #[cfg(feature = "extra-children")]
19063 {
19064 emit_idx += 1;
19065 }
19066 #[cfg(feature = "extra-children")]
19067 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19068 extra_iter
19069 .next()
19070 .unwrap()
19071 .node
19072 .write_to(writer)
19073 .map_err(SerializeError::from)?;
19074 }
19075 if let Some(ref val) = self.horizontal_merge {
19076 val.write_element("w:hMerge", writer)?;
19077 }
19078 #[cfg(feature = "extra-children")]
19079 {
19080 emit_idx += 1;
19081 }
19082 #[cfg(feature = "extra-children")]
19083 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19084 extra_iter
19085 .next()
19086 .unwrap()
19087 .node
19088 .write_to(writer)
19089 .map_err(SerializeError::from)?;
19090 }
19091 if let Some(ref val) = self.vertical_merge {
19092 val.write_element("w:vMerge", writer)?;
19093 }
19094 #[cfg(feature = "extra-children")]
19095 {
19096 emit_idx += 1;
19097 }
19098 #[cfg(feature = "extra-children")]
19099 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19100 extra_iter
19101 .next()
19102 .unwrap()
19103 .node
19104 .write_to(writer)
19105 .map_err(SerializeError::from)?;
19106 }
19107 if let Some(ref val) = self.tc_borders {
19108 val.write_element("w:tcBorders", writer)?;
19109 }
19110 #[cfg(feature = "extra-children")]
19111 {
19112 emit_idx += 1;
19113 }
19114 #[cfg(feature = "extra-children")]
19115 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19116 extra_iter
19117 .next()
19118 .unwrap()
19119 .node
19120 .write_to(writer)
19121 .map_err(SerializeError::from)?;
19122 }
19123 if let Some(ref val) = self.shading {
19124 val.write_element("w:shd", writer)?;
19125 }
19126 #[cfg(feature = "extra-children")]
19127 {
19128 emit_idx += 1;
19129 }
19130 #[cfg(feature = "extra-children")]
19131 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19132 extra_iter
19133 .next()
19134 .unwrap()
19135 .node
19136 .write_to(writer)
19137 .map_err(SerializeError::from)?;
19138 }
19139 if let Some(ref val) = self.no_wrap {
19140 val.write_element("w:noWrap", writer)?;
19141 }
19142 #[cfg(feature = "extra-children")]
19143 {
19144 emit_idx += 1;
19145 }
19146 #[cfg(feature = "extra-children")]
19147 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19148 extra_iter
19149 .next()
19150 .unwrap()
19151 .node
19152 .write_to(writer)
19153 .map_err(SerializeError::from)?;
19154 }
19155 if let Some(ref val) = self.tc_mar {
19156 val.write_element("w:tcMar", writer)?;
19157 }
19158 #[cfg(feature = "extra-children")]
19159 {
19160 emit_idx += 1;
19161 }
19162 #[cfg(feature = "extra-children")]
19163 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19164 extra_iter
19165 .next()
19166 .unwrap()
19167 .node
19168 .write_to(writer)
19169 .map_err(SerializeError::from)?;
19170 }
19171 if let Some(ref val) = self.text_direction {
19172 val.write_element("w:textDirection", writer)?;
19173 }
19174 #[cfg(feature = "extra-children")]
19175 {
19176 emit_idx += 1;
19177 }
19178 #[cfg(feature = "extra-children")]
19179 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19180 extra_iter
19181 .next()
19182 .unwrap()
19183 .node
19184 .write_to(writer)
19185 .map_err(SerializeError::from)?;
19186 }
19187 if let Some(ref val) = self.tc_fit_text {
19188 val.write_element("w:tcFitText", writer)?;
19189 }
19190 #[cfg(feature = "extra-children")]
19191 {
19192 emit_idx += 1;
19193 }
19194 #[cfg(feature = "extra-children")]
19195 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19196 extra_iter
19197 .next()
19198 .unwrap()
19199 .node
19200 .write_to(writer)
19201 .map_err(SerializeError::from)?;
19202 }
19203 if let Some(ref val) = self.v_align {
19204 val.write_element("w:vAlign", writer)?;
19205 }
19206 #[cfg(feature = "extra-children")]
19207 {
19208 emit_idx += 1;
19209 }
19210 #[cfg(feature = "extra-children")]
19211 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19212 extra_iter
19213 .next()
19214 .unwrap()
19215 .node
19216 .write_to(writer)
19217 .map_err(SerializeError::from)?;
19218 }
19219 if let Some(ref val) = self.hide_mark {
19220 val.write_element("w:hideMark", writer)?;
19221 }
19222 #[cfg(feature = "extra-children")]
19223 {
19224 emit_idx += 1;
19225 }
19226 #[cfg(feature = "extra-children")]
19227 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19228 extra_iter
19229 .next()
19230 .unwrap()
19231 .node
19232 .write_to(writer)
19233 .map_err(SerializeError::from)?;
19234 }
19235 if let Some(ref val) = self.headers {
19236 val.write_element("w:headers", writer)?;
19237 }
19238 #[cfg(feature = "extra-children")]
19239 {
19240 emit_idx += 1;
19241 }
19242 #[cfg(feature = "extra-children")]
19243 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19244 extra_iter
19245 .next()
19246 .unwrap()
19247 .node
19248 .write_to(writer)
19249 .map_err(SerializeError::from)?;
19250 }
19251 if let Some(ref val) = self.cell_markup {
19252 val.write_element("", writer)?;
19253 }
19254 #[cfg(feature = "extra-children")]
19255 {
19256 emit_idx += 1;
19257 }
19258 #[cfg(feature = "extra-children")]
19259 for extra in extra_iter {
19260 extra.node.write_to(writer).map_err(SerializeError::from)?;
19261 }
19262 Ok(())
19263 }
19264
19265 fn is_empty_element(&self) -> bool {
19266 if self.cnf_style.is_some() {
19267 return false;
19268 }
19269 if self.tc_w.is_some() {
19270 return false;
19271 }
19272 if self.grid_span.is_some() {
19273 return false;
19274 }
19275 if self.horizontal_merge.is_some() {
19276 return false;
19277 }
19278 if self.vertical_merge.is_some() {
19279 return false;
19280 }
19281 if self.tc_borders.is_some() {
19282 return false;
19283 }
19284 if self.shading.is_some() {
19285 return false;
19286 }
19287 if self.no_wrap.is_some() {
19288 return false;
19289 }
19290 if self.tc_mar.is_some() {
19291 return false;
19292 }
19293 if self.text_direction.is_some() {
19294 return false;
19295 }
19296 if self.tc_fit_text.is_some() {
19297 return false;
19298 }
19299 if self.v_align.is_some() {
19300 return false;
19301 }
19302 if self.hide_mark.is_some() {
19303 return false;
19304 }
19305 if self.headers.is_some() {
19306 return false;
19307 }
19308 if self.cell_markup.is_some() {
19309 return false;
19310 }
19311 #[cfg(feature = "extra-children")]
19312 if !self.extra_children.is_empty() {
19313 return false;
19314 }
19315 true
19316 }
19317}
19318
19319impl ToXml for TableCell {
19320 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
19321 #[allow(unused_mut)]
19322 let mut start = start;
19323 #[cfg(feature = "wml-tables")]
19324 if let Some(ref val) = self.id {
19325 start.push_attribute(("w:id", val.as_str()));
19326 }
19327 #[cfg(feature = "extra-attrs")]
19328 for (key, value) in &self.extra_attrs {
19329 start.push_attribute((key.as_str(), value.as_str()));
19330 }
19331 start
19332 }
19333
19334 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19335 #[cfg(feature = "extra-children")]
19336 let mut extra_iter = self.extra_children.iter().peekable();
19337 #[cfg(feature = "extra-children")]
19338 let mut emit_idx: usize = 0;
19339 #[cfg(feature = "extra-children")]
19340 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19341 extra_iter
19342 .next()
19343 .unwrap()
19344 .node
19345 .write_to(writer)
19346 .map_err(SerializeError::from)?;
19347 }
19348 #[cfg(feature = "wml-tables")]
19349 if let Some(ref val) = self.cell_properties {
19350 val.write_element("w:tcPr", writer)?;
19351 }
19352 #[cfg(feature = "extra-children")]
19353 {
19354 emit_idx += 1;
19355 }
19356 for item in &self.block_content {
19357 #[cfg(feature = "extra-children")]
19358 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19359 extra_iter
19360 .next()
19361 .unwrap()
19362 .node
19363 .write_to(writer)
19364 .map_err(SerializeError::from)?;
19365 }
19366 item.write_element("", writer)?;
19367 #[cfg(feature = "extra-children")]
19368 {
19369 emit_idx += 1;
19370 }
19371 }
19372 #[cfg(feature = "extra-children")]
19373 for extra in extra_iter {
19374 extra.node.write_to(writer).map_err(SerializeError::from)?;
19375 }
19376 Ok(())
19377 }
19378
19379 fn is_empty_element(&self) -> bool {
19380 #[cfg(feature = "wml-tables")]
19381 if self.cell_properties.is_some() {
19382 return false;
19383 }
19384 if !self.block_content.is_empty() {
19385 return false;
19386 }
19387 #[cfg(feature = "extra-children")]
19388 if !self.extra_children.is_empty() {
19389 return false;
19390 }
19391 true
19392 }
19393}
19394
19395impl ToXml for CTCnf {
19396 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
19397 #[allow(unused_mut)]
19398 let mut start = start;
19399 #[cfg(feature = "wml-styling")]
19400 if let Some(ref val) = self.value {
19401 start.push_attribute(("w:val", val.as_str()));
19402 }
19403 #[cfg(feature = "wml-styling")]
19404 if let Some(ref val) = self.first_row {
19405 {
19406 let s = val.to_string();
19407 start.push_attribute(("w:firstRow", s.as_str()));
19408 }
19409 }
19410 #[cfg(feature = "wml-styling")]
19411 if let Some(ref val) = self.last_row {
19412 {
19413 let s = val.to_string();
19414 start.push_attribute(("w:lastRow", s.as_str()));
19415 }
19416 }
19417 #[cfg(feature = "wml-styling")]
19418 if let Some(ref val) = self.first_column {
19419 {
19420 let s = val.to_string();
19421 start.push_attribute(("w:firstColumn", s.as_str()));
19422 }
19423 }
19424 #[cfg(feature = "wml-styling")]
19425 if let Some(ref val) = self.last_column {
19426 {
19427 let s = val.to_string();
19428 start.push_attribute(("w:lastColumn", s.as_str()));
19429 }
19430 }
19431 #[cfg(feature = "wml-styling")]
19432 if let Some(ref val) = self.odd_v_band {
19433 {
19434 let s = val.to_string();
19435 start.push_attribute(("w:oddVBand", s.as_str()));
19436 }
19437 }
19438 #[cfg(feature = "wml-styling")]
19439 if let Some(ref val) = self.even_v_band {
19440 {
19441 let s = val.to_string();
19442 start.push_attribute(("w:evenVBand", s.as_str()));
19443 }
19444 }
19445 #[cfg(feature = "wml-styling")]
19446 if let Some(ref val) = self.odd_h_band {
19447 {
19448 let s = val.to_string();
19449 start.push_attribute(("w:oddHBand", s.as_str()));
19450 }
19451 }
19452 #[cfg(feature = "wml-styling")]
19453 if let Some(ref val) = self.even_h_band {
19454 {
19455 let s = val.to_string();
19456 start.push_attribute(("w:evenHBand", s.as_str()));
19457 }
19458 }
19459 #[cfg(feature = "wml-styling")]
19460 if let Some(ref val) = self.first_row_first_column {
19461 {
19462 let s = val.to_string();
19463 start.push_attribute(("w:firstRowFirstColumn", s.as_str()));
19464 }
19465 }
19466 #[cfg(feature = "wml-styling")]
19467 if let Some(ref val) = self.first_row_last_column {
19468 {
19469 let s = val.to_string();
19470 start.push_attribute(("w:firstRowLastColumn", s.as_str()));
19471 }
19472 }
19473 #[cfg(feature = "wml-styling")]
19474 if let Some(ref val) = self.last_row_first_column {
19475 {
19476 let s = val.to_string();
19477 start.push_attribute(("w:lastRowFirstColumn", s.as_str()));
19478 }
19479 }
19480 #[cfg(feature = "wml-styling")]
19481 if let Some(ref val) = self.last_row_last_column {
19482 {
19483 let s = val.to_string();
19484 start.push_attribute(("w:lastRowLastColumn", s.as_str()));
19485 }
19486 }
19487 #[cfg(feature = "extra-attrs")]
19488 for (key, value) in &self.extra_attrs {
19489 start.push_attribute((key.as_str(), value.as_str()));
19490 }
19491 start
19492 }
19493
19494 fn is_empty_element(&self) -> bool {
19495 true
19496 }
19497}
19498
19499impl ToXml for CTHeaders {
19500 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19501 #[cfg(feature = "extra-children")]
19502 let mut extra_iter = self.extra_children.iter().peekable();
19503 #[cfg(feature = "extra-children")]
19504 let mut emit_idx: usize = 0;
19505 for item in &self.header {
19506 #[cfg(feature = "extra-children")]
19507 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19508 extra_iter
19509 .next()
19510 .unwrap()
19511 .node
19512 .write_to(writer)
19513 .map_err(SerializeError::from)?;
19514 }
19515 item.write_element("w:header", writer)?;
19516 #[cfg(feature = "extra-children")]
19517 {
19518 emit_idx += 1;
19519 }
19520 }
19521 #[cfg(feature = "extra-children")]
19522 for extra in extra_iter {
19523 extra.node.write_to(writer).map_err(SerializeError::from)?;
19524 }
19525 Ok(())
19526 }
19527
19528 fn is_empty_element(&self) -> bool {
19529 if !self.header.is_empty() {
19530 return false;
19531 }
19532 #[cfg(feature = "extra-children")]
19533 if !self.extra_children.is_empty() {
19534 return false;
19535 }
19536 true
19537 }
19538}
19539
19540impl ToXml for CTTrPrBase {
19541 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19542 #[cfg(feature = "extra-children")]
19543 let mut extra_iter = self.extra_children.iter().peekable();
19544 #[cfg(feature = "extra-children")]
19545 let mut emit_idx: usize = 0;
19546 #[cfg(feature = "extra-children")]
19547 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19548 extra_iter
19549 .next()
19550 .unwrap()
19551 .node
19552 .write_to(writer)
19553 .map_err(SerializeError::from)?;
19554 }
19555 #[cfg(feature = "wml-styling")]
19556 if let Some(ref val) = self.cnf_style {
19557 val.write_element("w:cnfStyle", writer)?;
19558 }
19559 #[cfg(feature = "extra-children")]
19560 {
19561 emit_idx += 1;
19562 }
19563 #[cfg(feature = "extra-children")]
19564 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19565 extra_iter
19566 .next()
19567 .unwrap()
19568 .node
19569 .write_to(writer)
19570 .map_err(SerializeError::from)?;
19571 }
19572 #[cfg(feature = "wml-settings")]
19573 if let Some(ref val) = self.div_id {
19574 val.write_element("w:divId", writer)?;
19575 }
19576 #[cfg(feature = "extra-children")]
19577 {
19578 emit_idx += 1;
19579 }
19580 #[cfg(feature = "extra-children")]
19581 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19582 extra_iter
19583 .next()
19584 .unwrap()
19585 .node
19586 .write_to(writer)
19587 .map_err(SerializeError::from)?;
19588 }
19589 #[cfg(feature = "wml-tables")]
19590 if let Some(ref val) = self.grid_before {
19591 val.write_element("w:gridBefore", writer)?;
19592 }
19593 #[cfg(feature = "extra-children")]
19594 {
19595 emit_idx += 1;
19596 }
19597 #[cfg(feature = "extra-children")]
19598 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19599 extra_iter
19600 .next()
19601 .unwrap()
19602 .node
19603 .write_to(writer)
19604 .map_err(SerializeError::from)?;
19605 }
19606 #[cfg(feature = "wml-tables")]
19607 if let Some(ref val) = self.grid_after {
19608 val.write_element("w:gridAfter", writer)?;
19609 }
19610 #[cfg(feature = "extra-children")]
19611 {
19612 emit_idx += 1;
19613 }
19614 #[cfg(feature = "extra-children")]
19615 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19616 extra_iter
19617 .next()
19618 .unwrap()
19619 .node
19620 .write_to(writer)
19621 .map_err(SerializeError::from)?;
19622 }
19623 #[cfg(feature = "wml-tables")]
19624 if let Some(ref val) = self.w_before {
19625 val.write_element("w:wBefore", writer)?;
19626 }
19627 #[cfg(feature = "extra-children")]
19628 {
19629 emit_idx += 1;
19630 }
19631 #[cfg(feature = "extra-children")]
19632 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19633 extra_iter
19634 .next()
19635 .unwrap()
19636 .node
19637 .write_to(writer)
19638 .map_err(SerializeError::from)?;
19639 }
19640 #[cfg(feature = "wml-tables")]
19641 if let Some(ref val) = self.w_after {
19642 val.write_element("w:wAfter", writer)?;
19643 }
19644 #[cfg(feature = "extra-children")]
19645 {
19646 emit_idx += 1;
19647 }
19648 #[cfg(feature = "extra-children")]
19649 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19650 extra_iter
19651 .next()
19652 .unwrap()
19653 .node
19654 .write_to(writer)
19655 .map_err(SerializeError::from)?;
19656 }
19657 #[cfg(feature = "wml-tables")]
19658 if let Some(ref val) = self.cant_split {
19659 val.write_element("w:cantSplit", writer)?;
19660 }
19661 #[cfg(feature = "extra-children")]
19662 {
19663 emit_idx += 1;
19664 }
19665 #[cfg(feature = "extra-children")]
19666 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19667 extra_iter
19668 .next()
19669 .unwrap()
19670 .node
19671 .write_to(writer)
19672 .map_err(SerializeError::from)?;
19673 }
19674 #[cfg(feature = "wml-tables")]
19675 if let Some(ref val) = self.tr_height {
19676 val.write_element("w:trHeight", writer)?;
19677 }
19678 #[cfg(feature = "extra-children")]
19679 {
19680 emit_idx += 1;
19681 }
19682 #[cfg(feature = "extra-children")]
19683 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19684 extra_iter
19685 .next()
19686 .unwrap()
19687 .node
19688 .write_to(writer)
19689 .map_err(SerializeError::from)?;
19690 }
19691 #[cfg(feature = "wml-tables")]
19692 if let Some(ref val) = self.tbl_header {
19693 val.write_element("w:tblHeader", writer)?;
19694 }
19695 #[cfg(feature = "extra-children")]
19696 {
19697 emit_idx += 1;
19698 }
19699 #[cfg(feature = "extra-children")]
19700 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19701 extra_iter
19702 .next()
19703 .unwrap()
19704 .node
19705 .write_to(writer)
19706 .map_err(SerializeError::from)?;
19707 }
19708 #[cfg(feature = "wml-tables")]
19709 if let Some(ref val) = self.tbl_cell_spacing {
19710 val.write_element("w:tblCellSpacing", writer)?;
19711 }
19712 #[cfg(feature = "extra-children")]
19713 {
19714 emit_idx += 1;
19715 }
19716 #[cfg(feature = "extra-children")]
19717 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19718 extra_iter
19719 .next()
19720 .unwrap()
19721 .node
19722 .write_to(writer)
19723 .map_err(SerializeError::from)?;
19724 }
19725 #[cfg(feature = "wml-tables")]
19726 if let Some(ref val) = self.justification {
19727 val.write_element("w:jc", writer)?;
19728 }
19729 #[cfg(feature = "extra-children")]
19730 {
19731 emit_idx += 1;
19732 }
19733 #[cfg(feature = "extra-children")]
19734 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19735 extra_iter
19736 .next()
19737 .unwrap()
19738 .node
19739 .write_to(writer)
19740 .map_err(SerializeError::from)?;
19741 }
19742 #[cfg(feature = "wml-tables")]
19743 if let Some(ref val) = self.hidden {
19744 val.write_element("w:hidden", writer)?;
19745 }
19746 #[cfg(feature = "extra-children")]
19747 {
19748 emit_idx += 1;
19749 }
19750 #[cfg(feature = "extra-children")]
19751 for extra in extra_iter {
19752 extra.node.write_to(writer).map_err(SerializeError::from)?;
19753 }
19754 Ok(())
19755 }
19756
19757 fn is_empty_element(&self) -> bool {
19758 #[cfg(feature = "wml-styling")]
19759 if self.cnf_style.is_some() {
19760 return false;
19761 }
19762 #[cfg(feature = "wml-settings")]
19763 if self.div_id.is_some() {
19764 return false;
19765 }
19766 #[cfg(feature = "wml-tables")]
19767 if self.grid_before.is_some() {
19768 return false;
19769 }
19770 #[cfg(feature = "wml-tables")]
19771 if self.grid_after.is_some() {
19772 return false;
19773 }
19774 #[cfg(feature = "wml-tables")]
19775 if self.w_before.is_some() {
19776 return false;
19777 }
19778 #[cfg(feature = "wml-tables")]
19779 if self.w_after.is_some() {
19780 return false;
19781 }
19782 #[cfg(feature = "wml-tables")]
19783 if self.cant_split.is_some() {
19784 return false;
19785 }
19786 #[cfg(feature = "wml-tables")]
19787 if self.tr_height.is_some() {
19788 return false;
19789 }
19790 #[cfg(feature = "wml-tables")]
19791 if self.tbl_header.is_some() {
19792 return false;
19793 }
19794 #[cfg(feature = "wml-tables")]
19795 if self.tbl_cell_spacing.is_some() {
19796 return false;
19797 }
19798 #[cfg(feature = "wml-tables")]
19799 if self.justification.is_some() {
19800 return false;
19801 }
19802 #[cfg(feature = "wml-tables")]
19803 if self.hidden.is_some() {
19804 return false;
19805 }
19806 #[cfg(feature = "extra-children")]
19807 if !self.extra_children.is_empty() {
19808 return false;
19809 }
19810 true
19811 }
19812}
19813
19814impl ToXml for TableRowProperties {
19815 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19816 #[cfg(feature = "extra-children")]
19817 let mut extra_iter = self.extra_children.iter().peekable();
19818 #[cfg(feature = "extra-children")]
19819 let mut emit_idx: usize = 0;
19820 #[cfg(feature = "extra-children")]
19821 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19822 extra_iter
19823 .next()
19824 .unwrap()
19825 .node
19826 .write_to(writer)
19827 .map_err(SerializeError::from)?;
19828 }
19829 #[cfg(feature = "wml-styling")]
19830 if let Some(ref val) = self.cnf_style {
19831 val.write_element("w:cnfStyle", writer)?;
19832 }
19833 #[cfg(feature = "extra-children")]
19834 {
19835 emit_idx += 1;
19836 }
19837 #[cfg(feature = "extra-children")]
19838 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19839 extra_iter
19840 .next()
19841 .unwrap()
19842 .node
19843 .write_to(writer)
19844 .map_err(SerializeError::from)?;
19845 }
19846 #[cfg(feature = "wml-settings")]
19847 if let Some(ref val) = self.div_id {
19848 val.write_element("w:divId", writer)?;
19849 }
19850 #[cfg(feature = "extra-children")]
19851 {
19852 emit_idx += 1;
19853 }
19854 #[cfg(feature = "extra-children")]
19855 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19856 extra_iter
19857 .next()
19858 .unwrap()
19859 .node
19860 .write_to(writer)
19861 .map_err(SerializeError::from)?;
19862 }
19863 #[cfg(feature = "wml-tables")]
19864 if let Some(ref val) = self.grid_before {
19865 val.write_element("w:gridBefore", writer)?;
19866 }
19867 #[cfg(feature = "extra-children")]
19868 {
19869 emit_idx += 1;
19870 }
19871 #[cfg(feature = "extra-children")]
19872 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19873 extra_iter
19874 .next()
19875 .unwrap()
19876 .node
19877 .write_to(writer)
19878 .map_err(SerializeError::from)?;
19879 }
19880 #[cfg(feature = "wml-tables")]
19881 if let Some(ref val) = self.grid_after {
19882 val.write_element("w:gridAfter", writer)?;
19883 }
19884 #[cfg(feature = "extra-children")]
19885 {
19886 emit_idx += 1;
19887 }
19888 #[cfg(feature = "extra-children")]
19889 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19890 extra_iter
19891 .next()
19892 .unwrap()
19893 .node
19894 .write_to(writer)
19895 .map_err(SerializeError::from)?;
19896 }
19897 #[cfg(feature = "wml-tables")]
19898 if let Some(ref val) = self.w_before {
19899 val.write_element("w:wBefore", writer)?;
19900 }
19901 #[cfg(feature = "extra-children")]
19902 {
19903 emit_idx += 1;
19904 }
19905 #[cfg(feature = "extra-children")]
19906 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19907 extra_iter
19908 .next()
19909 .unwrap()
19910 .node
19911 .write_to(writer)
19912 .map_err(SerializeError::from)?;
19913 }
19914 #[cfg(feature = "wml-tables")]
19915 if let Some(ref val) = self.w_after {
19916 val.write_element("w:wAfter", writer)?;
19917 }
19918 #[cfg(feature = "extra-children")]
19919 {
19920 emit_idx += 1;
19921 }
19922 #[cfg(feature = "extra-children")]
19923 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19924 extra_iter
19925 .next()
19926 .unwrap()
19927 .node
19928 .write_to(writer)
19929 .map_err(SerializeError::from)?;
19930 }
19931 #[cfg(feature = "wml-tables")]
19932 if let Some(ref val) = self.cant_split {
19933 val.write_element("w:cantSplit", writer)?;
19934 }
19935 #[cfg(feature = "extra-children")]
19936 {
19937 emit_idx += 1;
19938 }
19939 #[cfg(feature = "extra-children")]
19940 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19941 extra_iter
19942 .next()
19943 .unwrap()
19944 .node
19945 .write_to(writer)
19946 .map_err(SerializeError::from)?;
19947 }
19948 #[cfg(feature = "wml-tables")]
19949 if let Some(ref val) = self.tr_height {
19950 val.write_element("w:trHeight", writer)?;
19951 }
19952 #[cfg(feature = "extra-children")]
19953 {
19954 emit_idx += 1;
19955 }
19956 #[cfg(feature = "extra-children")]
19957 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19958 extra_iter
19959 .next()
19960 .unwrap()
19961 .node
19962 .write_to(writer)
19963 .map_err(SerializeError::from)?;
19964 }
19965 #[cfg(feature = "wml-tables")]
19966 if let Some(ref val) = self.tbl_header {
19967 val.write_element("w:tblHeader", writer)?;
19968 }
19969 #[cfg(feature = "extra-children")]
19970 {
19971 emit_idx += 1;
19972 }
19973 #[cfg(feature = "extra-children")]
19974 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19975 extra_iter
19976 .next()
19977 .unwrap()
19978 .node
19979 .write_to(writer)
19980 .map_err(SerializeError::from)?;
19981 }
19982 #[cfg(feature = "wml-tables")]
19983 if let Some(ref val) = self.tbl_cell_spacing {
19984 val.write_element("w:tblCellSpacing", writer)?;
19985 }
19986 #[cfg(feature = "extra-children")]
19987 {
19988 emit_idx += 1;
19989 }
19990 #[cfg(feature = "extra-children")]
19991 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19992 extra_iter
19993 .next()
19994 .unwrap()
19995 .node
19996 .write_to(writer)
19997 .map_err(SerializeError::from)?;
19998 }
19999 #[cfg(feature = "wml-tables")]
20000 if let Some(ref val) = self.justification {
20001 val.write_element("w:jc", writer)?;
20002 }
20003 #[cfg(feature = "extra-children")]
20004 {
20005 emit_idx += 1;
20006 }
20007 #[cfg(feature = "extra-children")]
20008 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20009 extra_iter
20010 .next()
20011 .unwrap()
20012 .node
20013 .write_to(writer)
20014 .map_err(SerializeError::from)?;
20015 }
20016 #[cfg(feature = "wml-tables")]
20017 if let Some(ref val) = self.hidden {
20018 val.write_element("w:hidden", writer)?;
20019 }
20020 #[cfg(feature = "extra-children")]
20021 {
20022 emit_idx += 1;
20023 }
20024 #[cfg(feature = "extra-children")]
20025 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20026 extra_iter
20027 .next()
20028 .unwrap()
20029 .node
20030 .write_to(writer)
20031 .map_err(SerializeError::from)?;
20032 }
20033 #[cfg(feature = "wml-track-changes")]
20034 if let Some(ref val) = self.ins {
20035 val.write_element("w:ins", writer)?;
20036 }
20037 #[cfg(feature = "extra-children")]
20038 {
20039 emit_idx += 1;
20040 }
20041 #[cfg(feature = "extra-children")]
20042 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20043 extra_iter
20044 .next()
20045 .unwrap()
20046 .node
20047 .write_to(writer)
20048 .map_err(SerializeError::from)?;
20049 }
20050 #[cfg(feature = "wml-track-changes")]
20051 if let Some(ref val) = self.del {
20052 val.write_element("w:del", writer)?;
20053 }
20054 #[cfg(feature = "extra-children")]
20055 {
20056 emit_idx += 1;
20057 }
20058 #[cfg(feature = "extra-children")]
20059 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20060 extra_iter
20061 .next()
20062 .unwrap()
20063 .node
20064 .write_to(writer)
20065 .map_err(SerializeError::from)?;
20066 }
20067 #[cfg(feature = "wml-track-changes")]
20068 if let Some(ref val) = self.tr_pr_change {
20069 val.write_element("w:trPrChange", writer)?;
20070 }
20071 #[cfg(feature = "extra-children")]
20072 {
20073 emit_idx += 1;
20074 }
20075 #[cfg(feature = "extra-children")]
20076 for extra in extra_iter {
20077 extra.node.write_to(writer).map_err(SerializeError::from)?;
20078 }
20079 Ok(())
20080 }
20081
20082 fn is_empty_element(&self) -> bool {
20083 #[cfg(feature = "wml-styling")]
20084 if self.cnf_style.is_some() {
20085 return false;
20086 }
20087 #[cfg(feature = "wml-settings")]
20088 if self.div_id.is_some() {
20089 return false;
20090 }
20091 #[cfg(feature = "wml-tables")]
20092 if self.grid_before.is_some() {
20093 return false;
20094 }
20095 #[cfg(feature = "wml-tables")]
20096 if self.grid_after.is_some() {
20097 return false;
20098 }
20099 #[cfg(feature = "wml-tables")]
20100 if self.w_before.is_some() {
20101 return false;
20102 }
20103 #[cfg(feature = "wml-tables")]
20104 if self.w_after.is_some() {
20105 return false;
20106 }
20107 #[cfg(feature = "wml-tables")]
20108 if self.cant_split.is_some() {
20109 return false;
20110 }
20111 #[cfg(feature = "wml-tables")]
20112 if self.tr_height.is_some() {
20113 return false;
20114 }
20115 #[cfg(feature = "wml-tables")]
20116 if self.tbl_header.is_some() {
20117 return false;
20118 }
20119 #[cfg(feature = "wml-tables")]
20120 if self.tbl_cell_spacing.is_some() {
20121 return false;
20122 }
20123 #[cfg(feature = "wml-tables")]
20124 if self.justification.is_some() {
20125 return false;
20126 }
20127 #[cfg(feature = "wml-tables")]
20128 if self.hidden.is_some() {
20129 return false;
20130 }
20131 #[cfg(feature = "wml-track-changes")]
20132 if self.ins.is_some() {
20133 return false;
20134 }
20135 #[cfg(feature = "wml-track-changes")]
20136 if self.del.is_some() {
20137 return false;
20138 }
20139 #[cfg(feature = "wml-track-changes")]
20140 if self.tr_pr_change.is_some() {
20141 return false;
20142 }
20143 #[cfg(feature = "extra-children")]
20144 if !self.extra_children.is_empty() {
20145 return false;
20146 }
20147 true
20148 }
20149}
20150
20151impl ToXml for CTRow {
20152 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
20153 #[allow(unused_mut)]
20154 let mut start = start;
20155 #[cfg(feature = "wml-track-changes")]
20156 if let Some(ref val) = self.rsid_r_pr {
20157 {
20158 let hex = encode_hex(val);
20159 start.push_attribute(("w:rsidRPr", hex.as_str()));
20160 }
20161 }
20162 #[cfg(feature = "wml-track-changes")]
20163 if let Some(ref val) = self.rsid_r {
20164 {
20165 let hex = encode_hex(val);
20166 start.push_attribute(("w:rsidR", hex.as_str()));
20167 }
20168 }
20169 #[cfg(feature = "wml-track-changes")]
20170 if let Some(ref val) = self.rsid_del {
20171 {
20172 let hex = encode_hex(val);
20173 start.push_attribute(("w:rsidDel", hex.as_str()));
20174 }
20175 }
20176 #[cfg(feature = "wml-track-changes")]
20177 if let Some(ref val) = self.rsid_tr {
20178 {
20179 let hex = encode_hex(val);
20180 start.push_attribute(("w:rsidTr", hex.as_str()));
20181 }
20182 }
20183 #[cfg(feature = "extra-attrs")]
20184 for (key, value) in &self.extra_attrs {
20185 start.push_attribute((key.as_str(), value.as_str()));
20186 }
20187 start
20188 }
20189
20190 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
20191 #[cfg(feature = "extra-children")]
20192 let mut extra_iter = self.extra_children.iter().peekable();
20193 #[cfg(feature = "extra-children")]
20194 let mut emit_idx: usize = 0;
20195 #[cfg(feature = "extra-children")]
20196 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20197 extra_iter
20198 .next()
20199 .unwrap()
20200 .node
20201 .write_to(writer)
20202 .map_err(SerializeError::from)?;
20203 }
20204 #[cfg(feature = "wml-tables")]
20205 if let Some(ref val) = self.tbl_pr_ex {
20206 val.write_element("w:tblPrEx", writer)?;
20207 }
20208 #[cfg(feature = "extra-children")]
20209 {
20210 emit_idx += 1;
20211 }
20212 #[cfg(feature = "extra-children")]
20213 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20214 extra_iter
20215 .next()
20216 .unwrap()
20217 .node
20218 .write_to(writer)
20219 .map_err(SerializeError::from)?;
20220 }
20221 #[cfg(feature = "wml-tables")]
20222 if let Some(ref val) = self.row_properties {
20223 val.write_element("w:trPr", writer)?;
20224 }
20225 #[cfg(feature = "extra-children")]
20226 {
20227 emit_idx += 1;
20228 }
20229 for item in &self.cells {
20230 #[cfg(feature = "extra-children")]
20231 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20232 extra_iter
20233 .next()
20234 .unwrap()
20235 .node
20236 .write_to(writer)
20237 .map_err(SerializeError::from)?;
20238 }
20239 item.write_element("", writer)?;
20240 #[cfg(feature = "extra-children")]
20241 {
20242 emit_idx += 1;
20243 }
20244 }
20245 #[cfg(feature = "extra-children")]
20246 for extra in extra_iter {
20247 extra.node.write_to(writer).map_err(SerializeError::from)?;
20248 }
20249 Ok(())
20250 }
20251
20252 fn is_empty_element(&self) -> bool {
20253 #[cfg(feature = "wml-tables")]
20254 if self.tbl_pr_ex.is_some() {
20255 return false;
20256 }
20257 #[cfg(feature = "wml-tables")]
20258 if self.row_properties.is_some() {
20259 return false;
20260 }
20261 if !self.cells.is_empty() {
20262 return false;
20263 }
20264 #[cfg(feature = "extra-children")]
20265 if !self.extra_children.is_empty() {
20266 return false;
20267 }
20268 true
20269 }
20270}
20271
20272impl ToXml for CTTblLayoutType {
20273 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
20274 #[allow(unused_mut)]
20275 let mut start = start;
20276 if let Some(ref val) = self.r#type {
20277 {
20278 let s = val.to_string();
20279 start.push_attribute(("w:type", s.as_str()));
20280 }
20281 }
20282 #[cfg(feature = "extra-attrs")]
20283 for (key, value) in &self.extra_attrs {
20284 start.push_attribute((key.as_str(), value.as_str()));
20285 }
20286 start
20287 }
20288
20289 fn is_empty_element(&self) -> bool {
20290 true
20291 }
20292}
20293
20294impl ToXml for CTTblOverlap {
20295 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
20296 #[allow(unused_mut)]
20297 let mut start = start;
20298 {
20299 let val = &self.value;
20300 {
20301 let s = val.to_string();
20302 start.push_attribute(("w:val", s.as_str()));
20303 }
20304 }
20305 #[cfg(feature = "extra-attrs")]
20306 for (key, value) in &self.extra_attrs {
20307 start.push_attribute((key.as_str(), value.as_str()));
20308 }
20309 start
20310 }
20311
20312 fn is_empty_element(&self) -> bool {
20313 true
20314 }
20315}
20316
20317impl ToXml for CTTblPPr {
20318 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
20319 #[allow(unused_mut)]
20320 let mut start = start;
20321 #[cfg(feature = "wml-tables")]
20322 if let Some(ref val) = self.left_from_text {
20323 {
20324 let s = val.to_string();
20325 start.push_attribute(("w:leftFromText", s.as_str()));
20326 }
20327 }
20328 #[cfg(feature = "wml-tables")]
20329 if let Some(ref val) = self.right_from_text {
20330 {
20331 let s = val.to_string();
20332 start.push_attribute(("w:rightFromText", s.as_str()));
20333 }
20334 }
20335 #[cfg(feature = "wml-tables")]
20336 if let Some(ref val) = self.top_from_text {
20337 {
20338 let s = val.to_string();
20339 start.push_attribute(("w:topFromText", s.as_str()));
20340 }
20341 }
20342 #[cfg(feature = "wml-tables")]
20343 if let Some(ref val) = self.bottom_from_text {
20344 {
20345 let s = val.to_string();
20346 start.push_attribute(("w:bottomFromText", s.as_str()));
20347 }
20348 }
20349 #[cfg(feature = "wml-tables")]
20350 if let Some(ref val) = self.vert_anchor {
20351 {
20352 let s = val.to_string();
20353 start.push_attribute(("w:vertAnchor", s.as_str()));
20354 }
20355 }
20356 #[cfg(feature = "wml-tables")]
20357 if let Some(ref val) = self.horz_anchor {
20358 {
20359 let s = val.to_string();
20360 start.push_attribute(("w:horzAnchor", s.as_str()));
20361 }
20362 }
20363 #[cfg(feature = "wml-tables")]
20364 if let Some(ref val) = self.tblp_x_spec {
20365 {
20366 let s = val.to_string();
20367 start.push_attribute(("w:tblpXSpec", s.as_str()));
20368 }
20369 }
20370 #[cfg(feature = "wml-tables")]
20371 if let Some(ref val) = self.tblp_x {
20372 {
20373 let s = val.to_string();
20374 start.push_attribute(("w:tblpX", s.as_str()));
20375 }
20376 }
20377 #[cfg(feature = "wml-tables")]
20378 if let Some(ref val) = self.tblp_y_spec {
20379 {
20380 let s = val.to_string();
20381 start.push_attribute(("w:tblpYSpec", s.as_str()));
20382 }
20383 }
20384 #[cfg(feature = "wml-tables")]
20385 if let Some(ref val) = self.tblp_y {
20386 {
20387 let s = val.to_string();
20388 start.push_attribute(("w:tblpY", s.as_str()));
20389 }
20390 }
20391 #[cfg(feature = "extra-attrs")]
20392 for (key, value) in &self.extra_attrs {
20393 start.push_attribute((key.as_str(), value.as_str()));
20394 }
20395 start
20396 }
20397
20398 fn is_empty_element(&self) -> bool {
20399 true
20400 }
20401}
20402
20403impl ToXml for CTTblCellMar {
20404 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
20405 #[cfg(feature = "extra-children")]
20406 let mut extra_iter = self.extra_children.iter().peekable();
20407 #[cfg(feature = "extra-children")]
20408 let mut emit_idx: usize = 0;
20409 #[cfg(feature = "extra-children")]
20410 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20411 extra_iter
20412 .next()
20413 .unwrap()
20414 .node
20415 .write_to(writer)
20416 .map_err(SerializeError::from)?;
20417 }
20418 #[cfg(feature = "wml-tables")]
20419 if let Some(ref val) = self.top {
20420 val.write_element("w:top", writer)?;
20421 }
20422 #[cfg(feature = "extra-children")]
20423 {
20424 emit_idx += 1;
20425 }
20426 #[cfg(feature = "extra-children")]
20427 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20428 extra_iter
20429 .next()
20430 .unwrap()
20431 .node
20432 .write_to(writer)
20433 .map_err(SerializeError::from)?;
20434 }
20435 #[cfg(feature = "wml-tables")]
20436 if let Some(ref val) = self.start {
20437 val.write_element("w:start", writer)?;
20438 }
20439 #[cfg(feature = "extra-children")]
20440 {
20441 emit_idx += 1;
20442 }
20443 #[cfg(feature = "extra-children")]
20444 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20445 extra_iter
20446 .next()
20447 .unwrap()
20448 .node
20449 .write_to(writer)
20450 .map_err(SerializeError::from)?;
20451 }
20452 #[cfg(feature = "wml-tables")]
20453 if let Some(ref val) = self.left {
20454 val.write_element("w:left", writer)?;
20455 }
20456 #[cfg(feature = "extra-children")]
20457 {
20458 emit_idx += 1;
20459 }
20460 #[cfg(feature = "extra-children")]
20461 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20462 extra_iter
20463 .next()
20464 .unwrap()
20465 .node
20466 .write_to(writer)
20467 .map_err(SerializeError::from)?;
20468 }
20469 #[cfg(feature = "wml-tables")]
20470 if let Some(ref val) = self.bottom {
20471 val.write_element("w:bottom", writer)?;
20472 }
20473 #[cfg(feature = "extra-children")]
20474 {
20475 emit_idx += 1;
20476 }
20477 #[cfg(feature = "extra-children")]
20478 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20479 extra_iter
20480 .next()
20481 .unwrap()
20482 .node
20483 .write_to(writer)
20484 .map_err(SerializeError::from)?;
20485 }
20486 #[cfg(feature = "wml-tables")]
20487 if let Some(ref val) = self.end {
20488 val.write_element("w:end", writer)?;
20489 }
20490 #[cfg(feature = "extra-children")]
20491 {
20492 emit_idx += 1;
20493 }
20494 #[cfg(feature = "extra-children")]
20495 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20496 extra_iter
20497 .next()
20498 .unwrap()
20499 .node
20500 .write_to(writer)
20501 .map_err(SerializeError::from)?;
20502 }
20503 #[cfg(feature = "wml-tables")]
20504 if let Some(ref val) = self.right {
20505 val.write_element("w:right", writer)?;
20506 }
20507 #[cfg(feature = "extra-children")]
20508 {
20509 emit_idx += 1;
20510 }
20511 #[cfg(feature = "extra-children")]
20512 for extra in extra_iter {
20513 extra.node.write_to(writer).map_err(SerializeError::from)?;
20514 }
20515 Ok(())
20516 }
20517
20518 fn is_empty_element(&self) -> bool {
20519 #[cfg(feature = "wml-tables")]
20520 if self.top.is_some() {
20521 return false;
20522 }
20523 #[cfg(feature = "wml-tables")]
20524 if self.start.is_some() {
20525 return false;
20526 }
20527 #[cfg(feature = "wml-tables")]
20528 if self.left.is_some() {
20529 return false;
20530 }
20531 #[cfg(feature = "wml-tables")]
20532 if self.bottom.is_some() {
20533 return false;
20534 }
20535 #[cfg(feature = "wml-tables")]
20536 if self.end.is_some() {
20537 return false;
20538 }
20539 #[cfg(feature = "wml-tables")]
20540 if self.right.is_some() {
20541 return false;
20542 }
20543 #[cfg(feature = "extra-children")]
20544 if !self.extra_children.is_empty() {
20545 return false;
20546 }
20547 true
20548 }
20549}
20550
20551impl ToXml for CTTblBorders {
20552 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
20553 #[cfg(feature = "extra-children")]
20554 let mut extra_iter = self.extra_children.iter().peekable();
20555 #[cfg(feature = "extra-children")]
20556 let mut emit_idx: usize = 0;
20557 #[cfg(feature = "extra-children")]
20558 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20559 extra_iter
20560 .next()
20561 .unwrap()
20562 .node
20563 .write_to(writer)
20564 .map_err(SerializeError::from)?;
20565 }
20566 #[cfg(feature = "wml-tables")]
20567 if let Some(ref val) = self.top {
20568 val.write_element("w:top", writer)?;
20569 }
20570 #[cfg(feature = "extra-children")]
20571 {
20572 emit_idx += 1;
20573 }
20574 #[cfg(feature = "extra-children")]
20575 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20576 extra_iter
20577 .next()
20578 .unwrap()
20579 .node
20580 .write_to(writer)
20581 .map_err(SerializeError::from)?;
20582 }
20583 #[cfg(feature = "wml-tables")]
20584 if let Some(ref val) = self.start {
20585 val.write_element("w:start", writer)?;
20586 }
20587 #[cfg(feature = "extra-children")]
20588 {
20589 emit_idx += 1;
20590 }
20591 #[cfg(feature = "extra-children")]
20592 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20593 extra_iter
20594 .next()
20595 .unwrap()
20596 .node
20597 .write_to(writer)
20598 .map_err(SerializeError::from)?;
20599 }
20600 #[cfg(feature = "wml-tables")]
20601 if let Some(ref val) = self.left {
20602 val.write_element("w:left", writer)?;
20603 }
20604 #[cfg(feature = "extra-children")]
20605 {
20606 emit_idx += 1;
20607 }
20608 #[cfg(feature = "extra-children")]
20609 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20610 extra_iter
20611 .next()
20612 .unwrap()
20613 .node
20614 .write_to(writer)
20615 .map_err(SerializeError::from)?;
20616 }
20617 #[cfg(feature = "wml-tables")]
20618 if let Some(ref val) = self.bottom {
20619 val.write_element("w:bottom", writer)?;
20620 }
20621 #[cfg(feature = "extra-children")]
20622 {
20623 emit_idx += 1;
20624 }
20625 #[cfg(feature = "extra-children")]
20626 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20627 extra_iter
20628 .next()
20629 .unwrap()
20630 .node
20631 .write_to(writer)
20632 .map_err(SerializeError::from)?;
20633 }
20634 #[cfg(feature = "wml-tables")]
20635 if let Some(ref val) = self.end {
20636 val.write_element("w:end", writer)?;
20637 }
20638 #[cfg(feature = "extra-children")]
20639 {
20640 emit_idx += 1;
20641 }
20642 #[cfg(feature = "extra-children")]
20643 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20644 extra_iter
20645 .next()
20646 .unwrap()
20647 .node
20648 .write_to(writer)
20649 .map_err(SerializeError::from)?;
20650 }
20651 #[cfg(feature = "wml-tables")]
20652 if let Some(ref val) = self.right {
20653 val.write_element("w:right", writer)?;
20654 }
20655 #[cfg(feature = "extra-children")]
20656 {
20657 emit_idx += 1;
20658 }
20659 #[cfg(feature = "extra-children")]
20660 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20661 extra_iter
20662 .next()
20663 .unwrap()
20664 .node
20665 .write_to(writer)
20666 .map_err(SerializeError::from)?;
20667 }
20668 #[cfg(feature = "wml-tables")]
20669 if let Some(ref val) = self.inside_h {
20670 val.write_element("w:insideH", writer)?;
20671 }
20672 #[cfg(feature = "extra-children")]
20673 {
20674 emit_idx += 1;
20675 }
20676 #[cfg(feature = "extra-children")]
20677 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20678 extra_iter
20679 .next()
20680 .unwrap()
20681 .node
20682 .write_to(writer)
20683 .map_err(SerializeError::from)?;
20684 }
20685 #[cfg(feature = "wml-tables")]
20686 if let Some(ref val) = self.inside_v {
20687 val.write_element("w:insideV", writer)?;
20688 }
20689 #[cfg(feature = "extra-children")]
20690 {
20691 emit_idx += 1;
20692 }
20693 #[cfg(feature = "extra-children")]
20694 for extra in extra_iter {
20695 extra.node.write_to(writer).map_err(SerializeError::from)?;
20696 }
20697 Ok(())
20698 }
20699
20700 fn is_empty_element(&self) -> bool {
20701 #[cfg(feature = "wml-tables")]
20702 if self.top.is_some() {
20703 return false;
20704 }
20705 #[cfg(feature = "wml-tables")]
20706 if self.start.is_some() {
20707 return false;
20708 }
20709 #[cfg(feature = "wml-tables")]
20710 if self.left.is_some() {
20711 return false;
20712 }
20713 #[cfg(feature = "wml-tables")]
20714 if self.bottom.is_some() {
20715 return false;
20716 }
20717 #[cfg(feature = "wml-tables")]
20718 if self.end.is_some() {
20719 return false;
20720 }
20721 #[cfg(feature = "wml-tables")]
20722 if self.right.is_some() {
20723 return false;
20724 }
20725 #[cfg(feature = "wml-tables")]
20726 if self.inside_h.is_some() {
20727 return false;
20728 }
20729 #[cfg(feature = "wml-tables")]
20730 if self.inside_v.is_some() {
20731 return false;
20732 }
20733 #[cfg(feature = "extra-children")]
20734 if !self.extra_children.is_empty() {
20735 return false;
20736 }
20737 true
20738 }
20739}
20740
20741impl ToXml for CTTblPrBase {
20742 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
20743 #[cfg(feature = "extra-children")]
20744 let mut extra_iter = self.extra_children.iter().peekable();
20745 #[cfg(feature = "extra-children")]
20746 let mut emit_idx: usize = 0;
20747 #[cfg(feature = "extra-children")]
20748 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20749 extra_iter
20750 .next()
20751 .unwrap()
20752 .node
20753 .write_to(writer)
20754 .map_err(SerializeError::from)?;
20755 }
20756 #[cfg(feature = "wml-styling")]
20757 if let Some(ref val) = self.tbl_style {
20758 val.write_element("w:tblStyle", writer)?;
20759 }
20760 #[cfg(feature = "extra-children")]
20761 {
20762 emit_idx += 1;
20763 }
20764 #[cfg(feature = "extra-children")]
20765 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20766 extra_iter
20767 .next()
20768 .unwrap()
20769 .node
20770 .write_to(writer)
20771 .map_err(SerializeError::from)?;
20772 }
20773 #[cfg(feature = "wml-tables")]
20774 if let Some(ref val) = self.tblp_pr {
20775 val.write_element("w:tblpPr", writer)?;
20776 }
20777 #[cfg(feature = "extra-children")]
20778 {
20779 emit_idx += 1;
20780 }
20781 #[cfg(feature = "extra-children")]
20782 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20783 extra_iter
20784 .next()
20785 .unwrap()
20786 .node
20787 .write_to(writer)
20788 .map_err(SerializeError::from)?;
20789 }
20790 #[cfg(feature = "wml-tables")]
20791 if let Some(ref val) = self.tbl_overlap {
20792 val.write_element("w:tblOverlap", writer)?;
20793 }
20794 #[cfg(feature = "extra-children")]
20795 {
20796 emit_idx += 1;
20797 }
20798 #[cfg(feature = "extra-children")]
20799 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20800 extra_iter
20801 .next()
20802 .unwrap()
20803 .node
20804 .write_to(writer)
20805 .map_err(SerializeError::from)?;
20806 }
20807 #[cfg(feature = "wml-tables")]
20808 if let Some(ref val) = self.bidi_visual {
20809 val.write_element("w:bidiVisual", writer)?;
20810 }
20811 #[cfg(feature = "extra-children")]
20812 {
20813 emit_idx += 1;
20814 }
20815 #[cfg(feature = "extra-children")]
20816 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20817 extra_iter
20818 .next()
20819 .unwrap()
20820 .node
20821 .write_to(writer)
20822 .map_err(SerializeError::from)?;
20823 }
20824 #[cfg(feature = "wml-styling")]
20825 if let Some(ref val) = self.tbl_style_row_band_size {
20826 val.write_element("w:tblStyleRowBandSize", writer)?;
20827 }
20828 #[cfg(feature = "extra-children")]
20829 {
20830 emit_idx += 1;
20831 }
20832 #[cfg(feature = "extra-children")]
20833 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20834 extra_iter
20835 .next()
20836 .unwrap()
20837 .node
20838 .write_to(writer)
20839 .map_err(SerializeError::from)?;
20840 }
20841 #[cfg(feature = "wml-styling")]
20842 if let Some(ref val) = self.tbl_style_col_band_size {
20843 val.write_element("w:tblStyleColBandSize", writer)?;
20844 }
20845 #[cfg(feature = "extra-children")]
20846 {
20847 emit_idx += 1;
20848 }
20849 #[cfg(feature = "extra-children")]
20850 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20851 extra_iter
20852 .next()
20853 .unwrap()
20854 .node
20855 .write_to(writer)
20856 .map_err(SerializeError::from)?;
20857 }
20858 #[cfg(feature = "wml-tables")]
20859 if let Some(ref val) = self.tbl_w {
20860 val.write_element("w:tblW", writer)?;
20861 }
20862 #[cfg(feature = "extra-children")]
20863 {
20864 emit_idx += 1;
20865 }
20866 #[cfg(feature = "extra-children")]
20867 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20868 extra_iter
20869 .next()
20870 .unwrap()
20871 .node
20872 .write_to(writer)
20873 .map_err(SerializeError::from)?;
20874 }
20875 #[cfg(feature = "wml-tables")]
20876 if let Some(ref val) = self.justification {
20877 val.write_element("w:jc", writer)?;
20878 }
20879 #[cfg(feature = "extra-children")]
20880 {
20881 emit_idx += 1;
20882 }
20883 #[cfg(feature = "extra-children")]
20884 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20885 extra_iter
20886 .next()
20887 .unwrap()
20888 .node
20889 .write_to(writer)
20890 .map_err(SerializeError::from)?;
20891 }
20892 #[cfg(feature = "wml-tables")]
20893 if let Some(ref val) = self.tbl_cell_spacing {
20894 val.write_element("w:tblCellSpacing", writer)?;
20895 }
20896 #[cfg(feature = "extra-children")]
20897 {
20898 emit_idx += 1;
20899 }
20900 #[cfg(feature = "extra-children")]
20901 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20902 extra_iter
20903 .next()
20904 .unwrap()
20905 .node
20906 .write_to(writer)
20907 .map_err(SerializeError::from)?;
20908 }
20909 #[cfg(feature = "wml-tables")]
20910 if let Some(ref val) = self.tbl_ind {
20911 val.write_element("w:tblInd", writer)?;
20912 }
20913 #[cfg(feature = "extra-children")]
20914 {
20915 emit_idx += 1;
20916 }
20917 #[cfg(feature = "extra-children")]
20918 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20919 extra_iter
20920 .next()
20921 .unwrap()
20922 .node
20923 .write_to(writer)
20924 .map_err(SerializeError::from)?;
20925 }
20926 #[cfg(feature = "wml-tables")]
20927 if let Some(ref val) = self.tbl_borders {
20928 val.write_element("w:tblBorders", writer)?;
20929 }
20930 #[cfg(feature = "extra-children")]
20931 {
20932 emit_idx += 1;
20933 }
20934 #[cfg(feature = "extra-children")]
20935 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20936 extra_iter
20937 .next()
20938 .unwrap()
20939 .node
20940 .write_to(writer)
20941 .map_err(SerializeError::from)?;
20942 }
20943 #[cfg(feature = "wml-tables")]
20944 if let Some(ref val) = self.shading {
20945 val.write_element("w:shd", writer)?;
20946 }
20947 #[cfg(feature = "extra-children")]
20948 {
20949 emit_idx += 1;
20950 }
20951 #[cfg(feature = "extra-children")]
20952 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20953 extra_iter
20954 .next()
20955 .unwrap()
20956 .node
20957 .write_to(writer)
20958 .map_err(SerializeError::from)?;
20959 }
20960 #[cfg(feature = "wml-tables")]
20961 if let Some(ref val) = self.tbl_layout {
20962 val.write_element("w:tblLayout", writer)?;
20963 }
20964 #[cfg(feature = "extra-children")]
20965 {
20966 emit_idx += 1;
20967 }
20968 #[cfg(feature = "extra-children")]
20969 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20970 extra_iter
20971 .next()
20972 .unwrap()
20973 .node
20974 .write_to(writer)
20975 .map_err(SerializeError::from)?;
20976 }
20977 #[cfg(feature = "wml-tables")]
20978 if let Some(ref val) = self.tbl_cell_mar {
20979 val.write_element("w:tblCellMar", writer)?;
20980 }
20981 #[cfg(feature = "extra-children")]
20982 {
20983 emit_idx += 1;
20984 }
20985 #[cfg(feature = "extra-children")]
20986 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20987 extra_iter
20988 .next()
20989 .unwrap()
20990 .node
20991 .write_to(writer)
20992 .map_err(SerializeError::from)?;
20993 }
20994 #[cfg(feature = "wml-tables")]
20995 if let Some(ref val) = self.tbl_look {
20996 val.write_element("w:tblLook", writer)?;
20997 }
20998 #[cfg(feature = "extra-children")]
20999 {
21000 emit_idx += 1;
21001 }
21002 #[cfg(feature = "extra-children")]
21003 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21004 extra_iter
21005 .next()
21006 .unwrap()
21007 .node
21008 .write_to(writer)
21009 .map_err(SerializeError::from)?;
21010 }
21011 #[cfg(feature = "wml-tables")]
21012 if let Some(ref val) = self.tbl_caption {
21013 val.write_element("w:tblCaption", writer)?;
21014 }
21015 #[cfg(feature = "extra-children")]
21016 {
21017 emit_idx += 1;
21018 }
21019 #[cfg(feature = "extra-children")]
21020 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21021 extra_iter
21022 .next()
21023 .unwrap()
21024 .node
21025 .write_to(writer)
21026 .map_err(SerializeError::from)?;
21027 }
21028 #[cfg(feature = "wml-tables")]
21029 if let Some(ref val) = self.tbl_description {
21030 val.write_element("w:tblDescription", writer)?;
21031 }
21032 #[cfg(feature = "extra-children")]
21033 {
21034 emit_idx += 1;
21035 }
21036 #[cfg(feature = "extra-children")]
21037 for extra in extra_iter {
21038 extra.node.write_to(writer).map_err(SerializeError::from)?;
21039 }
21040 Ok(())
21041 }
21042
21043 fn is_empty_element(&self) -> bool {
21044 #[cfg(feature = "wml-styling")]
21045 if self.tbl_style.is_some() {
21046 return false;
21047 }
21048 #[cfg(feature = "wml-tables")]
21049 if self.tblp_pr.is_some() {
21050 return false;
21051 }
21052 #[cfg(feature = "wml-tables")]
21053 if self.tbl_overlap.is_some() {
21054 return false;
21055 }
21056 #[cfg(feature = "wml-tables")]
21057 if self.bidi_visual.is_some() {
21058 return false;
21059 }
21060 #[cfg(feature = "wml-styling")]
21061 if self.tbl_style_row_band_size.is_some() {
21062 return false;
21063 }
21064 #[cfg(feature = "wml-styling")]
21065 if self.tbl_style_col_band_size.is_some() {
21066 return false;
21067 }
21068 #[cfg(feature = "wml-tables")]
21069 if self.tbl_w.is_some() {
21070 return false;
21071 }
21072 #[cfg(feature = "wml-tables")]
21073 if self.justification.is_some() {
21074 return false;
21075 }
21076 #[cfg(feature = "wml-tables")]
21077 if self.tbl_cell_spacing.is_some() {
21078 return false;
21079 }
21080 #[cfg(feature = "wml-tables")]
21081 if self.tbl_ind.is_some() {
21082 return false;
21083 }
21084 #[cfg(feature = "wml-tables")]
21085 if self.tbl_borders.is_some() {
21086 return false;
21087 }
21088 #[cfg(feature = "wml-tables")]
21089 if self.shading.is_some() {
21090 return false;
21091 }
21092 #[cfg(feature = "wml-tables")]
21093 if self.tbl_layout.is_some() {
21094 return false;
21095 }
21096 #[cfg(feature = "wml-tables")]
21097 if self.tbl_cell_mar.is_some() {
21098 return false;
21099 }
21100 #[cfg(feature = "wml-tables")]
21101 if self.tbl_look.is_some() {
21102 return false;
21103 }
21104 #[cfg(feature = "wml-tables")]
21105 if self.tbl_caption.is_some() {
21106 return false;
21107 }
21108 #[cfg(feature = "wml-tables")]
21109 if self.tbl_description.is_some() {
21110 return false;
21111 }
21112 #[cfg(feature = "extra-children")]
21113 if !self.extra_children.is_empty() {
21114 return false;
21115 }
21116 true
21117 }
21118}
21119
21120impl ToXml for TableProperties {
21121 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
21122 #[cfg(feature = "extra-children")]
21123 let mut extra_iter = self.extra_children.iter().peekable();
21124 #[cfg(feature = "extra-children")]
21125 let mut emit_idx: usize = 0;
21126 #[cfg(feature = "extra-children")]
21127 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21128 extra_iter
21129 .next()
21130 .unwrap()
21131 .node
21132 .write_to(writer)
21133 .map_err(SerializeError::from)?;
21134 }
21135 #[cfg(feature = "wml-styling")]
21136 if let Some(ref val) = self.tbl_style {
21137 val.write_element("w:tblStyle", writer)?;
21138 }
21139 #[cfg(feature = "extra-children")]
21140 {
21141 emit_idx += 1;
21142 }
21143 #[cfg(feature = "extra-children")]
21144 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21145 extra_iter
21146 .next()
21147 .unwrap()
21148 .node
21149 .write_to(writer)
21150 .map_err(SerializeError::from)?;
21151 }
21152 #[cfg(feature = "wml-tables")]
21153 if let Some(ref val) = self.tblp_pr {
21154 val.write_element("w:tblpPr", writer)?;
21155 }
21156 #[cfg(feature = "extra-children")]
21157 {
21158 emit_idx += 1;
21159 }
21160 #[cfg(feature = "extra-children")]
21161 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21162 extra_iter
21163 .next()
21164 .unwrap()
21165 .node
21166 .write_to(writer)
21167 .map_err(SerializeError::from)?;
21168 }
21169 #[cfg(feature = "wml-tables")]
21170 if let Some(ref val) = self.tbl_overlap {
21171 val.write_element("w:tblOverlap", writer)?;
21172 }
21173 #[cfg(feature = "extra-children")]
21174 {
21175 emit_idx += 1;
21176 }
21177 #[cfg(feature = "extra-children")]
21178 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21179 extra_iter
21180 .next()
21181 .unwrap()
21182 .node
21183 .write_to(writer)
21184 .map_err(SerializeError::from)?;
21185 }
21186 #[cfg(feature = "wml-tables")]
21187 if let Some(ref val) = self.bidi_visual {
21188 val.write_element("w:bidiVisual", writer)?;
21189 }
21190 #[cfg(feature = "extra-children")]
21191 {
21192 emit_idx += 1;
21193 }
21194 #[cfg(feature = "extra-children")]
21195 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21196 extra_iter
21197 .next()
21198 .unwrap()
21199 .node
21200 .write_to(writer)
21201 .map_err(SerializeError::from)?;
21202 }
21203 #[cfg(feature = "wml-styling")]
21204 if let Some(ref val) = self.tbl_style_row_band_size {
21205 val.write_element("w:tblStyleRowBandSize", writer)?;
21206 }
21207 #[cfg(feature = "extra-children")]
21208 {
21209 emit_idx += 1;
21210 }
21211 #[cfg(feature = "extra-children")]
21212 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21213 extra_iter
21214 .next()
21215 .unwrap()
21216 .node
21217 .write_to(writer)
21218 .map_err(SerializeError::from)?;
21219 }
21220 #[cfg(feature = "wml-styling")]
21221 if let Some(ref val) = self.tbl_style_col_band_size {
21222 val.write_element("w:tblStyleColBandSize", writer)?;
21223 }
21224 #[cfg(feature = "extra-children")]
21225 {
21226 emit_idx += 1;
21227 }
21228 #[cfg(feature = "extra-children")]
21229 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21230 extra_iter
21231 .next()
21232 .unwrap()
21233 .node
21234 .write_to(writer)
21235 .map_err(SerializeError::from)?;
21236 }
21237 #[cfg(feature = "wml-tables")]
21238 if let Some(ref val) = self.tbl_w {
21239 val.write_element("w:tblW", writer)?;
21240 }
21241 #[cfg(feature = "extra-children")]
21242 {
21243 emit_idx += 1;
21244 }
21245 #[cfg(feature = "extra-children")]
21246 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21247 extra_iter
21248 .next()
21249 .unwrap()
21250 .node
21251 .write_to(writer)
21252 .map_err(SerializeError::from)?;
21253 }
21254 #[cfg(feature = "wml-tables")]
21255 if let Some(ref val) = self.justification {
21256 val.write_element("w:jc", writer)?;
21257 }
21258 #[cfg(feature = "extra-children")]
21259 {
21260 emit_idx += 1;
21261 }
21262 #[cfg(feature = "extra-children")]
21263 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21264 extra_iter
21265 .next()
21266 .unwrap()
21267 .node
21268 .write_to(writer)
21269 .map_err(SerializeError::from)?;
21270 }
21271 #[cfg(feature = "wml-tables")]
21272 if let Some(ref val) = self.tbl_cell_spacing {
21273 val.write_element("w:tblCellSpacing", writer)?;
21274 }
21275 #[cfg(feature = "extra-children")]
21276 {
21277 emit_idx += 1;
21278 }
21279 #[cfg(feature = "extra-children")]
21280 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21281 extra_iter
21282 .next()
21283 .unwrap()
21284 .node
21285 .write_to(writer)
21286 .map_err(SerializeError::from)?;
21287 }
21288 #[cfg(feature = "wml-tables")]
21289 if let Some(ref val) = self.tbl_ind {
21290 val.write_element("w:tblInd", writer)?;
21291 }
21292 #[cfg(feature = "extra-children")]
21293 {
21294 emit_idx += 1;
21295 }
21296 #[cfg(feature = "extra-children")]
21297 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21298 extra_iter
21299 .next()
21300 .unwrap()
21301 .node
21302 .write_to(writer)
21303 .map_err(SerializeError::from)?;
21304 }
21305 #[cfg(feature = "wml-tables")]
21306 if let Some(ref val) = self.tbl_borders {
21307 val.write_element("w:tblBorders", writer)?;
21308 }
21309 #[cfg(feature = "extra-children")]
21310 {
21311 emit_idx += 1;
21312 }
21313 #[cfg(feature = "extra-children")]
21314 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21315 extra_iter
21316 .next()
21317 .unwrap()
21318 .node
21319 .write_to(writer)
21320 .map_err(SerializeError::from)?;
21321 }
21322 #[cfg(feature = "wml-tables")]
21323 if let Some(ref val) = self.shading {
21324 val.write_element("w:shd", writer)?;
21325 }
21326 #[cfg(feature = "extra-children")]
21327 {
21328 emit_idx += 1;
21329 }
21330 #[cfg(feature = "extra-children")]
21331 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21332 extra_iter
21333 .next()
21334 .unwrap()
21335 .node
21336 .write_to(writer)
21337 .map_err(SerializeError::from)?;
21338 }
21339 #[cfg(feature = "wml-tables")]
21340 if let Some(ref val) = self.tbl_layout {
21341 val.write_element("w:tblLayout", writer)?;
21342 }
21343 #[cfg(feature = "extra-children")]
21344 {
21345 emit_idx += 1;
21346 }
21347 #[cfg(feature = "extra-children")]
21348 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21349 extra_iter
21350 .next()
21351 .unwrap()
21352 .node
21353 .write_to(writer)
21354 .map_err(SerializeError::from)?;
21355 }
21356 #[cfg(feature = "wml-tables")]
21357 if let Some(ref val) = self.tbl_cell_mar {
21358 val.write_element("w:tblCellMar", writer)?;
21359 }
21360 #[cfg(feature = "extra-children")]
21361 {
21362 emit_idx += 1;
21363 }
21364 #[cfg(feature = "extra-children")]
21365 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21366 extra_iter
21367 .next()
21368 .unwrap()
21369 .node
21370 .write_to(writer)
21371 .map_err(SerializeError::from)?;
21372 }
21373 #[cfg(feature = "wml-tables")]
21374 if let Some(ref val) = self.tbl_look {
21375 val.write_element("w:tblLook", writer)?;
21376 }
21377 #[cfg(feature = "extra-children")]
21378 {
21379 emit_idx += 1;
21380 }
21381 #[cfg(feature = "extra-children")]
21382 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21383 extra_iter
21384 .next()
21385 .unwrap()
21386 .node
21387 .write_to(writer)
21388 .map_err(SerializeError::from)?;
21389 }
21390 #[cfg(feature = "wml-tables")]
21391 if let Some(ref val) = self.tbl_caption {
21392 val.write_element("w:tblCaption", writer)?;
21393 }
21394 #[cfg(feature = "extra-children")]
21395 {
21396 emit_idx += 1;
21397 }
21398 #[cfg(feature = "extra-children")]
21399 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21400 extra_iter
21401 .next()
21402 .unwrap()
21403 .node
21404 .write_to(writer)
21405 .map_err(SerializeError::from)?;
21406 }
21407 #[cfg(feature = "wml-tables")]
21408 if let Some(ref val) = self.tbl_description {
21409 val.write_element("w:tblDescription", writer)?;
21410 }
21411 #[cfg(feature = "extra-children")]
21412 {
21413 emit_idx += 1;
21414 }
21415 #[cfg(feature = "extra-children")]
21416 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21417 extra_iter
21418 .next()
21419 .unwrap()
21420 .node
21421 .write_to(writer)
21422 .map_err(SerializeError::from)?;
21423 }
21424 #[cfg(feature = "wml-track-changes")]
21425 if let Some(ref val) = self.tbl_pr_change {
21426 val.write_element("w:tblPrChange", writer)?;
21427 }
21428 #[cfg(feature = "extra-children")]
21429 {
21430 emit_idx += 1;
21431 }
21432 #[cfg(feature = "extra-children")]
21433 for extra in extra_iter {
21434 extra.node.write_to(writer).map_err(SerializeError::from)?;
21435 }
21436 Ok(())
21437 }
21438
21439 fn is_empty_element(&self) -> bool {
21440 #[cfg(feature = "wml-styling")]
21441 if self.tbl_style.is_some() {
21442 return false;
21443 }
21444 #[cfg(feature = "wml-tables")]
21445 if self.tblp_pr.is_some() {
21446 return false;
21447 }
21448 #[cfg(feature = "wml-tables")]
21449 if self.tbl_overlap.is_some() {
21450 return false;
21451 }
21452 #[cfg(feature = "wml-tables")]
21453 if self.bidi_visual.is_some() {
21454 return false;
21455 }
21456 #[cfg(feature = "wml-styling")]
21457 if self.tbl_style_row_band_size.is_some() {
21458 return false;
21459 }
21460 #[cfg(feature = "wml-styling")]
21461 if self.tbl_style_col_band_size.is_some() {
21462 return false;
21463 }
21464 #[cfg(feature = "wml-tables")]
21465 if self.tbl_w.is_some() {
21466 return false;
21467 }
21468 #[cfg(feature = "wml-tables")]
21469 if self.justification.is_some() {
21470 return false;
21471 }
21472 #[cfg(feature = "wml-tables")]
21473 if self.tbl_cell_spacing.is_some() {
21474 return false;
21475 }
21476 #[cfg(feature = "wml-tables")]
21477 if self.tbl_ind.is_some() {
21478 return false;
21479 }
21480 #[cfg(feature = "wml-tables")]
21481 if self.tbl_borders.is_some() {
21482 return false;
21483 }
21484 #[cfg(feature = "wml-tables")]
21485 if self.shading.is_some() {
21486 return false;
21487 }
21488 #[cfg(feature = "wml-tables")]
21489 if self.tbl_layout.is_some() {
21490 return false;
21491 }
21492 #[cfg(feature = "wml-tables")]
21493 if self.tbl_cell_mar.is_some() {
21494 return false;
21495 }
21496 #[cfg(feature = "wml-tables")]
21497 if self.tbl_look.is_some() {
21498 return false;
21499 }
21500 #[cfg(feature = "wml-tables")]
21501 if self.tbl_caption.is_some() {
21502 return false;
21503 }
21504 #[cfg(feature = "wml-tables")]
21505 if self.tbl_description.is_some() {
21506 return false;
21507 }
21508 #[cfg(feature = "wml-track-changes")]
21509 if self.tbl_pr_change.is_some() {
21510 return false;
21511 }
21512 #[cfg(feature = "extra-children")]
21513 if !self.extra_children.is_empty() {
21514 return false;
21515 }
21516 true
21517 }
21518}
21519
21520impl ToXml for CTTblPrExBase {
21521 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
21522 #[cfg(feature = "extra-children")]
21523 let mut extra_iter = self.extra_children.iter().peekable();
21524 #[cfg(feature = "extra-children")]
21525 let mut emit_idx: usize = 0;
21526 #[cfg(feature = "extra-children")]
21527 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21528 extra_iter
21529 .next()
21530 .unwrap()
21531 .node
21532 .write_to(writer)
21533 .map_err(SerializeError::from)?;
21534 }
21535 #[cfg(feature = "wml-tables")]
21536 if let Some(ref val) = self.tbl_w {
21537 val.write_element("w:tblW", writer)?;
21538 }
21539 #[cfg(feature = "extra-children")]
21540 {
21541 emit_idx += 1;
21542 }
21543 #[cfg(feature = "extra-children")]
21544 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21545 extra_iter
21546 .next()
21547 .unwrap()
21548 .node
21549 .write_to(writer)
21550 .map_err(SerializeError::from)?;
21551 }
21552 #[cfg(feature = "wml-tables")]
21553 if let Some(ref val) = self.justification {
21554 val.write_element("w:jc", writer)?;
21555 }
21556 #[cfg(feature = "extra-children")]
21557 {
21558 emit_idx += 1;
21559 }
21560 #[cfg(feature = "extra-children")]
21561 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21562 extra_iter
21563 .next()
21564 .unwrap()
21565 .node
21566 .write_to(writer)
21567 .map_err(SerializeError::from)?;
21568 }
21569 #[cfg(feature = "wml-tables")]
21570 if let Some(ref val) = self.tbl_cell_spacing {
21571 val.write_element("w:tblCellSpacing", writer)?;
21572 }
21573 #[cfg(feature = "extra-children")]
21574 {
21575 emit_idx += 1;
21576 }
21577 #[cfg(feature = "extra-children")]
21578 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21579 extra_iter
21580 .next()
21581 .unwrap()
21582 .node
21583 .write_to(writer)
21584 .map_err(SerializeError::from)?;
21585 }
21586 #[cfg(feature = "wml-tables")]
21587 if let Some(ref val) = self.tbl_ind {
21588 val.write_element("w:tblInd", writer)?;
21589 }
21590 #[cfg(feature = "extra-children")]
21591 {
21592 emit_idx += 1;
21593 }
21594 #[cfg(feature = "extra-children")]
21595 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21596 extra_iter
21597 .next()
21598 .unwrap()
21599 .node
21600 .write_to(writer)
21601 .map_err(SerializeError::from)?;
21602 }
21603 #[cfg(feature = "wml-tables")]
21604 if let Some(ref val) = self.tbl_borders {
21605 val.write_element("w:tblBorders", writer)?;
21606 }
21607 #[cfg(feature = "extra-children")]
21608 {
21609 emit_idx += 1;
21610 }
21611 #[cfg(feature = "extra-children")]
21612 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21613 extra_iter
21614 .next()
21615 .unwrap()
21616 .node
21617 .write_to(writer)
21618 .map_err(SerializeError::from)?;
21619 }
21620 #[cfg(feature = "wml-tables")]
21621 if let Some(ref val) = self.shading {
21622 val.write_element("w:shd", writer)?;
21623 }
21624 #[cfg(feature = "extra-children")]
21625 {
21626 emit_idx += 1;
21627 }
21628 #[cfg(feature = "extra-children")]
21629 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21630 extra_iter
21631 .next()
21632 .unwrap()
21633 .node
21634 .write_to(writer)
21635 .map_err(SerializeError::from)?;
21636 }
21637 #[cfg(feature = "wml-tables")]
21638 if let Some(ref val) = self.tbl_layout {
21639 val.write_element("w:tblLayout", writer)?;
21640 }
21641 #[cfg(feature = "extra-children")]
21642 {
21643 emit_idx += 1;
21644 }
21645 #[cfg(feature = "extra-children")]
21646 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21647 extra_iter
21648 .next()
21649 .unwrap()
21650 .node
21651 .write_to(writer)
21652 .map_err(SerializeError::from)?;
21653 }
21654 #[cfg(feature = "wml-tables")]
21655 if let Some(ref val) = self.tbl_cell_mar {
21656 val.write_element("w:tblCellMar", writer)?;
21657 }
21658 #[cfg(feature = "extra-children")]
21659 {
21660 emit_idx += 1;
21661 }
21662 #[cfg(feature = "extra-children")]
21663 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21664 extra_iter
21665 .next()
21666 .unwrap()
21667 .node
21668 .write_to(writer)
21669 .map_err(SerializeError::from)?;
21670 }
21671 #[cfg(feature = "wml-tables")]
21672 if let Some(ref val) = self.tbl_look {
21673 val.write_element("w:tblLook", writer)?;
21674 }
21675 #[cfg(feature = "extra-children")]
21676 {
21677 emit_idx += 1;
21678 }
21679 #[cfg(feature = "extra-children")]
21680 for extra in extra_iter {
21681 extra.node.write_to(writer).map_err(SerializeError::from)?;
21682 }
21683 Ok(())
21684 }
21685
21686 fn is_empty_element(&self) -> bool {
21687 #[cfg(feature = "wml-tables")]
21688 if self.tbl_w.is_some() {
21689 return false;
21690 }
21691 #[cfg(feature = "wml-tables")]
21692 if self.justification.is_some() {
21693 return false;
21694 }
21695 #[cfg(feature = "wml-tables")]
21696 if self.tbl_cell_spacing.is_some() {
21697 return false;
21698 }
21699 #[cfg(feature = "wml-tables")]
21700 if self.tbl_ind.is_some() {
21701 return false;
21702 }
21703 #[cfg(feature = "wml-tables")]
21704 if self.tbl_borders.is_some() {
21705 return false;
21706 }
21707 #[cfg(feature = "wml-tables")]
21708 if self.shading.is_some() {
21709 return false;
21710 }
21711 #[cfg(feature = "wml-tables")]
21712 if self.tbl_layout.is_some() {
21713 return false;
21714 }
21715 #[cfg(feature = "wml-tables")]
21716 if self.tbl_cell_mar.is_some() {
21717 return false;
21718 }
21719 #[cfg(feature = "wml-tables")]
21720 if self.tbl_look.is_some() {
21721 return false;
21722 }
21723 #[cfg(feature = "extra-children")]
21724 if !self.extra_children.is_empty() {
21725 return false;
21726 }
21727 true
21728 }
21729}
21730
21731impl ToXml for CTTblPrEx {
21732 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
21733 #[cfg(feature = "extra-children")]
21734 let mut extra_iter = self.extra_children.iter().peekable();
21735 #[cfg(feature = "extra-children")]
21736 let mut emit_idx: usize = 0;
21737 #[cfg(feature = "extra-children")]
21738 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21739 extra_iter
21740 .next()
21741 .unwrap()
21742 .node
21743 .write_to(writer)
21744 .map_err(SerializeError::from)?;
21745 }
21746 if let Some(ref val) = self.tbl_w {
21747 val.write_element("w:tblW", writer)?;
21748 }
21749 #[cfg(feature = "extra-children")]
21750 {
21751 emit_idx += 1;
21752 }
21753 #[cfg(feature = "extra-children")]
21754 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21755 extra_iter
21756 .next()
21757 .unwrap()
21758 .node
21759 .write_to(writer)
21760 .map_err(SerializeError::from)?;
21761 }
21762 if let Some(ref val) = self.justification {
21763 val.write_element("w:jc", writer)?;
21764 }
21765 #[cfg(feature = "extra-children")]
21766 {
21767 emit_idx += 1;
21768 }
21769 #[cfg(feature = "extra-children")]
21770 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21771 extra_iter
21772 .next()
21773 .unwrap()
21774 .node
21775 .write_to(writer)
21776 .map_err(SerializeError::from)?;
21777 }
21778 if let Some(ref val) = self.tbl_cell_spacing {
21779 val.write_element("w:tblCellSpacing", writer)?;
21780 }
21781 #[cfg(feature = "extra-children")]
21782 {
21783 emit_idx += 1;
21784 }
21785 #[cfg(feature = "extra-children")]
21786 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21787 extra_iter
21788 .next()
21789 .unwrap()
21790 .node
21791 .write_to(writer)
21792 .map_err(SerializeError::from)?;
21793 }
21794 if let Some(ref val) = self.tbl_ind {
21795 val.write_element("w:tblInd", writer)?;
21796 }
21797 #[cfg(feature = "extra-children")]
21798 {
21799 emit_idx += 1;
21800 }
21801 #[cfg(feature = "extra-children")]
21802 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21803 extra_iter
21804 .next()
21805 .unwrap()
21806 .node
21807 .write_to(writer)
21808 .map_err(SerializeError::from)?;
21809 }
21810 if let Some(ref val) = self.tbl_borders {
21811 val.write_element("w:tblBorders", writer)?;
21812 }
21813 #[cfg(feature = "extra-children")]
21814 {
21815 emit_idx += 1;
21816 }
21817 #[cfg(feature = "extra-children")]
21818 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21819 extra_iter
21820 .next()
21821 .unwrap()
21822 .node
21823 .write_to(writer)
21824 .map_err(SerializeError::from)?;
21825 }
21826 if let Some(ref val) = self.shading {
21827 val.write_element("w:shd", writer)?;
21828 }
21829 #[cfg(feature = "extra-children")]
21830 {
21831 emit_idx += 1;
21832 }
21833 #[cfg(feature = "extra-children")]
21834 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21835 extra_iter
21836 .next()
21837 .unwrap()
21838 .node
21839 .write_to(writer)
21840 .map_err(SerializeError::from)?;
21841 }
21842 if let Some(ref val) = self.tbl_layout {
21843 val.write_element("w:tblLayout", writer)?;
21844 }
21845 #[cfg(feature = "extra-children")]
21846 {
21847 emit_idx += 1;
21848 }
21849 #[cfg(feature = "extra-children")]
21850 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21851 extra_iter
21852 .next()
21853 .unwrap()
21854 .node
21855 .write_to(writer)
21856 .map_err(SerializeError::from)?;
21857 }
21858 if let Some(ref val) = self.tbl_cell_mar {
21859 val.write_element("w:tblCellMar", writer)?;
21860 }
21861 #[cfg(feature = "extra-children")]
21862 {
21863 emit_idx += 1;
21864 }
21865 #[cfg(feature = "extra-children")]
21866 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21867 extra_iter
21868 .next()
21869 .unwrap()
21870 .node
21871 .write_to(writer)
21872 .map_err(SerializeError::from)?;
21873 }
21874 if let Some(ref val) = self.tbl_look {
21875 val.write_element("w:tblLook", writer)?;
21876 }
21877 #[cfg(feature = "extra-children")]
21878 {
21879 emit_idx += 1;
21880 }
21881 #[cfg(feature = "extra-children")]
21882 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21883 extra_iter
21884 .next()
21885 .unwrap()
21886 .node
21887 .write_to(writer)
21888 .map_err(SerializeError::from)?;
21889 }
21890 #[cfg(feature = "wml-track-changes")]
21891 if let Some(ref val) = self.tbl_pr_ex_change {
21892 val.write_element("w:tblPrExChange", writer)?;
21893 }
21894 #[cfg(feature = "extra-children")]
21895 {
21896 emit_idx += 1;
21897 }
21898 #[cfg(feature = "extra-children")]
21899 for extra in extra_iter {
21900 extra.node.write_to(writer).map_err(SerializeError::from)?;
21901 }
21902 Ok(())
21903 }
21904
21905 fn is_empty_element(&self) -> bool {
21906 if self.tbl_w.is_some() {
21907 return false;
21908 }
21909 if self.justification.is_some() {
21910 return false;
21911 }
21912 if self.tbl_cell_spacing.is_some() {
21913 return false;
21914 }
21915 if self.tbl_ind.is_some() {
21916 return false;
21917 }
21918 if self.tbl_borders.is_some() {
21919 return false;
21920 }
21921 if self.shading.is_some() {
21922 return false;
21923 }
21924 if self.tbl_layout.is_some() {
21925 return false;
21926 }
21927 if self.tbl_cell_mar.is_some() {
21928 return false;
21929 }
21930 if self.tbl_look.is_some() {
21931 return false;
21932 }
21933 #[cfg(feature = "wml-track-changes")]
21934 if self.tbl_pr_ex_change.is_some() {
21935 return false;
21936 }
21937 #[cfg(feature = "extra-children")]
21938 if !self.extra_children.is_empty() {
21939 return false;
21940 }
21941 true
21942 }
21943}
21944
21945impl ToXml for Table {
21946 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
21947 #[cfg(feature = "extra-children")]
21948 let mut extra_iter = self.extra_children.iter().peekable();
21949 #[cfg(feature = "extra-children")]
21950 let mut emit_idx: usize = 0;
21951 for item in &self.range_markup {
21952 #[cfg(feature = "extra-children")]
21953 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21954 extra_iter
21955 .next()
21956 .unwrap()
21957 .node
21958 .write_to(writer)
21959 .map_err(SerializeError::from)?;
21960 }
21961 item.write_element("", writer)?;
21962 #[cfg(feature = "extra-children")]
21963 {
21964 emit_idx += 1;
21965 }
21966 }
21967 #[cfg(feature = "extra-children")]
21968 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21969 extra_iter
21970 .next()
21971 .unwrap()
21972 .node
21973 .write_to(writer)
21974 .map_err(SerializeError::from)?;
21975 }
21976 {
21977 let val = &self.table_properties;
21978 val.write_element("w:tblPr", writer)?;
21979 }
21980 #[cfg(feature = "extra-children")]
21981 {
21982 emit_idx += 1;
21983 }
21984 #[cfg(feature = "extra-children")]
21985 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21986 extra_iter
21987 .next()
21988 .unwrap()
21989 .node
21990 .write_to(writer)
21991 .map_err(SerializeError::from)?;
21992 }
21993 {
21994 let val = &self.tbl_grid;
21995 val.write_element("w:tblGrid", writer)?;
21996 }
21997 #[cfg(feature = "extra-children")]
21998 {
21999 emit_idx += 1;
22000 }
22001 for item in &self.rows {
22002 #[cfg(feature = "extra-children")]
22003 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22004 extra_iter
22005 .next()
22006 .unwrap()
22007 .node
22008 .write_to(writer)
22009 .map_err(SerializeError::from)?;
22010 }
22011 item.write_element("", writer)?;
22012 #[cfg(feature = "extra-children")]
22013 {
22014 emit_idx += 1;
22015 }
22016 }
22017 #[cfg(feature = "extra-children")]
22018 for extra in extra_iter {
22019 extra.node.write_to(writer).map_err(SerializeError::from)?;
22020 }
22021 Ok(())
22022 }
22023
22024 fn is_empty_element(&self) -> bool {
22025 if !self.range_markup.is_empty() {
22026 return false;
22027 }
22028 false
22029 }
22030}
22031
22032impl ToXml for CTTblLook {
22033 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22034 #[allow(unused_mut)]
22035 let mut start = start;
22036 #[cfg(feature = "wml-tables")]
22037 if let Some(ref val) = self.first_row {
22038 {
22039 let s = val.to_string();
22040 start.push_attribute(("w:firstRow", s.as_str()));
22041 }
22042 }
22043 #[cfg(feature = "wml-tables")]
22044 if let Some(ref val) = self.last_row {
22045 {
22046 let s = val.to_string();
22047 start.push_attribute(("w:lastRow", s.as_str()));
22048 }
22049 }
22050 #[cfg(feature = "wml-tables")]
22051 if let Some(ref val) = self.first_column {
22052 {
22053 let s = val.to_string();
22054 start.push_attribute(("w:firstColumn", s.as_str()));
22055 }
22056 }
22057 #[cfg(feature = "wml-tables")]
22058 if let Some(ref val) = self.last_column {
22059 {
22060 let s = val.to_string();
22061 start.push_attribute(("w:lastColumn", s.as_str()));
22062 }
22063 }
22064 #[cfg(feature = "wml-tables")]
22065 if let Some(ref val) = self.no_h_band {
22066 {
22067 let s = val.to_string();
22068 start.push_attribute(("w:noHBand", s.as_str()));
22069 }
22070 }
22071 #[cfg(feature = "wml-tables")]
22072 if let Some(ref val) = self.no_v_band {
22073 {
22074 let s = val.to_string();
22075 start.push_attribute(("w:noVBand", s.as_str()));
22076 }
22077 }
22078 #[cfg(feature = "wml-tables")]
22079 if let Some(ref val) = self.value {
22080 {
22081 let hex = encode_hex(val);
22082 start.push_attribute(("w:val", hex.as_str()));
22083 }
22084 }
22085 #[cfg(feature = "extra-attrs")]
22086 for (key, value) in &self.extra_attrs {
22087 start.push_attribute((key.as_str(), value.as_str()));
22088 }
22089 start
22090 }
22091
22092 fn is_empty_element(&self) -> bool {
22093 true
22094 }
22095}
22096
22097impl ToXml for CTFtnPos {
22098 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22099 #[allow(unused_mut)]
22100 let mut start = start;
22101 {
22102 let val = &self.value;
22103 {
22104 let s = val.to_string();
22105 start.push_attribute(("w:val", s.as_str()));
22106 }
22107 }
22108 #[cfg(feature = "extra-attrs")]
22109 for (key, value) in &self.extra_attrs {
22110 start.push_attribute((key.as_str(), value.as_str()));
22111 }
22112 start
22113 }
22114
22115 fn is_empty_element(&self) -> bool {
22116 true
22117 }
22118}
22119
22120impl ToXml for CTEdnPos {
22121 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22122 #[allow(unused_mut)]
22123 let mut start = start;
22124 {
22125 let val = &self.value;
22126 {
22127 let s = val.to_string();
22128 start.push_attribute(("w:val", s.as_str()));
22129 }
22130 }
22131 #[cfg(feature = "extra-attrs")]
22132 for (key, value) in &self.extra_attrs {
22133 start.push_attribute((key.as_str(), value.as_str()));
22134 }
22135 start
22136 }
22137
22138 fn is_empty_element(&self) -> bool {
22139 true
22140 }
22141}
22142
22143impl ToXml for CTNumFmt {
22144 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22145 #[allow(unused_mut)]
22146 let mut start = start;
22147 {
22148 let val = &self.value;
22149 {
22150 let s = val.to_string();
22151 start.push_attribute(("w:val", s.as_str()));
22152 }
22153 }
22154 #[cfg(feature = "wml-numbering")]
22155 if let Some(ref val) = self.format {
22156 start.push_attribute(("w:format", val.as_str()));
22157 }
22158 #[cfg(feature = "extra-attrs")]
22159 for (key, value) in &self.extra_attrs {
22160 start.push_attribute((key.as_str(), value.as_str()));
22161 }
22162 start
22163 }
22164
22165 fn is_empty_element(&self) -> bool {
22166 true
22167 }
22168}
22169
22170impl ToXml for CTNumRestart {
22171 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22172 #[allow(unused_mut)]
22173 let mut start = start;
22174 {
22175 let val = &self.value;
22176 {
22177 let s = val.to_string();
22178 start.push_attribute(("w:val", s.as_str()));
22179 }
22180 }
22181 #[cfg(feature = "extra-attrs")]
22182 for (key, value) in &self.extra_attrs {
22183 start.push_attribute((key.as_str(), value.as_str()));
22184 }
22185 start
22186 }
22187
22188 fn is_empty_element(&self) -> bool {
22189 true
22190 }
22191}
22192
22193impl ToXml for FootnoteEndnoteRef {
22194 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22195 #[allow(unused_mut)]
22196 let mut start = start;
22197 #[cfg(feature = "wml-comments")]
22198 if let Some(ref val) = self.custom_mark_follows {
22199 {
22200 let s = val.to_string();
22201 start.push_attribute(("w:customMarkFollows", s.as_str()));
22202 }
22203 }
22204 {
22205 let val = &self.id;
22206 {
22207 let s = val.to_string();
22208 start.push_attribute(("w:id", s.as_str()));
22209 }
22210 }
22211 #[cfg(feature = "extra-attrs")]
22212 for (key, value) in &self.extra_attrs {
22213 start.push_attribute((key.as_str(), value.as_str()));
22214 }
22215 start
22216 }
22217
22218 fn is_empty_element(&self) -> bool {
22219 true
22220 }
22221}
22222
22223impl ToXml for CTFtnEdnSepRef {
22224 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22225 #[allow(unused_mut)]
22226 let mut start = start;
22227 {
22228 let val = &self.id;
22229 {
22230 let s = val.to_string();
22231 start.push_attribute(("w:id", s.as_str()));
22232 }
22233 }
22234 #[cfg(feature = "extra-attrs")]
22235 for (key, value) in &self.extra_attrs {
22236 start.push_attribute((key.as_str(), value.as_str()));
22237 }
22238 start
22239 }
22240
22241 fn is_empty_element(&self) -> bool {
22242 true
22243 }
22244}
22245
22246impl ToXml for FootnoteEndnote {
22247 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22248 #[allow(unused_mut)]
22249 let mut start = start;
22250 #[cfg(feature = "wml-comments")]
22251 if let Some(ref val) = self.r#type {
22252 {
22253 let s = val.to_string();
22254 start.push_attribute(("w:type", s.as_str()));
22255 }
22256 }
22257 {
22258 let val = &self.id;
22259 {
22260 let s = val.to_string();
22261 start.push_attribute(("w:id", s.as_str()));
22262 }
22263 }
22264 #[cfg(feature = "extra-attrs")]
22265 for (key, value) in &self.extra_attrs {
22266 start.push_attribute((key.as_str(), value.as_str()));
22267 }
22268 start
22269 }
22270
22271 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22272 #[cfg(feature = "extra-children")]
22273 let mut extra_iter = self.extra_children.iter().peekable();
22274 #[cfg(feature = "extra-children")]
22275 let mut emit_idx: usize = 0;
22276 for item in &self.block_content {
22277 #[cfg(feature = "extra-children")]
22278 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22279 extra_iter
22280 .next()
22281 .unwrap()
22282 .node
22283 .write_to(writer)
22284 .map_err(SerializeError::from)?;
22285 }
22286 item.write_element("", writer)?;
22287 #[cfg(feature = "extra-children")]
22288 {
22289 emit_idx += 1;
22290 }
22291 }
22292 #[cfg(feature = "extra-children")]
22293 for extra in extra_iter {
22294 extra.node.write_to(writer).map_err(SerializeError::from)?;
22295 }
22296 Ok(())
22297 }
22298
22299 fn is_empty_element(&self) -> bool {
22300 if !self.block_content.is_empty() {
22301 return false;
22302 }
22303 #[cfg(feature = "extra-children")]
22304 if !self.extra_children.is_empty() {
22305 return false;
22306 }
22307 true
22308 }
22309}
22310
22311impl ToXml for EGFtnEdnNumProps {
22312 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22313 #[cfg(feature = "extra-children")]
22314 let mut extra_iter = self.extra_children.iter().peekable();
22315 #[cfg(feature = "extra-children")]
22316 let mut emit_idx: usize = 0;
22317 #[cfg(feature = "extra-children")]
22318 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22319 extra_iter
22320 .next()
22321 .unwrap()
22322 .node
22323 .write_to(writer)
22324 .map_err(SerializeError::from)?;
22325 }
22326 if let Some(ref val) = self.num_start {
22327 val.write_element("w:numStart", writer)?;
22328 }
22329 #[cfg(feature = "extra-children")]
22330 {
22331 emit_idx += 1;
22332 }
22333 #[cfg(feature = "extra-children")]
22334 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22335 extra_iter
22336 .next()
22337 .unwrap()
22338 .node
22339 .write_to(writer)
22340 .map_err(SerializeError::from)?;
22341 }
22342 if let Some(ref val) = self.num_restart {
22343 val.write_element("w:numRestart", writer)?;
22344 }
22345 #[cfg(feature = "extra-children")]
22346 {
22347 emit_idx += 1;
22348 }
22349 #[cfg(feature = "extra-children")]
22350 for extra in extra_iter {
22351 extra.node.write_to(writer).map_err(SerializeError::from)?;
22352 }
22353 Ok(())
22354 }
22355
22356 fn is_empty_element(&self) -> bool {
22357 if self.num_start.is_some() {
22358 return false;
22359 }
22360 if self.num_restart.is_some() {
22361 return false;
22362 }
22363 #[cfg(feature = "extra-children")]
22364 if !self.extra_children.is_empty() {
22365 return false;
22366 }
22367 true
22368 }
22369}
22370
22371impl ToXml for CTFtnProps {
22372 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22373 #[cfg(feature = "extra-children")]
22374 let mut extra_iter = self.extra_children.iter().peekable();
22375 #[cfg(feature = "extra-children")]
22376 let mut emit_idx: usize = 0;
22377 #[cfg(feature = "extra-children")]
22378 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22379 extra_iter
22380 .next()
22381 .unwrap()
22382 .node
22383 .write_to(writer)
22384 .map_err(SerializeError::from)?;
22385 }
22386 #[cfg(feature = "wml-comments")]
22387 if let Some(ref val) = self.pos {
22388 val.write_element("w:pos", writer)?;
22389 }
22390 #[cfg(feature = "extra-children")]
22391 {
22392 emit_idx += 1;
22393 }
22394 #[cfg(feature = "extra-children")]
22395 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22396 extra_iter
22397 .next()
22398 .unwrap()
22399 .node
22400 .write_to(writer)
22401 .map_err(SerializeError::from)?;
22402 }
22403 #[cfg(feature = "wml-comments")]
22404 if let Some(ref val) = self.num_fmt {
22405 val.write_element("w:numFmt", writer)?;
22406 }
22407 #[cfg(feature = "extra-children")]
22408 {
22409 emit_idx += 1;
22410 }
22411 #[cfg(feature = "extra-children")]
22412 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22413 extra_iter
22414 .next()
22415 .unwrap()
22416 .node
22417 .write_to(writer)
22418 .map_err(SerializeError::from)?;
22419 }
22420 if let Some(ref val) = self.num_start {
22421 val.write_element("w:numStart", writer)?;
22422 }
22423 #[cfg(feature = "extra-children")]
22424 {
22425 emit_idx += 1;
22426 }
22427 #[cfg(feature = "extra-children")]
22428 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22429 extra_iter
22430 .next()
22431 .unwrap()
22432 .node
22433 .write_to(writer)
22434 .map_err(SerializeError::from)?;
22435 }
22436 if let Some(ref val) = self.num_restart {
22437 val.write_element("w:numRestart", writer)?;
22438 }
22439 #[cfg(feature = "extra-children")]
22440 {
22441 emit_idx += 1;
22442 }
22443 #[cfg(feature = "extra-children")]
22444 for extra in extra_iter {
22445 extra.node.write_to(writer).map_err(SerializeError::from)?;
22446 }
22447 Ok(())
22448 }
22449
22450 fn is_empty_element(&self) -> bool {
22451 #[cfg(feature = "wml-comments")]
22452 if self.pos.is_some() {
22453 return false;
22454 }
22455 #[cfg(feature = "wml-comments")]
22456 if self.num_fmt.is_some() {
22457 return false;
22458 }
22459 if self.num_start.is_some() {
22460 return false;
22461 }
22462 if self.num_restart.is_some() {
22463 return false;
22464 }
22465 #[cfg(feature = "extra-children")]
22466 if !self.extra_children.is_empty() {
22467 return false;
22468 }
22469 true
22470 }
22471}
22472
22473impl ToXml for CTEdnProps {
22474 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22475 #[cfg(feature = "extra-children")]
22476 let mut extra_iter = self.extra_children.iter().peekable();
22477 #[cfg(feature = "extra-children")]
22478 let mut emit_idx: usize = 0;
22479 #[cfg(feature = "extra-children")]
22480 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22481 extra_iter
22482 .next()
22483 .unwrap()
22484 .node
22485 .write_to(writer)
22486 .map_err(SerializeError::from)?;
22487 }
22488 #[cfg(feature = "wml-comments")]
22489 if let Some(ref val) = self.pos {
22490 val.write_element("w:pos", writer)?;
22491 }
22492 #[cfg(feature = "extra-children")]
22493 {
22494 emit_idx += 1;
22495 }
22496 #[cfg(feature = "extra-children")]
22497 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22498 extra_iter
22499 .next()
22500 .unwrap()
22501 .node
22502 .write_to(writer)
22503 .map_err(SerializeError::from)?;
22504 }
22505 #[cfg(feature = "wml-comments")]
22506 if let Some(ref val) = self.num_fmt {
22507 val.write_element("w:numFmt", writer)?;
22508 }
22509 #[cfg(feature = "extra-children")]
22510 {
22511 emit_idx += 1;
22512 }
22513 #[cfg(feature = "extra-children")]
22514 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22515 extra_iter
22516 .next()
22517 .unwrap()
22518 .node
22519 .write_to(writer)
22520 .map_err(SerializeError::from)?;
22521 }
22522 if let Some(ref val) = self.num_start {
22523 val.write_element("w:numStart", writer)?;
22524 }
22525 #[cfg(feature = "extra-children")]
22526 {
22527 emit_idx += 1;
22528 }
22529 #[cfg(feature = "extra-children")]
22530 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22531 extra_iter
22532 .next()
22533 .unwrap()
22534 .node
22535 .write_to(writer)
22536 .map_err(SerializeError::from)?;
22537 }
22538 if let Some(ref val) = self.num_restart {
22539 val.write_element("w:numRestart", writer)?;
22540 }
22541 #[cfg(feature = "extra-children")]
22542 {
22543 emit_idx += 1;
22544 }
22545 #[cfg(feature = "extra-children")]
22546 for extra in extra_iter {
22547 extra.node.write_to(writer).map_err(SerializeError::from)?;
22548 }
22549 Ok(())
22550 }
22551
22552 fn is_empty_element(&self) -> bool {
22553 #[cfg(feature = "wml-comments")]
22554 if self.pos.is_some() {
22555 return false;
22556 }
22557 #[cfg(feature = "wml-comments")]
22558 if self.num_fmt.is_some() {
22559 return false;
22560 }
22561 if self.num_start.is_some() {
22562 return false;
22563 }
22564 if self.num_restart.is_some() {
22565 return false;
22566 }
22567 #[cfg(feature = "extra-children")]
22568 if !self.extra_children.is_empty() {
22569 return false;
22570 }
22571 true
22572 }
22573}
22574
22575impl ToXml for CTFtnDocProps {
22576 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22577 #[cfg(feature = "extra-children")]
22578 let mut extra_iter = self.extra_children.iter().peekable();
22579 #[cfg(feature = "extra-children")]
22580 let mut emit_idx: usize = 0;
22581 #[cfg(feature = "extra-children")]
22582 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22583 extra_iter
22584 .next()
22585 .unwrap()
22586 .node
22587 .write_to(writer)
22588 .map_err(SerializeError::from)?;
22589 }
22590 if let Some(ref val) = self.pos {
22591 val.write_element("w:pos", writer)?;
22592 }
22593 #[cfg(feature = "extra-children")]
22594 {
22595 emit_idx += 1;
22596 }
22597 #[cfg(feature = "extra-children")]
22598 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22599 extra_iter
22600 .next()
22601 .unwrap()
22602 .node
22603 .write_to(writer)
22604 .map_err(SerializeError::from)?;
22605 }
22606 if let Some(ref val) = self.num_fmt {
22607 val.write_element("w:numFmt", writer)?;
22608 }
22609 #[cfg(feature = "extra-children")]
22610 {
22611 emit_idx += 1;
22612 }
22613 #[cfg(feature = "extra-children")]
22614 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22615 extra_iter
22616 .next()
22617 .unwrap()
22618 .node
22619 .write_to(writer)
22620 .map_err(SerializeError::from)?;
22621 }
22622 if let Some(ref val) = self.num_start {
22623 val.write_element("w:numStart", writer)?;
22624 }
22625 #[cfg(feature = "extra-children")]
22626 {
22627 emit_idx += 1;
22628 }
22629 #[cfg(feature = "extra-children")]
22630 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22631 extra_iter
22632 .next()
22633 .unwrap()
22634 .node
22635 .write_to(writer)
22636 .map_err(SerializeError::from)?;
22637 }
22638 if let Some(ref val) = self.num_restart {
22639 val.write_element("w:numRestart", writer)?;
22640 }
22641 #[cfg(feature = "extra-children")]
22642 {
22643 emit_idx += 1;
22644 }
22645 #[cfg(feature = "wml-comments")]
22646 for item in &self.footnote {
22647 #[cfg(feature = "extra-children")]
22648 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22649 extra_iter
22650 .next()
22651 .unwrap()
22652 .node
22653 .write_to(writer)
22654 .map_err(SerializeError::from)?;
22655 }
22656 item.write_element("w:footnote", writer)?;
22657 #[cfg(feature = "extra-children")]
22658 {
22659 emit_idx += 1;
22660 }
22661 }
22662 #[cfg(feature = "extra-children")]
22663 for extra in extra_iter {
22664 extra.node.write_to(writer).map_err(SerializeError::from)?;
22665 }
22666 Ok(())
22667 }
22668
22669 fn is_empty_element(&self) -> bool {
22670 if self.pos.is_some() {
22671 return false;
22672 }
22673 if self.num_fmt.is_some() {
22674 return false;
22675 }
22676 if self.num_start.is_some() {
22677 return false;
22678 }
22679 if self.num_restart.is_some() {
22680 return false;
22681 }
22682 #[cfg(feature = "wml-comments")]
22683 if !self.footnote.is_empty() {
22684 return false;
22685 }
22686 #[cfg(feature = "extra-children")]
22687 if !self.extra_children.is_empty() {
22688 return false;
22689 }
22690 true
22691 }
22692}
22693
22694impl ToXml for CTEdnDocProps {
22695 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22696 #[cfg(feature = "extra-children")]
22697 let mut extra_iter = self.extra_children.iter().peekable();
22698 #[cfg(feature = "extra-children")]
22699 let mut emit_idx: usize = 0;
22700 #[cfg(feature = "extra-children")]
22701 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22702 extra_iter
22703 .next()
22704 .unwrap()
22705 .node
22706 .write_to(writer)
22707 .map_err(SerializeError::from)?;
22708 }
22709 if let Some(ref val) = self.pos {
22710 val.write_element("w:pos", writer)?;
22711 }
22712 #[cfg(feature = "extra-children")]
22713 {
22714 emit_idx += 1;
22715 }
22716 #[cfg(feature = "extra-children")]
22717 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22718 extra_iter
22719 .next()
22720 .unwrap()
22721 .node
22722 .write_to(writer)
22723 .map_err(SerializeError::from)?;
22724 }
22725 if let Some(ref val) = self.num_fmt {
22726 val.write_element("w:numFmt", writer)?;
22727 }
22728 #[cfg(feature = "extra-children")]
22729 {
22730 emit_idx += 1;
22731 }
22732 #[cfg(feature = "extra-children")]
22733 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22734 extra_iter
22735 .next()
22736 .unwrap()
22737 .node
22738 .write_to(writer)
22739 .map_err(SerializeError::from)?;
22740 }
22741 if let Some(ref val) = self.num_start {
22742 val.write_element("w:numStart", writer)?;
22743 }
22744 #[cfg(feature = "extra-children")]
22745 {
22746 emit_idx += 1;
22747 }
22748 #[cfg(feature = "extra-children")]
22749 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22750 extra_iter
22751 .next()
22752 .unwrap()
22753 .node
22754 .write_to(writer)
22755 .map_err(SerializeError::from)?;
22756 }
22757 if let Some(ref val) = self.num_restart {
22758 val.write_element("w:numRestart", writer)?;
22759 }
22760 #[cfg(feature = "extra-children")]
22761 {
22762 emit_idx += 1;
22763 }
22764 #[cfg(feature = "wml-comments")]
22765 for item in &self.endnote {
22766 #[cfg(feature = "extra-children")]
22767 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22768 extra_iter
22769 .next()
22770 .unwrap()
22771 .node
22772 .write_to(writer)
22773 .map_err(SerializeError::from)?;
22774 }
22775 item.write_element("w:endnote", writer)?;
22776 #[cfg(feature = "extra-children")]
22777 {
22778 emit_idx += 1;
22779 }
22780 }
22781 #[cfg(feature = "extra-children")]
22782 for extra in extra_iter {
22783 extra.node.write_to(writer).map_err(SerializeError::from)?;
22784 }
22785 Ok(())
22786 }
22787
22788 fn is_empty_element(&self) -> bool {
22789 if self.pos.is_some() {
22790 return false;
22791 }
22792 if self.num_fmt.is_some() {
22793 return false;
22794 }
22795 if self.num_start.is_some() {
22796 return false;
22797 }
22798 if self.num_restart.is_some() {
22799 return false;
22800 }
22801 #[cfg(feature = "wml-comments")]
22802 if !self.endnote.is_empty() {
22803 return false;
22804 }
22805 #[cfg(feature = "extra-children")]
22806 if !self.extra_children.is_empty() {
22807 return false;
22808 }
22809 true
22810 }
22811}
22812
22813impl ToXml for CTRecipientData {
22814 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22815 #[cfg(feature = "extra-children")]
22816 let mut extra_iter = self.extra_children.iter().peekable();
22817 #[cfg(feature = "extra-children")]
22818 let mut emit_idx: usize = 0;
22819 #[cfg(feature = "extra-children")]
22820 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22821 extra_iter
22822 .next()
22823 .unwrap()
22824 .node
22825 .write_to(writer)
22826 .map_err(SerializeError::from)?;
22827 }
22828 #[cfg(feature = "wml-settings")]
22829 if let Some(ref val) = self.active {
22830 val.write_element("w:active", writer)?;
22831 }
22832 #[cfg(feature = "extra-children")]
22833 {
22834 emit_idx += 1;
22835 }
22836 #[cfg(feature = "extra-children")]
22837 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22838 extra_iter
22839 .next()
22840 .unwrap()
22841 .node
22842 .write_to(writer)
22843 .map_err(SerializeError::from)?;
22844 }
22845 #[cfg(feature = "wml-settings")]
22846 {
22847 let val = &self.column;
22848 val.write_element("w:column", writer)?;
22849 }
22850 #[cfg(feature = "extra-children")]
22851 {
22852 emit_idx += 1;
22853 }
22854 #[cfg(feature = "extra-children")]
22855 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22856 extra_iter
22857 .next()
22858 .unwrap()
22859 .node
22860 .write_to(writer)
22861 .map_err(SerializeError::from)?;
22862 }
22863 #[cfg(feature = "wml-settings")]
22864 {
22865 let val = &self.unique_tag;
22866 val.write_element("w:uniqueTag", writer)?;
22867 }
22868 #[cfg(feature = "extra-children")]
22869 {
22870 emit_idx += 1;
22871 }
22872 #[cfg(feature = "extra-children")]
22873 for extra in extra_iter {
22874 extra.node.write_to(writer).map_err(SerializeError::from)?;
22875 }
22876 Ok(())
22877 }
22878
22879 fn is_empty_element(&self) -> bool {
22880 #[cfg(feature = "wml-settings")]
22881 if self.active.is_some() {
22882 return false;
22883 }
22884 #[cfg(feature = "wml-settings")]
22885 return false;
22886 #[cfg(feature = "wml-settings")]
22887 return false;
22888 #[cfg(feature = "extra-children")]
22889 if !self.extra_children.is_empty() {
22890 return false;
22891 }
22892 true
22893 }
22894}
22895
22896impl ToXml for CTBase64Binary {
22897 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22898 #[allow(unused_mut)]
22899 let mut start = start;
22900 {
22901 let val = &self.value;
22902 {
22903 let b64 = encode_base64(val);
22904 start.push_attribute(("w:val", b64.as_str()));
22905 }
22906 }
22907 #[cfg(feature = "extra-attrs")]
22908 for (key, value) in &self.extra_attrs {
22909 start.push_attribute((key.as_str(), value.as_str()));
22910 }
22911 start
22912 }
22913
22914 fn is_empty_element(&self) -> bool {
22915 true
22916 }
22917}
22918
22919impl ToXml for CTRecipients {
22920 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22921 #[cfg(feature = "extra-children")]
22922 let mut extra_iter = self.extra_children.iter().peekable();
22923 #[cfg(feature = "extra-children")]
22924 let mut emit_idx: usize = 0;
22925 #[cfg(feature = "wml-settings")]
22926 for item in &self.recipient_data {
22927 #[cfg(feature = "extra-children")]
22928 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22929 extra_iter
22930 .next()
22931 .unwrap()
22932 .node
22933 .write_to(writer)
22934 .map_err(SerializeError::from)?;
22935 }
22936 item.write_element("w:recipientData", writer)?;
22937 #[cfg(feature = "extra-children")]
22938 {
22939 emit_idx += 1;
22940 }
22941 }
22942 #[cfg(feature = "extra-children")]
22943 for extra in extra_iter {
22944 extra.node.write_to(writer).map_err(SerializeError::from)?;
22945 }
22946 Ok(())
22947 }
22948
22949 fn is_empty_element(&self) -> bool {
22950 #[cfg(feature = "wml-settings")]
22951 if !self.recipient_data.is_empty() {
22952 return false;
22953 }
22954 #[cfg(feature = "extra-children")]
22955 if !self.extra_children.is_empty() {
22956 return false;
22957 }
22958 true
22959 }
22960}
22961
22962impl ToXml for CTOdsoFieldMapData {
22963 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22964 #[cfg(feature = "extra-children")]
22965 let mut extra_iter = self.extra_children.iter().peekable();
22966 #[cfg(feature = "extra-children")]
22967 let mut emit_idx: usize = 0;
22968 #[cfg(feature = "extra-children")]
22969 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22970 extra_iter
22971 .next()
22972 .unwrap()
22973 .node
22974 .write_to(writer)
22975 .map_err(SerializeError::from)?;
22976 }
22977 #[cfg(feature = "wml-settings")]
22978 if let Some(ref val) = self.r#type {
22979 val.write_element("w:type", writer)?;
22980 }
22981 #[cfg(feature = "extra-children")]
22982 {
22983 emit_idx += 1;
22984 }
22985 #[cfg(feature = "extra-children")]
22986 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22987 extra_iter
22988 .next()
22989 .unwrap()
22990 .node
22991 .write_to(writer)
22992 .map_err(SerializeError::from)?;
22993 }
22994 #[cfg(feature = "wml-settings")]
22995 if let Some(ref val) = self.name {
22996 val.write_element("w:name", writer)?;
22997 }
22998 #[cfg(feature = "extra-children")]
22999 {
23000 emit_idx += 1;
23001 }
23002 #[cfg(feature = "extra-children")]
23003 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23004 extra_iter
23005 .next()
23006 .unwrap()
23007 .node
23008 .write_to(writer)
23009 .map_err(SerializeError::from)?;
23010 }
23011 #[cfg(feature = "wml-settings")]
23012 if let Some(ref val) = self.mapped_name {
23013 val.write_element("w:mappedName", writer)?;
23014 }
23015 #[cfg(feature = "extra-children")]
23016 {
23017 emit_idx += 1;
23018 }
23019 #[cfg(feature = "extra-children")]
23020 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23021 extra_iter
23022 .next()
23023 .unwrap()
23024 .node
23025 .write_to(writer)
23026 .map_err(SerializeError::from)?;
23027 }
23028 #[cfg(feature = "wml-settings")]
23029 if let Some(ref val) = self.column {
23030 val.write_element("w:column", writer)?;
23031 }
23032 #[cfg(feature = "extra-children")]
23033 {
23034 emit_idx += 1;
23035 }
23036 #[cfg(feature = "extra-children")]
23037 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23038 extra_iter
23039 .next()
23040 .unwrap()
23041 .node
23042 .write_to(writer)
23043 .map_err(SerializeError::from)?;
23044 }
23045 #[cfg(feature = "wml-settings")]
23046 if let Some(ref val) = self.lid {
23047 val.write_element("w:lid", writer)?;
23048 }
23049 #[cfg(feature = "extra-children")]
23050 {
23051 emit_idx += 1;
23052 }
23053 #[cfg(feature = "extra-children")]
23054 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23055 extra_iter
23056 .next()
23057 .unwrap()
23058 .node
23059 .write_to(writer)
23060 .map_err(SerializeError::from)?;
23061 }
23062 #[cfg(feature = "wml-settings")]
23063 if let Some(ref val) = self.dynamic_address {
23064 val.write_element("w:dynamicAddress", writer)?;
23065 }
23066 #[cfg(feature = "extra-children")]
23067 {
23068 emit_idx += 1;
23069 }
23070 #[cfg(feature = "extra-children")]
23071 for extra in extra_iter {
23072 extra.node.write_to(writer).map_err(SerializeError::from)?;
23073 }
23074 Ok(())
23075 }
23076
23077 fn is_empty_element(&self) -> bool {
23078 #[cfg(feature = "wml-settings")]
23079 if self.r#type.is_some() {
23080 return false;
23081 }
23082 #[cfg(feature = "wml-settings")]
23083 if self.name.is_some() {
23084 return false;
23085 }
23086 #[cfg(feature = "wml-settings")]
23087 if self.mapped_name.is_some() {
23088 return false;
23089 }
23090 #[cfg(feature = "wml-settings")]
23091 if self.column.is_some() {
23092 return false;
23093 }
23094 #[cfg(feature = "wml-settings")]
23095 if self.lid.is_some() {
23096 return false;
23097 }
23098 #[cfg(feature = "wml-settings")]
23099 if self.dynamic_address.is_some() {
23100 return false;
23101 }
23102 #[cfg(feature = "extra-children")]
23103 if !self.extra_children.is_empty() {
23104 return false;
23105 }
23106 true
23107 }
23108}
23109
23110impl ToXml for CTMailMergeSourceType {
23111 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
23112 #[allow(unused_mut)]
23113 let mut start = start;
23114 {
23115 let val = &self.value;
23116 {
23117 let s = val.to_string();
23118 start.push_attribute(("w:val", s.as_str()));
23119 }
23120 }
23121 #[cfg(feature = "extra-attrs")]
23122 for (key, value) in &self.extra_attrs {
23123 start.push_attribute((key.as_str(), value.as_str()));
23124 }
23125 start
23126 }
23127
23128 fn is_empty_element(&self) -> bool {
23129 true
23130 }
23131}
23132
23133impl ToXml for CTOdso {
23134 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
23135 #[cfg(feature = "extra-children")]
23136 let mut extra_iter = self.extra_children.iter().peekable();
23137 #[cfg(feature = "extra-children")]
23138 let mut emit_idx: usize = 0;
23139 #[cfg(feature = "extra-children")]
23140 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23141 extra_iter
23142 .next()
23143 .unwrap()
23144 .node
23145 .write_to(writer)
23146 .map_err(SerializeError::from)?;
23147 }
23148 #[cfg(feature = "wml-settings")]
23149 if let Some(ref val) = self.udl {
23150 val.write_element("w:udl", writer)?;
23151 }
23152 #[cfg(feature = "extra-children")]
23153 {
23154 emit_idx += 1;
23155 }
23156 #[cfg(feature = "extra-children")]
23157 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23158 extra_iter
23159 .next()
23160 .unwrap()
23161 .node
23162 .write_to(writer)
23163 .map_err(SerializeError::from)?;
23164 }
23165 #[cfg(feature = "wml-settings")]
23166 if let Some(ref val) = self.table {
23167 val.write_element("w:table", writer)?;
23168 }
23169 #[cfg(feature = "extra-children")]
23170 {
23171 emit_idx += 1;
23172 }
23173 #[cfg(feature = "extra-children")]
23174 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23175 extra_iter
23176 .next()
23177 .unwrap()
23178 .node
23179 .write_to(writer)
23180 .map_err(SerializeError::from)?;
23181 }
23182 #[cfg(feature = "wml-settings")]
23183 if let Some(ref val) = self.src {
23184 val.write_element("w:src", writer)?;
23185 }
23186 #[cfg(feature = "extra-children")]
23187 {
23188 emit_idx += 1;
23189 }
23190 #[cfg(feature = "extra-children")]
23191 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23192 extra_iter
23193 .next()
23194 .unwrap()
23195 .node
23196 .write_to(writer)
23197 .map_err(SerializeError::from)?;
23198 }
23199 #[cfg(feature = "wml-settings")]
23200 if let Some(ref val) = self.col_delim {
23201 val.write_element("w:colDelim", writer)?;
23202 }
23203 #[cfg(feature = "extra-children")]
23204 {
23205 emit_idx += 1;
23206 }
23207 #[cfg(feature = "extra-children")]
23208 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23209 extra_iter
23210 .next()
23211 .unwrap()
23212 .node
23213 .write_to(writer)
23214 .map_err(SerializeError::from)?;
23215 }
23216 #[cfg(feature = "wml-settings")]
23217 if let Some(ref val) = self.r#type {
23218 val.write_element("w:type", writer)?;
23219 }
23220 #[cfg(feature = "extra-children")]
23221 {
23222 emit_idx += 1;
23223 }
23224 #[cfg(feature = "extra-children")]
23225 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23226 extra_iter
23227 .next()
23228 .unwrap()
23229 .node
23230 .write_to(writer)
23231 .map_err(SerializeError::from)?;
23232 }
23233 #[cfg(feature = "wml-settings")]
23234 if let Some(ref val) = self.f_hdr {
23235 val.write_element("w:fHdr", writer)?;
23236 }
23237 #[cfg(feature = "extra-children")]
23238 {
23239 emit_idx += 1;
23240 }
23241 #[cfg(feature = "wml-settings")]
23242 for item in &self.field_map_data {
23243 #[cfg(feature = "extra-children")]
23244 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23245 extra_iter
23246 .next()
23247 .unwrap()
23248 .node
23249 .write_to(writer)
23250 .map_err(SerializeError::from)?;
23251 }
23252 item.write_element("w:fieldMapData", writer)?;
23253 #[cfg(feature = "extra-children")]
23254 {
23255 emit_idx += 1;
23256 }
23257 }
23258 #[cfg(feature = "wml-settings")]
23259 for item in &self.recipient_data {
23260 #[cfg(feature = "extra-children")]
23261 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23262 extra_iter
23263 .next()
23264 .unwrap()
23265 .node
23266 .write_to(writer)
23267 .map_err(SerializeError::from)?;
23268 }
23269 item.write_element("w:recipientData", writer)?;
23270 #[cfg(feature = "extra-children")]
23271 {
23272 emit_idx += 1;
23273 }
23274 }
23275 #[cfg(feature = "extra-children")]
23276 for extra in extra_iter {
23277 extra.node.write_to(writer).map_err(SerializeError::from)?;
23278 }
23279 Ok(())
23280 }
23281
23282 fn is_empty_element(&self) -> bool {
23283 #[cfg(feature = "wml-settings")]
23284 if self.udl.is_some() {
23285 return false;
23286 }
23287 #[cfg(feature = "wml-settings")]
23288 if self.table.is_some() {
23289 return false;
23290 }
23291 #[cfg(feature = "wml-settings")]
23292 if self.src.is_some() {
23293 return false;
23294 }
23295 #[cfg(feature = "wml-settings")]
23296 if self.col_delim.is_some() {
23297 return false;
23298 }
23299 #[cfg(feature = "wml-settings")]
23300 if self.r#type.is_some() {
23301 return false;
23302 }
23303 #[cfg(feature = "wml-settings")]
23304 if self.f_hdr.is_some() {
23305 return false;
23306 }
23307 #[cfg(feature = "wml-settings")]
23308 if !self.field_map_data.is_empty() {
23309 return false;
23310 }
23311 #[cfg(feature = "wml-settings")]
23312 if !self.recipient_data.is_empty() {
23313 return false;
23314 }
23315 #[cfg(feature = "extra-children")]
23316 if !self.extra_children.is_empty() {
23317 return false;
23318 }
23319 true
23320 }
23321}
23322
23323impl ToXml for CTMailMerge {
23324 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
23325 #[cfg(feature = "extra-children")]
23326 let mut extra_iter = self.extra_children.iter().peekable();
23327 #[cfg(feature = "extra-children")]
23328 let mut emit_idx: usize = 0;
23329 #[cfg(feature = "extra-children")]
23330 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23331 extra_iter
23332 .next()
23333 .unwrap()
23334 .node
23335 .write_to(writer)
23336 .map_err(SerializeError::from)?;
23337 }
23338 #[cfg(feature = "wml-settings")]
23339 {
23340 let val = &self.main_document_type;
23341 val.write_element("w:mainDocumentType", writer)?;
23342 }
23343 #[cfg(feature = "extra-children")]
23344 {
23345 emit_idx += 1;
23346 }
23347 #[cfg(feature = "extra-children")]
23348 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23349 extra_iter
23350 .next()
23351 .unwrap()
23352 .node
23353 .write_to(writer)
23354 .map_err(SerializeError::from)?;
23355 }
23356 #[cfg(feature = "wml-settings")]
23357 if let Some(ref val) = self.link_to_query {
23358 val.write_element("w:linkToQuery", writer)?;
23359 }
23360 #[cfg(feature = "extra-children")]
23361 {
23362 emit_idx += 1;
23363 }
23364 #[cfg(feature = "extra-children")]
23365 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23366 extra_iter
23367 .next()
23368 .unwrap()
23369 .node
23370 .write_to(writer)
23371 .map_err(SerializeError::from)?;
23372 }
23373 #[cfg(feature = "wml-settings")]
23374 {
23375 let val = &self.data_type;
23376 val.write_element("w:dataType", writer)?;
23377 }
23378 #[cfg(feature = "extra-children")]
23379 {
23380 emit_idx += 1;
23381 }
23382 #[cfg(feature = "extra-children")]
23383 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23384 extra_iter
23385 .next()
23386 .unwrap()
23387 .node
23388 .write_to(writer)
23389 .map_err(SerializeError::from)?;
23390 }
23391 #[cfg(feature = "wml-settings")]
23392 if let Some(ref val) = self.connect_string {
23393 val.write_element("w:connectString", writer)?;
23394 }
23395 #[cfg(feature = "extra-children")]
23396 {
23397 emit_idx += 1;
23398 }
23399 #[cfg(feature = "extra-children")]
23400 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23401 extra_iter
23402 .next()
23403 .unwrap()
23404 .node
23405 .write_to(writer)
23406 .map_err(SerializeError::from)?;
23407 }
23408 #[cfg(feature = "wml-settings")]
23409 if let Some(ref val) = self.query {
23410 val.write_element("w:query", writer)?;
23411 }
23412 #[cfg(feature = "extra-children")]
23413 {
23414 emit_idx += 1;
23415 }
23416 #[cfg(feature = "extra-children")]
23417 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23418 extra_iter
23419 .next()
23420 .unwrap()
23421 .node
23422 .write_to(writer)
23423 .map_err(SerializeError::from)?;
23424 }
23425 #[cfg(feature = "wml-settings")]
23426 if let Some(ref val) = self.data_source {
23427 val.write_element("w:dataSource", writer)?;
23428 }
23429 #[cfg(feature = "extra-children")]
23430 {
23431 emit_idx += 1;
23432 }
23433 #[cfg(feature = "extra-children")]
23434 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23435 extra_iter
23436 .next()
23437 .unwrap()
23438 .node
23439 .write_to(writer)
23440 .map_err(SerializeError::from)?;
23441 }
23442 #[cfg(feature = "wml-settings")]
23443 if let Some(ref val) = self.header_source {
23444 val.write_element("w:headerSource", writer)?;
23445 }
23446 #[cfg(feature = "extra-children")]
23447 {
23448 emit_idx += 1;
23449 }
23450 #[cfg(feature = "extra-children")]
23451 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23452 extra_iter
23453 .next()
23454 .unwrap()
23455 .node
23456 .write_to(writer)
23457 .map_err(SerializeError::from)?;
23458 }
23459 #[cfg(feature = "wml-settings")]
23460 if let Some(ref val) = self.do_not_suppress_blank_lines {
23461 val.write_element("w:doNotSuppressBlankLines", writer)?;
23462 }
23463 #[cfg(feature = "extra-children")]
23464 {
23465 emit_idx += 1;
23466 }
23467 #[cfg(feature = "extra-children")]
23468 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23469 extra_iter
23470 .next()
23471 .unwrap()
23472 .node
23473 .write_to(writer)
23474 .map_err(SerializeError::from)?;
23475 }
23476 #[cfg(feature = "wml-settings")]
23477 if let Some(ref val) = self.destination {
23478 val.write_element("w:destination", writer)?;
23479 }
23480 #[cfg(feature = "extra-children")]
23481 {
23482 emit_idx += 1;
23483 }
23484 #[cfg(feature = "extra-children")]
23485 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23486 extra_iter
23487 .next()
23488 .unwrap()
23489 .node
23490 .write_to(writer)
23491 .map_err(SerializeError::from)?;
23492 }
23493 #[cfg(feature = "wml-settings")]
23494 if let Some(ref val) = self.address_field_name {
23495 val.write_element("w:addressFieldName", writer)?;
23496 }
23497 #[cfg(feature = "extra-children")]
23498 {
23499 emit_idx += 1;
23500 }
23501 #[cfg(feature = "extra-children")]
23502 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23503 extra_iter
23504 .next()
23505 .unwrap()
23506 .node
23507 .write_to(writer)
23508 .map_err(SerializeError::from)?;
23509 }
23510 #[cfg(feature = "wml-settings")]
23511 if let Some(ref val) = self.mail_subject {
23512 val.write_element("w:mailSubject", writer)?;
23513 }
23514 #[cfg(feature = "extra-children")]
23515 {
23516 emit_idx += 1;
23517 }
23518 #[cfg(feature = "extra-children")]
23519 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23520 extra_iter
23521 .next()
23522 .unwrap()
23523 .node
23524 .write_to(writer)
23525 .map_err(SerializeError::from)?;
23526 }
23527 #[cfg(feature = "wml-settings")]
23528 if let Some(ref val) = self.mail_as_attachment {
23529 val.write_element("w:mailAsAttachment", writer)?;
23530 }
23531 #[cfg(feature = "extra-children")]
23532 {
23533 emit_idx += 1;
23534 }
23535 #[cfg(feature = "extra-children")]
23536 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23537 extra_iter
23538 .next()
23539 .unwrap()
23540 .node
23541 .write_to(writer)
23542 .map_err(SerializeError::from)?;
23543 }
23544 #[cfg(feature = "wml-settings")]
23545 if let Some(ref val) = self.view_merged_data {
23546 val.write_element("w:viewMergedData", writer)?;
23547 }
23548 #[cfg(feature = "extra-children")]
23549 {
23550 emit_idx += 1;
23551 }
23552 #[cfg(feature = "extra-children")]
23553 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23554 extra_iter
23555 .next()
23556 .unwrap()
23557 .node
23558 .write_to(writer)
23559 .map_err(SerializeError::from)?;
23560 }
23561 #[cfg(feature = "wml-settings")]
23562 if let Some(ref val) = self.active_record {
23563 val.write_element("w:activeRecord", writer)?;
23564 }
23565 #[cfg(feature = "extra-children")]
23566 {
23567 emit_idx += 1;
23568 }
23569 #[cfg(feature = "extra-children")]
23570 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23571 extra_iter
23572 .next()
23573 .unwrap()
23574 .node
23575 .write_to(writer)
23576 .map_err(SerializeError::from)?;
23577 }
23578 #[cfg(feature = "wml-settings")]
23579 if let Some(ref val) = self.check_errors {
23580 val.write_element("w:checkErrors", writer)?;
23581 }
23582 #[cfg(feature = "extra-children")]
23583 {
23584 emit_idx += 1;
23585 }
23586 #[cfg(feature = "extra-children")]
23587 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23588 extra_iter
23589 .next()
23590 .unwrap()
23591 .node
23592 .write_to(writer)
23593 .map_err(SerializeError::from)?;
23594 }
23595 #[cfg(feature = "wml-settings")]
23596 if let Some(ref val) = self.odso {
23597 val.write_element("w:odso", writer)?;
23598 }
23599 #[cfg(feature = "extra-children")]
23600 {
23601 emit_idx += 1;
23602 }
23603 #[cfg(feature = "extra-children")]
23604 for extra in extra_iter {
23605 extra.node.write_to(writer).map_err(SerializeError::from)?;
23606 }
23607 Ok(())
23608 }
23609
23610 fn is_empty_element(&self) -> bool {
23611 #[cfg(feature = "wml-settings")]
23612 return false;
23613 #[cfg(feature = "wml-settings")]
23614 if self.link_to_query.is_some() {
23615 return false;
23616 }
23617 #[cfg(feature = "wml-settings")]
23618 return false;
23619 #[cfg(feature = "wml-settings")]
23620 if self.connect_string.is_some() {
23621 return false;
23622 }
23623 #[cfg(feature = "wml-settings")]
23624 if self.query.is_some() {
23625 return false;
23626 }
23627 #[cfg(feature = "wml-settings")]
23628 if self.data_source.is_some() {
23629 return false;
23630 }
23631 #[cfg(feature = "wml-settings")]
23632 if self.header_source.is_some() {
23633 return false;
23634 }
23635 #[cfg(feature = "wml-settings")]
23636 if self.do_not_suppress_blank_lines.is_some() {
23637 return false;
23638 }
23639 #[cfg(feature = "wml-settings")]
23640 if self.destination.is_some() {
23641 return false;
23642 }
23643 #[cfg(feature = "wml-settings")]
23644 if self.address_field_name.is_some() {
23645 return false;
23646 }
23647 #[cfg(feature = "wml-settings")]
23648 if self.mail_subject.is_some() {
23649 return false;
23650 }
23651 #[cfg(feature = "wml-settings")]
23652 if self.mail_as_attachment.is_some() {
23653 return false;
23654 }
23655 #[cfg(feature = "wml-settings")]
23656 if self.view_merged_data.is_some() {
23657 return false;
23658 }
23659 #[cfg(feature = "wml-settings")]
23660 if self.active_record.is_some() {
23661 return false;
23662 }
23663 #[cfg(feature = "wml-settings")]
23664 if self.check_errors.is_some() {
23665 return false;
23666 }
23667 #[cfg(feature = "wml-settings")]
23668 if self.odso.is_some() {
23669 return false;
23670 }
23671 #[cfg(feature = "extra-children")]
23672 if !self.extra_children.is_empty() {
23673 return false;
23674 }
23675 true
23676 }
23677}
23678
23679impl ToXml for CTTargetScreenSz {
23680 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
23681 #[allow(unused_mut)]
23682 let mut start = start;
23683 {
23684 let val = &self.value;
23685 {
23686 let s = val.to_string();
23687 start.push_attribute(("w:val", s.as_str()));
23688 }
23689 }
23690 #[cfg(feature = "extra-attrs")]
23691 for (key, value) in &self.extra_attrs {
23692 start.push_attribute((key.as_str(), value.as_str()));
23693 }
23694 start
23695 }
23696
23697 fn is_empty_element(&self) -> bool {
23698 true
23699 }
23700}
23701
23702impl ToXml for Compatibility {
23703 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
23704 #[cfg(feature = "extra-children")]
23705 let mut extra_iter = self.extra_children.iter().peekable();
23706 #[cfg(feature = "extra-children")]
23707 let mut emit_idx: usize = 0;
23708 #[cfg(feature = "extra-children")]
23709 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23710 extra_iter
23711 .next()
23712 .unwrap()
23713 .node
23714 .write_to(writer)
23715 .map_err(SerializeError::from)?;
23716 }
23717 #[cfg(feature = "wml-settings")]
23718 if let Some(ref val) = self.use_single_borderfor_contiguous_cells {
23719 val.write_element("w:useSingleBorderforContiguousCells", writer)?;
23720 }
23721 #[cfg(feature = "extra-children")]
23722 {
23723 emit_idx += 1;
23724 }
23725 #[cfg(feature = "extra-children")]
23726 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23727 extra_iter
23728 .next()
23729 .unwrap()
23730 .node
23731 .write_to(writer)
23732 .map_err(SerializeError::from)?;
23733 }
23734 #[cfg(feature = "wml-settings")]
23735 if let Some(ref val) = self.wp_justification {
23736 val.write_element("w:wpJustification", writer)?;
23737 }
23738 #[cfg(feature = "extra-children")]
23739 {
23740 emit_idx += 1;
23741 }
23742 #[cfg(feature = "extra-children")]
23743 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23744 extra_iter
23745 .next()
23746 .unwrap()
23747 .node
23748 .write_to(writer)
23749 .map_err(SerializeError::from)?;
23750 }
23751 #[cfg(feature = "wml-settings")]
23752 if let Some(ref val) = self.no_tab_hang_ind {
23753 val.write_element("w:noTabHangInd", writer)?;
23754 }
23755 #[cfg(feature = "extra-children")]
23756 {
23757 emit_idx += 1;
23758 }
23759 #[cfg(feature = "extra-children")]
23760 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23761 extra_iter
23762 .next()
23763 .unwrap()
23764 .node
23765 .write_to(writer)
23766 .map_err(SerializeError::from)?;
23767 }
23768 #[cfg(feature = "wml-settings")]
23769 if let Some(ref val) = self.no_leading {
23770 val.write_element("w:noLeading", writer)?;
23771 }
23772 #[cfg(feature = "extra-children")]
23773 {
23774 emit_idx += 1;
23775 }
23776 #[cfg(feature = "extra-children")]
23777 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23778 extra_iter
23779 .next()
23780 .unwrap()
23781 .node
23782 .write_to(writer)
23783 .map_err(SerializeError::from)?;
23784 }
23785 #[cfg(feature = "wml-settings")]
23786 if let Some(ref val) = self.space_for_u_l {
23787 val.write_element("w:spaceForUL", writer)?;
23788 }
23789 #[cfg(feature = "extra-children")]
23790 {
23791 emit_idx += 1;
23792 }
23793 #[cfg(feature = "extra-children")]
23794 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23795 extra_iter
23796 .next()
23797 .unwrap()
23798 .node
23799 .write_to(writer)
23800 .map_err(SerializeError::from)?;
23801 }
23802 #[cfg(feature = "wml-settings")]
23803 if let Some(ref val) = self.no_column_balance {
23804 val.write_element("w:noColumnBalance", writer)?;
23805 }
23806 #[cfg(feature = "extra-children")]
23807 {
23808 emit_idx += 1;
23809 }
23810 #[cfg(feature = "extra-children")]
23811 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23812 extra_iter
23813 .next()
23814 .unwrap()
23815 .node
23816 .write_to(writer)
23817 .map_err(SerializeError::from)?;
23818 }
23819 #[cfg(feature = "wml-settings")]
23820 if let Some(ref val) = self.balance_single_byte_double_byte_width {
23821 val.write_element("w:balanceSingleByteDoubleByteWidth", writer)?;
23822 }
23823 #[cfg(feature = "extra-children")]
23824 {
23825 emit_idx += 1;
23826 }
23827 #[cfg(feature = "extra-children")]
23828 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23829 extra_iter
23830 .next()
23831 .unwrap()
23832 .node
23833 .write_to(writer)
23834 .map_err(SerializeError::from)?;
23835 }
23836 #[cfg(feature = "wml-settings")]
23837 if let Some(ref val) = self.no_extra_line_spacing {
23838 val.write_element("w:noExtraLineSpacing", writer)?;
23839 }
23840 #[cfg(feature = "extra-children")]
23841 {
23842 emit_idx += 1;
23843 }
23844 #[cfg(feature = "extra-children")]
23845 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23846 extra_iter
23847 .next()
23848 .unwrap()
23849 .node
23850 .write_to(writer)
23851 .map_err(SerializeError::from)?;
23852 }
23853 #[cfg(feature = "wml-settings")]
23854 if let Some(ref val) = self.do_not_leave_backslash_alone {
23855 val.write_element("w:doNotLeaveBackslashAlone", writer)?;
23856 }
23857 #[cfg(feature = "extra-children")]
23858 {
23859 emit_idx += 1;
23860 }
23861 #[cfg(feature = "extra-children")]
23862 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23863 extra_iter
23864 .next()
23865 .unwrap()
23866 .node
23867 .write_to(writer)
23868 .map_err(SerializeError::from)?;
23869 }
23870 #[cfg(feature = "wml-settings")]
23871 if let Some(ref val) = self.ul_trail_space {
23872 val.write_element("w:ulTrailSpace", writer)?;
23873 }
23874 #[cfg(feature = "extra-children")]
23875 {
23876 emit_idx += 1;
23877 }
23878 #[cfg(feature = "extra-children")]
23879 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23880 extra_iter
23881 .next()
23882 .unwrap()
23883 .node
23884 .write_to(writer)
23885 .map_err(SerializeError::from)?;
23886 }
23887 #[cfg(feature = "wml-settings")]
23888 if let Some(ref val) = self.do_not_expand_shift_return {
23889 val.write_element("w:doNotExpandShiftReturn", writer)?;
23890 }
23891 #[cfg(feature = "extra-children")]
23892 {
23893 emit_idx += 1;
23894 }
23895 #[cfg(feature = "extra-children")]
23896 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23897 extra_iter
23898 .next()
23899 .unwrap()
23900 .node
23901 .write_to(writer)
23902 .map_err(SerializeError::from)?;
23903 }
23904 #[cfg(feature = "wml-settings")]
23905 if let Some(ref val) = self.spacing_in_whole_points {
23906 val.write_element("w:spacingInWholePoints", writer)?;
23907 }
23908 #[cfg(feature = "extra-children")]
23909 {
23910 emit_idx += 1;
23911 }
23912 #[cfg(feature = "extra-children")]
23913 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23914 extra_iter
23915 .next()
23916 .unwrap()
23917 .node
23918 .write_to(writer)
23919 .map_err(SerializeError::from)?;
23920 }
23921 #[cfg(feature = "wml-settings")]
23922 if let Some(ref val) = self.line_wrap_like_word6 {
23923 val.write_element("w:lineWrapLikeWord6", writer)?;
23924 }
23925 #[cfg(feature = "extra-children")]
23926 {
23927 emit_idx += 1;
23928 }
23929 #[cfg(feature = "extra-children")]
23930 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23931 extra_iter
23932 .next()
23933 .unwrap()
23934 .node
23935 .write_to(writer)
23936 .map_err(SerializeError::from)?;
23937 }
23938 #[cfg(feature = "wml-settings")]
23939 if let Some(ref val) = self.print_body_text_before_header {
23940 val.write_element("w:printBodyTextBeforeHeader", writer)?;
23941 }
23942 #[cfg(feature = "extra-children")]
23943 {
23944 emit_idx += 1;
23945 }
23946 #[cfg(feature = "extra-children")]
23947 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23948 extra_iter
23949 .next()
23950 .unwrap()
23951 .node
23952 .write_to(writer)
23953 .map_err(SerializeError::from)?;
23954 }
23955 #[cfg(feature = "wml-settings")]
23956 if let Some(ref val) = self.print_col_black {
23957 val.write_element("w:printColBlack", writer)?;
23958 }
23959 #[cfg(feature = "extra-children")]
23960 {
23961 emit_idx += 1;
23962 }
23963 #[cfg(feature = "extra-children")]
23964 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23965 extra_iter
23966 .next()
23967 .unwrap()
23968 .node
23969 .write_to(writer)
23970 .map_err(SerializeError::from)?;
23971 }
23972 #[cfg(feature = "wml-settings")]
23973 if let Some(ref val) = self.wp_space_width {
23974 val.write_element("w:wpSpaceWidth", writer)?;
23975 }
23976 #[cfg(feature = "extra-children")]
23977 {
23978 emit_idx += 1;
23979 }
23980 #[cfg(feature = "extra-children")]
23981 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23982 extra_iter
23983 .next()
23984 .unwrap()
23985 .node
23986 .write_to(writer)
23987 .map_err(SerializeError::from)?;
23988 }
23989 #[cfg(feature = "wml-settings")]
23990 if let Some(ref val) = self.show_breaks_in_frames {
23991 val.write_element("w:showBreaksInFrames", writer)?;
23992 }
23993 #[cfg(feature = "extra-children")]
23994 {
23995 emit_idx += 1;
23996 }
23997 #[cfg(feature = "extra-children")]
23998 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23999 extra_iter
24000 .next()
24001 .unwrap()
24002 .node
24003 .write_to(writer)
24004 .map_err(SerializeError::from)?;
24005 }
24006 #[cfg(feature = "wml-settings")]
24007 if let Some(ref val) = self.sub_font_by_size {
24008 val.write_element("w:subFontBySize", writer)?;
24009 }
24010 #[cfg(feature = "extra-children")]
24011 {
24012 emit_idx += 1;
24013 }
24014 #[cfg(feature = "extra-children")]
24015 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24016 extra_iter
24017 .next()
24018 .unwrap()
24019 .node
24020 .write_to(writer)
24021 .map_err(SerializeError::from)?;
24022 }
24023 #[cfg(feature = "wml-settings")]
24024 if let Some(ref val) = self.suppress_bottom_spacing {
24025 val.write_element("w:suppressBottomSpacing", writer)?;
24026 }
24027 #[cfg(feature = "extra-children")]
24028 {
24029 emit_idx += 1;
24030 }
24031 #[cfg(feature = "extra-children")]
24032 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24033 extra_iter
24034 .next()
24035 .unwrap()
24036 .node
24037 .write_to(writer)
24038 .map_err(SerializeError::from)?;
24039 }
24040 #[cfg(feature = "wml-settings")]
24041 if let Some(ref val) = self.suppress_top_spacing {
24042 val.write_element("w:suppressTopSpacing", writer)?;
24043 }
24044 #[cfg(feature = "extra-children")]
24045 {
24046 emit_idx += 1;
24047 }
24048 #[cfg(feature = "extra-children")]
24049 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24050 extra_iter
24051 .next()
24052 .unwrap()
24053 .node
24054 .write_to(writer)
24055 .map_err(SerializeError::from)?;
24056 }
24057 #[cfg(feature = "wml-settings")]
24058 if let Some(ref val) = self.suppress_spacing_at_top_of_page {
24059 val.write_element("w:suppressSpacingAtTopOfPage", writer)?;
24060 }
24061 #[cfg(feature = "extra-children")]
24062 {
24063 emit_idx += 1;
24064 }
24065 #[cfg(feature = "extra-children")]
24066 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24067 extra_iter
24068 .next()
24069 .unwrap()
24070 .node
24071 .write_to(writer)
24072 .map_err(SerializeError::from)?;
24073 }
24074 #[cfg(feature = "wml-settings")]
24075 if let Some(ref val) = self.suppress_top_spacing_w_p {
24076 val.write_element("w:suppressTopSpacingWP", writer)?;
24077 }
24078 #[cfg(feature = "extra-children")]
24079 {
24080 emit_idx += 1;
24081 }
24082 #[cfg(feature = "extra-children")]
24083 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24084 extra_iter
24085 .next()
24086 .unwrap()
24087 .node
24088 .write_to(writer)
24089 .map_err(SerializeError::from)?;
24090 }
24091 #[cfg(feature = "wml-settings")]
24092 if let Some(ref val) = self.suppress_sp_bf_after_pg_brk {
24093 val.write_element("w:suppressSpBfAfterPgBrk", writer)?;
24094 }
24095 #[cfg(feature = "extra-children")]
24096 {
24097 emit_idx += 1;
24098 }
24099 #[cfg(feature = "extra-children")]
24100 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24101 extra_iter
24102 .next()
24103 .unwrap()
24104 .node
24105 .write_to(writer)
24106 .map_err(SerializeError::from)?;
24107 }
24108 #[cfg(feature = "wml-settings")]
24109 if let Some(ref val) = self.swap_borders_facing_pages {
24110 val.write_element("w:swapBordersFacingPages", writer)?;
24111 }
24112 #[cfg(feature = "extra-children")]
24113 {
24114 emit_idx += 1;
24115 }
24116 #[cfg(feature = "extra-children")]
24117 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24118 extra_iter
24119 .next()
24120 .unwrap()
24121 .node
24122 .write_to(writer)
24123 .map_err(SerializeError::from)?;
24124 }
24125 #[cfg(feature = "wml-settings")]
24126 if let Some(ref val) = self.conv_mail_merge_esc {
24127 val.write_element("w:convMailMergeEsc", writer)?;
24128 }
24129 #[cfg(feature = "extra-children")]
24130 {
24131 emit_idx += 1;
24132 }
24133 #[cfg(feature = "extra-children")]
24134 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24135 extra_iter
24136 .next()
24137 .unwrap()
24138 .node
24139 .write_to(writer)
24140 .map_err(SerializeError::from)?;
24141 }
24142 #[cfg(feature = "wml-settings")]
24143 if let Some(ref val) = self.truncate_font_heights_like_w_p6 {
24144 val.write_element("w:truncateFontHeightsLikeWP6", writer)?;
24145 }
24146 #[cfg(feature = "extra-children")]
24147 {
24148 emit_idx += 1;
24149 }
24150 #[cfg(feature = "extra-children")]
24151 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24152 extra_iter
24153 .next()
24154 .unwrap()
24155 .node
24156 .write_to(writer)
24157 .map_err(SerializeError::from)?;
24158 }
24159 #[cfg(feature = "wml-settings")]
24160 if let Some(ref val) = self.mw_small_caps {
24161 val.write_element("w:mwSmallCaps", writer)?;
24162 }
24163 #[cfg(feature = "extra-children")]
24164 {
24165 emit_idx += 1;
24166 }
24167 #[cfg(feature = "extra-children")]
24168 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24169 extra_iter
24170 .next()
24171 .unwrap()
24172 .node
24173 .write_to(writer)
24174 .map_err(SerializeError::from)?;
24175 }
24176 #[cfg(feature = "wml-settings")]
24177 if let Some(ref val) = self.use_printer_metrics {
24178 val.write_element("w:usePrinterMetrics", writer)?;
24179 }
24180 #[cfg(feature = "extra-children")]
24181 {
24182 emit_idx += 1;
24183 }
24184 #[cfg(feature = "extra-children")]
24185 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24186 extra_iter
24187 .next()
24188 .unwrap()
24189 .node
24190 .write_to(writer)
24191 .map_err(SerializeError::from)?;
24192 }
24193 #[cfg(feature = "wml-settings")]
24194 if let Some(ref val) = self.do_not_suppress_paragraph_borders {
24195 val.write_element("w:doNotSuppressParagraphBorders", writer)?;
24196 }
24197 #[cfg(feature = "extra-children")]
24198 {
24199 emit_idx += 1;
24200 }
24201 #[cfg(feature = "extra-children")]
24202 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24203 extra_iter
24204 .next()
24205 .unwrap()
24206 .node
24207 .write_to(writer)
24208 .map_err(SerializeError::from)?;
24209 }
24210 #[cfg(feature = "wml-settings")]
24211 if let Some(ref val) = self.wrap_trail_spaces {
24212 val.write_element("w:wrapTrailSpaces", writer)?;
24213 }
24214 #[cfg(feature = "extra-children")]
24215 {
24216 emit_idx += 1;
24217 }
24218 #[cfg(feature = "extra-children")]
24219 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24220 extra_iter
24221 .next()
24222 .unwrap()
24223 .node
24224 .write_to(writer)
24225 .map_err(SerializeError::from)?;
24226 }
24227 #[cfg(feature = "wml-settings")]
24228 if let Some(ref val) = self.footnote_layout_like_w_w8 {
24229 val.write_element("w:footnoteLayoutLikeWW8", writer)?;
24230 }
24231 #[cfg(feature = "extra-children")]
24232 {
24233 emit_idx += 1;
24234 }
24235 #[cfg(feature = "extra-children")]
24236 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24237 extra_iter
24238 .next()
24239 .unwrap()
24240 .node
24241 .write_to(writer)
24242 .map_err(SerializeError::from)?;
24243 }
24244 #[cfg(feature = "wml-settings")]
24245 if let Some(ref val) = self.shape_layout_like_w_w8 {
24246 val.write_element("w:shapeLayoutLikeWW8", writer)?;
24247 }
24248 #[cfg(feature = "extra-children")]
24249 {
24250 emit_idx += 1;
24251 }
24252 #[cfg(feature = "extra-children")]
24253 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24254 extra_iter
24255 .next()
24256 .unwrap()
24257 .node
24258 .write_to(writer)
24259 .map_err(SerializeError::from)?;
24260 }
24261 #[cfg(feature = "wml-settings")]
24262 if let Some(ref val) = self.align_tables_row_by_row {
24263 val.write_element("w:alignTablesRowByRow", writer)?;
24264 }
24265 #[cfg(feature = "extra-children")]
24266 {
24267 emit_idx += 1;
24268 }
24269 #[cfg(feature = "extra-children")]
24270 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24271 extra_iter
24272 .next()
24273 .unwrap()
24274 .node
24275 .write_to(writer)
24276 .map_err(SerializeError::from)?;
24277 }
24278 #[cfg(feature = "wml-settings")]
24279 if let Some(ref val) = self.forget_last_tab_alignment {
24280 val.write_element("w:forgetLastTabAlignment", writer)?;
24281 }
24282 #[cfg(feature = "extra-children")]
24283 {
24284 emit_idx += 1;
24285 }
24286 #[cfg(feature = "extra-children")]
24287 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24288 extra_iter
24289 .next()
24290 .unwrap()
24291 .node
24292 .write_to(writer)
24293 .map_err(SerializeError::from)?;
24294 }
24295 #[cfg(feature = "wml-settings")]
24296 if let Some(ref val) = self.adjust_line_height_in_table {
24297 val.write_element("w:adjustLineHeightInTable", writer)?;
24298 }
24299 #[cfg(feature = "extra-children")]
24300 {
24301 emit_idx += 1;
24302 }
24303 #[cfg(feature = "extra-children")]
24304 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24305 extra_iter
24306 .next()
24307 .unwrap()
24308 .node
24309 .write_to(writer)
24310 .map_err(SerializeError::from)?;
24311 }
24312 #[cfg(feature = "wml-settings")]
24313 if let Some(ref val) = self.auto_space_like_word95 {
24314 val.write_element("w:autoSpaceLikeWord95", writer)?;
24315 }
24316 #[cfg(feature = "extra-children")]
24317 {
24318 emit_idx += 1;
24319 }
24320 #[cfg(feature = "extra-children")]
24321 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24322 extra_iter
24323 .next()
24324 .unwrap()
24325 .node
24326 .write_to(writer)
24327 .map_err(SerializeError::from)?;
24328 }
24329 #[cfg(feature = "wml-settings")]
24330 if let Some(ref val) = self.no_space_raise_lower {
24331 val.write_element("w:noSpaceRaiseLower", writer)?;
24332 }
24333 #[cfg(feature = "extra-children")]
24334 {
24335 emit_idx += 1;
24336 }
24337 #[cfg(feature = "extra-children")]
24338 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24339 extra_iter
24340 .next()
24341 .unwrap()
24342 .node
24343 .write_to(writer)
24344 .map_err(SerializeError::from)?;
24345 }
24346 #[cfg(feature = "wml-settings")]
24347 if let Some(ref val) = self.do_not_use_h_t_m_l_paragraph_auto_spacing {
24348 val.write_element("w:doNotUseHTMLParagraphAutoSpacing", writer)?;
24349 }
24350 #[cfg(feature = "extra-children")]
24351 {
24352 emit_idx += 1;
24353 }
24354 #[cfg(feature = "extra-children")]
24355 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24356 extra_iter
24357 .next()
24358 .unwrap()
24359 .node
24360 .write_to(writer)
24361 .map_err(SerializeError::from)?;
24362 }
24363 #[cfg(feature = "wml-settings")]
24364 if let Some(ref val) = self.layout_raw_table_width {
24365 val.write_element("w:layoutRawTableWidth", writer)?;
24366 }
24367 #[cfg(feature = "extra-children")]
24368 {
24369 emit_idx += 1;
24370 }
24371 #[cfg(feature = "extra-children")]
24372 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24373 extra_iter
24374 .next()
24375 .unwrap()
24376 .node
24377 .write_to(writer)
24378 .map_err(SerializeError::from)?;
24379 }
24380 #[cfg(feature = "wml-settings")]
24381 if let Some(ref val) = self.layout_table_rows_apart {
24382 val.write_element("w:layoutTableRowsApart", writer)?;
24383 }
24384 #[cfg(feature = "extra-children")]
24385 {
24386 emit_idx += 1;
24387 }
24388 #[cfg(feature = "extra-children")]
24389 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24390 extra_iter
24391 .next()
24392 .unwrap()
24393 .node
24394 .write_to(writer)
24395 .map_err(SerializeError::from)?;
24396 }
24397 #[cfg(feature = "wml-settings")]
24398 if let Some(ref val) = self.use_word97_line_break_rules {
24399 val.write_element("w:useWord97LineBreakRules", writer)?;
24400 }
24401 #[cfg(feature = "extra-children")]
24402 {
24403 emit_idx += 1;
24404 }
24405 #[cfg(feature = "extra-children")]
24406 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24407 extra_iter
24408 .next()
24409 .unwrap()
24410 .node
24411 .write_to(writer)
24412 .map_err(SerializeError::from)?;
24413 }
24414 #[cfg(feature = "wml-settings")]
24415 if let Some(ref val) = self.do_not_break_wrapped_tables {
24416 val.write_element("w:doNotBreakWrappedTables", writer)?;
24417 }
24418 #[cfg(feature = "extra-children")]
24419 {
24420 emit_idx += 1;
24421 }
24422 #[cfg(feature = "extra-children")]
24423 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24424 extra_iter
24425 .next()
24426 .unwrap()
24427 .node
24428 .write_to(writer)
24429 .map_err(SerializeError::from)?;
24430 }
24431 #[cfg(feature = "wml-settings")]
24432 if let Some(ref val) = self.do_not_snap_to_grid_in_cell {
24433 val.write_element("w:doNotSnapToGridInCell", writer)?;
24434 }
24435 #[cfg(feature = "extra-children")]
24436 {
24437 emit_idx += 1;
24438 }
24439 #[cfg(feature = "extra-children")]
24440 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24441 extra_iter
24442 .next()
24443 .unwrap()
24444 .node
24445 .write_to(writer)
24446 .map_err(SerializeError::from)?;
24447 }
24448 #[cfg(feature = "wml-settings")]
24449 if let Some(ref val) = self.select_fld_with_first_or_last_char {
24450 val.write_element("w:selectFldWithFirstOrLastChar", writer)?;
24451 }
24452 #[cfg(feature = "extra-children")]
24453 {
24454 emit_idx += 1;
24455 }
24456 #[cfg(feature = "extra-children")]
24457 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24458 extra_iter
24459 .next()
24460 .unwrap()
24461 .node
24462 .write_to(writer)
24463 .map_err(SerializeError::from)?;
24464 }
24465 #[cfg(feature = "wml-settings")]
24466 if let Some(ref val) = self.apply_breaking_rules {
24467 val.write_element("w:applyBreakingRules", writer)?;
24468 }
24469 #[cfg(feature = "extra-children")]
24470 {
24471 emit_idx += 1;
24472 }
24473 #[cfg(feature = "extra-children")]
24474 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24475 extra_iter
24476 .next()
24477 .unwrap()
24478 .node
24479 .write_to(writer)
24480 .map_err(SerializeError::from)?;
24481 }
24482 #[cfg(feature = "wml-settings")]
24483 if let Some(ref val) = self.do_not_wrap_text_with_punct {
24484 val.write_element("w:doNotWrapTextWithPunct", writer)?;
24485 }
24486 #[cfg(feature = "extra-children")]
24487 {
24488 emit_idx += 1;
24489 }
24490 #[cfg(feature = "extra-children")]
24491 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24492 extra_iter
24493 .next()
24494 .unwrap()
24495 .node
24496 .write_to(writer)
24497 .map_err(SerializeError::from)?;
24498 }
24499 #[cfg(feature = "wml-settings")]
24500 if let Some(ref val) = self.do_not_use_east_asian_break_rules {
24501 val.write_element("w:doNotUseEastAsianBreakRules", writer)?;
24502 }
24503 #[cfg(feature = "extra-children")]
24504 {
24505 emit_idx += 1;
24506 }
24507 #[cfg(feature = "extra-children")]
24508 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24509 extra_iter
24510 .next()
24511 .unwrap()
24512 .node
24513 .write_to(writer)
24514 .map_err(SerializeError::from)?;
24515 }
24516 #[cfg(feature = "wml-settings")]
24517 if let Some(ref val) = self.use_word2002_table_style_rules {
24518 val.write_element("w:useWord2002TableStyleRules", writer)?;
24519 }
24520 #[cfg(feature = "extra-children")]
24521 {
24522 emit_idx += 1;
24523 }
24524 #[cfg(feature = "extra-children")]
24525 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24526 extra_iter
24527 .next()
24528 .unwrap()
24529 .node
24530 .write_to(writer)
24531 .map_err(SerializeError::from)?;
24532 }
24533 #[cfg(feature = "wml-settings")]
24534 if let Some(ref val) = self.grow_autofit {
24535 val.write_element("w:growAutofit", writer)?;
24536 }
24537 #[cfg(feature = "extra-children")]
24538 {
24539 emit_idx += 1;
24540 }
24541 #[cfg(feature = "extra-children")]
24542 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24543 extra_iter
24544 .next()
24545 .unwrap()
24546 .node
24547 .write_to(writer)
24548 .map_err(SerializeError::from)?;
24549 }
24550 #[cfg(feature = "wml-settings")]
24551 if let Some(ref val) = self.use_f_e_layout {
24552 val.write_element("w:useFELayout", writer)?;
24553 }
24554 #[cfg(feature = "extra-children")]
24555 {
24556 emit_idx += 1;
24557 }
24558 #[cfg(feature = "extra-children")]
24559 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24560 extra_iter
24561 .next()
24562 .unwrap()
24563 .node
24564 .write_to(writer)
24565 .map_err(SerializeError::from)?;
24566 }
24567 #[cfg(feature = "wml-settings")]
24568 if let Some(ref val) = self.use_normal_style_for_list {
24569 val.write_element("w:useNormalStyleForList", writer)?;
24570 }
24571 #[cfg(feature = "extra-children")]
24572 {
24573 emit_idx += 1;
24574 }
24575 #[cfg(feature = "extra-children")]
24576 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24577 extra_iter
24578 .next()
24579 .unwrap()
24580 .node
24581 .write_to(writer)
24582 .map_err(SerializeError::from)?;
24583 }
24584 #[cfg(feature = "wml-settings")]
24585 if let Some(ref val) = self.do_not_use_indent_as_numbering_tab_stop {
24586 val.write_element("w:doNotUseIndentAsNumberingTabStop", writer)?;
24587 }
24588 #[cfg(feature = "extra-children")]
24589 {
24590 emit_idx += 1;
24591 }
24592 #[cfg(feature = "extra-children")]
24593 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24594 extra_iter
24595 .next()
24596 .unwrap()
24597 .node
24598 .write_to(writer)
24599 .map_err(SerializeError::from)?;
24600 }
24601 #[cfg(feature = "wml-settings")]
24602 if let Some(ref val) = self.use_alt_kinsoku_line_break_rules {
24603 val.write_element("w:useAltKinsokuLineBreakRules", writer)?;
24604 }
24605 #[cfg(feature = "extra-children")]
24606 {
24607 emit_idx += 1;
24608 }
24609 #[cfg(feature = "extra-children")]
24610 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24611 extra_iter
24612 .next()
24613 .unwrap()
24614 .node
24615 .write_to(writer)
24616 .map_err(SerializeError::from)?;
24617 }
24618 #[cfg(feature = "wml-settings")]
24619 if let Some(ref val) = self.allow_space_of_same_style_in_table {
24620 val.write_element("w:allowSpaceOfSameStyleInTable", writer)?;
24621 }
24622 #[cfg(feature = "extra-children")]
24623 {
24624 emit_idx += 1;
24625 }
24626 #[cfg(feature = "extra-children")]
24627 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24628 extra_iter
24629 .next()
24630 .unwrap()
24631 .node
24632 .write_to(writer)
24633 .map_err(SerializeError::from)?;
24634 }
24635 #[cfg(feature = "wml-settings")]
24636 if let Some(ref val) = self.do_not_suppress_indentation {
24637 val.write_element("w:doNotSuppressIndentation", writer)?;
24638 }
24639 #[cfg(feature = "extra-children")]
24640 {
24641 emit_idx += 1;
24642 }
24643 #[cfg(feature = "extra-children")]
24644 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24645 extra_iter
24646 .next()
24647 .unwrap()
24648 .node
24649 .write_to(writer)
24650 .map_err(SerializeError::from)?;
24651 }
24652 #[cfg(feature = "wml-settings")]
24653 if let Some(ref val) = self.do_not_autofit_constrained_tables {
24654 val.write_element("w:doNotAutofitConstrainedTables", writer)?;
24655 }
24656 #[cfg(feature = "extra-children")]
24657 {
24658 emit_idx += 1;
24659 }
24660 #[cfg(feature = "extra-children")]
24661 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24662 extra_iter
24663 .next()
24664 .unwrap()
24665 .node
24666 .write_to(writer)
24667 .map_err(SerializeError::from)?;
24668 }
24669 #[cfg(feature = "wml-settings")]
24670 if let Some(ref val) = self.autofit_to_first_fixed_width_cell {
24671 val.write_element("w:autofitToFirstFixedWidthCell", writer)?;
24672 }
24673 #[cfg(feature = "extra-children")]
24674 {
24675 emit_idx += 1;
24676 }
24677 #[cfg(feature = "extra-children")]
24678 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24679 extra_iter
24680 .next()
24681 .unwrap()
24682 .node
24683 .write_to(writer)
24684 .map_err(SerializeError::from)?;
24685 }
24686 #[cfg(feature = "wml-settings")]
24687 if let Some(ref val) = self.underline_tab_in_num_list {
24688 val.write_element("w:underlineTabInNumList", writer)?;
24689 }
24690 #[cfg(feature = "extra-children")]
24691 {
24692 emit_idx += 1;
24693 }
24694 #[cfg(feature = "extra-children")]
24695 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24696 extra_iter
24697 .next()
24698 .unwrap()
24699 .node
24700 .write_to(writer)
24701 .map_err(SerializeError::from)?;
24702 }
24703 #[cfg(feature = "wml-settings")]
24704 if let Some(ref val) = self.display_hangul_fixed_width {
24705 val.write_element("w:displayHangulFixedWidth", writer)?;
24706 }
24707 #[cfg(feature = "extra-children")]
24708 {
24709 emit_idx += 1;
24710 }
24711 #[cfg(feature = "extra-children")]
24712 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24713 extra_iter
24714 .next()
24715 .unwrap()
24716 .node
24717 .write_to(writer)
24718 .map_err(SerializeError::from)?;
24719 }
24720 #[cfg(feature = "wml-settings")]
24721 if let Some(ref val) = self.split_pg_break_and_para_mark {
24722 val.write_element("w:splitPgBreakAndParaMark", writer)?;
24723 }
24724 #[cfg(feature = "extra-children")]
24725 {
24726 emit_idx += 1;
24727 }
24728 #[cfg(feature = "extra-children")]
24729 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24730 extra_iter
24731 .next()
24732 .unwrap()
24733 .node
24734 .write_to(writer)
24735 .map_err(SerializeError::from)?;
24736 }
24737 #[cfg(feature = "wml-settings")]
24738 if let Some(ref val) = self.do_not_vert_align_cell_with_sp {
24739 val.write_element("w:doNotVertAlignCellWithSp", writer)?;
24740 }
24741 #[cfg(feature = "extra-children")]
24742 {
24743 emit_idx += 1;
24744 }
24745 #[cfg(feature = "extra-children")]
24746 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24747 extra_iter
24748 .next()
24749 .unwrap()
24750 .node
24751 .write_to(writer)
24752 .map_err(SerializeError::from)?;
24753 }
24754 #[cfg(feature = "wml-settings")]
24755 if let Some(ref val) = self.do_not_break_constrained_forced_table {
24756 val.write_element("w:doNotBreakConstrainedForcedTable", writer)?;
24757 }
24758 #[cfg(feature = "extra-children")]
24759 {
24760 emit_idx += 1;
24761 }
24762 #[cfg(feature = "extra-children")]
24763 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24764 extra_iter
24765 .next()
24766 .unwrap()
24767 .node
24768 .write_to(writer)
24769 .map_err(SerializeError::from)?;
24770 }
24771 #[cfg(feature = "wml-settings")]
24772 if let Some(ref val) = self.do_not_vert_align_in_txbx {
24773 val.write_element("w:doNotVertAlignInTxbx", writer)?;
24774 }
24775 #[cfg(feature = "extra-children")]
24776 {
24777 emit_idx += 1;
24778 }
24779 #[cfg(feature = "extra-children")]
24780 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24781 extra_iter
24782 .next()
24783 .unwrap()
24784 .node
24785 .write_to(writer)
24786 .map_err(SerializeError::from)?;
24787 }
24788 #[cfg(feature = "wml-settings")]
24789 if let Some(ref val) = self.use_ansi_kerning_pairs {
24790 val.write_element("w:useAnsiKerningPairs", writer)?;
24791 }
24792 #[cfg(feature = "extra-children")]
24793 {
24794 emit_idx += 1;
24795 }
24796 #[cfg(feature = "extra-children")]
24797 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24798 extra_iter
24799 .next()
24800 .unwrap()
24801 .node
24802 .write_to(writer)
24803 .map_err(SerializeError::from)?;
24804 }
24805 #[cfg(feature = "wml-settings")]
24806 if let Some(ref val) = self.cached_col_balance {
24807 val.write_element("w:cachedColBalance", writer)?;
24808 }
24809 #[cfg(feature = "extra-children")]
24810 {
24811 emit_idx += 1;
24812 }
24813 #[cfg(feature = "wml-settings")]
24814 for item in &self.compat_setting {
24815 #[cfg(feature = "extra-children")]
24816 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24817 extra_iter
24818 .next()
24819 .unwrap()
24820 .node
24821 .write_to(writer)
24822 .map_err(SerializeError::from)?;
24823 }
24824 item.write_element("w:compatSetting", writer)?;
24825 #[cfg(feature = "extra-children")]
24826 {
24827 emit_idx += 1;
24828 }
24829 }
24830 #[cfg(feature = "extra-children")]
24831 for extra in extra_iter {
24832 extra.node.write_to(writer).map_err(SerializeError::from)?;
24833 }
24834 Ok(())
24835 }
24836
24837 fn is_empty_element(&self) -> bool {
24838 #[cfg(feature = "wml-settings")]
24839 if self.use_single_borderfor_contiguous_cells.is_some() {
24840 return false;
24841 }
24842 #[cfg(feature = "wml-settings")]
24843 if self.wp_justification.is_some() {
24844 return false;
24845 }
24846 #[cfg(feature = "wml-settings")]
24847 if self.no_tab_hang_ind.is_some() {
24848 return false;
24849 }
24850 #[cfg(feature = "wml-settings")]
24851 if self.no_leading.is_some() {
24852 return false;
24853 }
24854 #[cfg(feature = "wml-settings")]
24855 if self.space_for_u_l.is_some() {
24856 return false;
24857 }
24858 #[cfg(feature = "wml-settings")]
24859 if self.no_column_balance.is_some() {
24860 return false;
24861 }
24862 #[cfg(feature = "wml-settings")]
24863 if self.balance_single_byte_double_byte_width.is_some() {
24864 return false;
24865 }
24866 #[cfg(feature = "wml-settings")]
24867 if self.no_extra_line_spacing.is_some() {
24868 return false;
24869 }
24870 #[cfg(feature = "wml-settings")]
24871 if self.do_not_leave_backslash_alone.is_some() {
24872 return false;
24873 }
24874 #[cfg(feature = "wml-settings")]
24875 if self.ul_trail_space.is_some() {
24876 return false;
24877 }
24878 #[cfg(feature = "wml-settings")]
24879 if self.do_not_expand_shift_return.is_some() {
24880 return false;
24881 }
24882 #[cfg(feature = "wml-settings")]
24883 if self.spacing_in_whole_points.is_some() {
24884 return false;
24885 }
24886 #[cfg(feature = "wml-settings")]
24887 if self.line_wrap_like_word6.is_some() {
24888 return false;
24889 }
24890 #[cfg(feature = "wml-settings")]
24891 if self.print_body_text_before_header.is_some() {
24892 return false;
24893 }
24894 #[cfg(feature = "wml-settings")]
24895 if self.print_col_black.is_some() {
24896 return false;
24897 }
24898 #[cfg(feature = "wml-settings")]
24899 if self.wp_space_width.is_some() {
24900 return false;
24901 }
24902 #[cfg(feature = "wml-settings")]
24903 if self.show_breaks_in_frames.is_some() {
24904 return false;
24905 }
24906 #[cfg(feature = "wml-settings")]
24907 if self.sub_font_by_size.is_some() {
24908 return false;
24909 }
24910 #[cfg(feature = "wml-settings")]
24911 if self.suppress_bottom_spacing.is_some() {
24912 return false;
24913 }
24914 #[cfg(feature = "wml-settings")]
24915 if self.suppress_top_spacing.is_some() {
24916 return false;
24917 }
24918 #[cfg(feature = "wml-settings")]
24919 if self.suppress_spacing_at_top_of_page.is_some() {
24920 return false;
24921 }
24922 #[cfg(feature = "wml-settings")]
24923 if self.suppress_top_spacing_w_p.is_some() {
24924 return false;
24925 }
24926 #[cfg(feature = "wml-settings")]
24927 if self.suppress_sp_bf_after_pg_brk.is_some() {
24928 return false;
24929 }
24930 #[cfg(feature = "wml-settings")]
24931 if self.swap_borders_facing_pages.is_some() {
24932 return false;
24933 }
24934 #[cfg(feature = "wml-settings")]
24935 if self.conv_mail_merge_esc.is_some() {
24936 return false;
24937 }
24938 #[cfg(feature = "wml-settings")]
24939 if self.truncate_font_heights_like_w_p6.is_some() {
24940 return false;
24941 }
24942 #[cfg(feature = "wml-settings")]
24943 if self.mw_small_caps.is_some() {
24944 return false;
24945 }
24946 #[cfg(feature = "wml-settings")]
24947 if self.use_printer_metrics.is_some() {
24948 return false;
24949 }
24950 #[cfg(feature = "wml-settings")]
24951 if self.do_not_suppress_paragraph_borders.is_some() {
24952 return false;
24953 }
24954 #[cfg(feature = "wml-settings")]
24955 if self.wrap_trail_spaces.is_some() {
24956 return false;
24957 }
24958 #[cfg(feature = "wml-settings")]
24959 if self.footnote_layout_like_w_w8.is_some() {
24960 return false;
24961 }
24962 #[cfg(feature = "wml-settings")]
24963 if self.shape_layout_like_w_w8.is_some() {
24964 return false;
24965 }
24966 #[cfg(feature = "wml-settings")]
24967 if self.align_tables_row_by_row.is_some() {
24968 return false;
24969 }
24970 #[cfg(feature = "wml-settings")]
24971 if self.forget_last_tab_alignment.is_some() {
24972 return false;
24973 }
24974 #[cfg(feature = "wml-settings")]
24975 if self.adjust_line_height_in_table.is_some() {
24976 return false;
24977 }
24978 #[cfg(feature = "wml-settings")]
24979 if self.auto_space_like_word95.is_some() {
24980 return false;
24981 }
24982 #[cfg(feature = "wml-settings")]
24983 if self.no_space_raise_lower.is_some() {
24984 return false;
24985 }
24986 #[cfg(feature = "wml-settings")]
24987 if self.do_not_use_h_t_m_l_paragraph_auto_spacing.is_some() {
24988 return false;
24989 }
24990 #[cfg(feature = "wml-settings")]
24991 if self.layout_raw_table_width.is_some() {
24992 return false;
24993 }
24994 #[cfg(feature = "wml-settings")]
24995 if self.layout_table_rows_apart.is_some() {
24996 return false;
24997 }
24998 #[cfg(feature = "wml-settings")]
24999 if self.use_word97_line_break_rules.is_some() {
25000 return false;
25001 }
25002 #[cfg(feature = "wml-settings")]
25003 if self.do_not_break_wrapped_tables.is_some() {
25004 return false;
25005 }
25006 #[cfg(feature = "wml-settings")]
25007 if self.do_not_snap_to_grid_in_cell.is_some() {
25008 return false;
25009 }
25010 #[cfg(feature = "wml-settings")]
25011 if self.select_fld_with_first_or_last_char.is_some() {
25012 return false;
25013 }
25014 #[cfg(feature = "wml-settings")]
25015 if self.apply_breaking_rules.is_some() {
25016 return false;
25017 }
25018 #[cfg(feature = "wml-settings")]
25019 if self.do_not_wrap_text_with_punct.is_some() {
25020 return false;
25021 }
25022 #[cfg(feature = "wml-settings")]
25023 if self.do_not_use_east_asian_break_rules.is_some() {
25024 return false;
25025 }
25026 #[cfg(feature = "wml-settings")]
25027 if self.use_word2002_table_style_rules.is_some() {
25028 return false;
25029 }
25030 #[cfg(feature = "wml-settings")]
25031 if self.grow_autofit.is_some() {
25032 return false;
25033 }
25034 #[cfg(feature = "wml-settings")]
25035 if self.use_f_e_layout.is_some() {
25036 return false;
25037 }
25038 #[cfg(feature = "wml-settings")]
25039 if self.use_normal_style_for_list.is_some() {
25040 return false;
25041 }
25042 #[cfg(feature = "wml-settings")]
25043 if self.do_not_use_indent_as_numbering_tab_stop.is_some() {
25044 return false;
25045 }
25046 #[cfg(feature = "wml-settings")]
25047 if self.use_alt_kinsoku_line_break_rules.is_some() {
25048 return false;
25049 }
25050 #[cfg(feature = "wml-settings")]
25051 if self.allow_space_of_same_style_in_table.is_some() {
25052 return false;
25053 }
25054 #[cfg(feature = "wml-settings")]
25055 if self.do_not_suppress_indentation.is_some() {
25056 return false;
25057 }
25058 #[cfg(feature = "wml-settings")]
25059 if self.do_not_autofit_constrained_tables.is_some() {
25060 return false;
25061 }
25062 #[cfg(feature = "wml-settings")]
25063 if self.autofit_to_first_fixed_width_cell.is_some() {
25064 return false;
25065 }
25066 #[cfg(feature = "wml-settings")]
25067 if self.underline_tab_in_num_list.is_some() {
25068 return false;
25069 }
25070 #[cfg(feature = "wml-settings")]
25071 if self.display_hangul_fixed_width.is_some() {
25072 return false;
25073 }
25074 #[cfg(feature = "wml-settings")]
25075 if self.split_pg_break_and_para_mark.is_some() {
25076 return false;
25077 }
25078 #[cfg(feature = "wml-settings")]
25079 if self.do_not_vert_align_cell_with_sp.is_some() {
25080 return false;
25081 }
25082 #[cfg(feature = "wml-settings")]
25083 if self.do_not_break_constrained_forced_table.is_some() {
25084 return false;
25085 }
25086 #[cfg(feature = "wml-settings")]
25087 if self.do_not_vert_align_in_txbx.is_some() {
25088 return false;
25089 }
25090 #[cfg(feature = "wml-settings")]
25091 if self.use_ansi_kerning_pairs.is_some() {
25092 return false;
25093 }
25094 #[cfg(feature = "wml-settings")]
25095 if self.cached_col_balance.is_some() {
25096 return false;
25097 }
25098 #[cfg(feature = "wml-settings")]
25099 if !self.compat_setting.is_empty() {
25100 return false;
25101 }
25102 #[cfg(feature = "extra-children")]
25103 if !self.extra_children.is_empty() {
25104 return false;
25105 }
25106 true
25107 }
25108}
25109
25110impl ToXml for CTCompatSetting {
25111 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25112 #[allow(unused_mut)]
25113 let mut start = start;
25114 if let Some(ref val) = self.name {
25115 start.push_attribute(("w:name", val.as_str()));
25116 }
25117 if let Some(ref val) = self.uri {
25118 start.push_attribute(("w:uri", val.as_str()));
25119 }
25120 if let Some(ref val) = self.value {
25121 start.push_attribute(("w:val", val.as_str()));
25122 }
25123 #[cfg(feature = "extra-attrs")]
25124 for (key, value) in &self.extra_attrs {
25125 start.push_attribute((key.as_str(), value.as_str()));
25126 }
25127 start
25128 }
25129
25130 fn is_empty_element(&self) -> bool {
25131 true
25132 }
25133}
25134
25135impl ToXml for CTDocVar {
25136 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25137 #[allow(unused_mut)]
25138 let mut start = start;
25139 {
25140 let val = &self.name;
25141 start.push_attribute(("w:name", val.as_str()));
25142 }
25143 {
25144 let val = &self.value;
25145 start.push_attribute(("w:val", val.as_str()));
25146 }
25147 #[cfg(feature = "extra-attrs")]
25148 for (key, value) in &self.extra_attrs {
25149 start.push_attribute((key.as_str(), value.as_str()));
25150 }
25151 start
25152 }
25153
25154 fn is_empty_element(&self) -> bool {
25155 true
25156 }
25157}
25158
25159impl ToXml for CTDocVars {
25160 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25161 #[cfg(feature = "extra-children")]
25162 let mut extra_iter = self.extra_children.iter().peekable();
25163 #[cfg(feature = "extra-children")]
25164 let mut emit_idx: usize = 0;
25165 #[cfg(feature = "wml-settings")]
25166 for item in &self.doc_var {
25167 #[cfg(feature = "extra-children")]
25168 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25169 extra_iter
25170 .next()
25171 .unwrap()
25172 .node
25173 .write_to(writer)
25174 .map_err(SerializeError::from)?;
25175 }
25176 item.write_element("w:docVar", writer)?;
25177 #[cfg(feature = "extra-children")]
25178 {
25179 emit_idx += 1;
25180 }
25181 }
25182 #[cfg(feature = "extra-children")]
25183 for extra in extra_iter {
25184 extra.node.write_to(writer).map_err(SerializeError::from)?;
25185 }
25186 Ok(())
25187 }
25188
25189 fn is_empty_element(&self) -> bool {
25190 #[cfg(feature = "wml-settings")]
25191 if !self.doc_var.is_empty() {
25192 return false;
25193 }
25194 #[cfg(feature = "extra-children")]
25195 if !self.extra_children.is_empty() {
25196 return false;
25197 }
25198 true
25199 }
25200}
25201
25202impl ToXml for CTDocRsids {
25203 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25204 #[cfg(feature = "extra-children")]
25205 let mut extra_iter = self.extra_children.iter().peekable();
25206 #[cfg(feature = "extra-children")]
25207 let mut emit_idx: usize = 0;
25208 #[cfg(feature = "extra-children")]
25209 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25210 extra_iter
25211 .next()
25212 .unwrap()
25213 .node
25214 .write_to(writer)
25215 .map_err(SerializeError::from)?;
25216 }
25217 #[cfg(feature = "wml-track-changes")]
25218 if let Some(ref val) = self.rsid_root {
25219 val.write_element("w:rsidRoot", writer)?;
25220 }
25221 #[cfg(feature = "extra-children")]
25222 {
25223 emit_idx += 1;
25224 }
25225 #[cfg(feature = "wml-track-changes")]
25226 for item in &self.rsid {
25227 #[cfg(feature = "extra-children")]
25228 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25229 extra_iter
25230 .next()
25231 .unwrap()
25232 .node
25233 .write_to(writer)
25234 .map_err(SerializeError::from)?;
25235 }
25236 item.write_element("w:rsid", writer)?;
25237 #[cfg(feature = "extra-children")]
25238 {
25239 emit_idx += 1;
25240 }
25241 }
25242 #[cfg(feature = "extra-children")]
25243 for extra in extra_iter {
25244 extra.node.write_to(writer).map_err(SerializeError::from)?;
25245 }
25246 Ok(())
25247 }
25248
25249 fn is_empty_element(&self) -> bool {
25250 #[cfg(feature = "wml-track-changes")]
25251 if self.rsid_root.is_some() {
25252 return false;
25253 }
25254 #[cfg(feature = "wml-track-changes")]
25255 if !self.rsid.is_empty() {
25256 return false;
25257 }
25258 #[cfg(feature = "extra-children")]
25259 if !self.extra_children.is_empty() {
25260 return false;
25261 }
25262 true
25263 }
25264}
25265
25266impl ToXml for CTCharacterSpacing {
25267 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25268 #[allow(unused_mut)]
25269 let mut start = start;
25270 {
25271 let val = &self.value;
25272 {
25273 let s = val.to_string();
25274 start.push_attribute(("w:val", s.as_str()));
25275 }
25276 }
25277 #[cfg(feature = "extra-attrs")]
25278 for (key, value) in &self.extra_attrs {
25279 start.push_attribute((key.as_str(), value.as_str()));
25280 }
25281 start
25282 }
25283
25284 fn is_empty_element(&self) -> bool {
25285 true
25286 }
25287}
25288
25289impl ToXml for CTSaveThroughXslt {
25290 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25291 #[allow(unused_mut)]
25292 let mut start = start;
25293 #[cfg(feature = "wml-settings")]
25294 if let Some(ref val) = self.id {
25295 start.push_attribute(("r:id", val.as_str()));
25296 }
25297 #[cfg(feature = "wml-settings")]
25298 if let Some(ref val) = self.solution_i_d {
25299 start.push_attribute(("w:solutionID", val.as_str()));
25300 }
25301 #[cfg(feature = "extra-attrs")]
25302 for (key, value) in &self.extra_attrs {
25303 start.push_attribute((key.as_str(), value.as_str()));
25304 }
25305 start
25306 }
25307
25308 fn is_empty_element(&self) -> bool {
25309 true
25310 }
25311}
25312
25313impl ToXml for RunPropertiesDefault {
25314 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25315 #[cfg(feature = "extra-children")]
25316 let mut extra_iter = self.extra_children.iter().peekable();
25317 #[cfg(feature = "extra-children")]
25318 let mut emit_idx: usize = 0;
25319 #[cfg(feature = "extra-children")]
25320 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25321 extra_iter
25322 .next()
25323 .unwrap()
25324 .node
25325 .write_to(writer)
25326 .map_err(SerializeError::from)?;
25327 }
25328 if let Some(ref val) = self.r_pr {
25329 val.write_element("w:rPr", writer)?;
25330 }
25331 #[cfg(feature = "extra-children")]
25332 {
25333 emit_idx += 1;
25334 }
25335 #[cfg(feature = "extra-children")]
25336 for extra in extra_iter {
25337 extra.node.write_to(writer).map_err(SerializeError::from)?;
25338 }
25339 Ok(())
25340 }
25341
25342 fn is_empty_element(&self) -> bool {
25343 if self.r_pr.is_some() {
25344 return false;
25345 }
25346 #[cfg(feature = "extra-children")]
25347 if !self.extra_children.is_empty() {
25348 return false;
25349 }
25350 true
25351 }
25352}
25353
25354impl ToXml for ParagraphPropertiesDefault {
25355 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25356 #[cfg(feature = "extra-children")]
25357 let mut extra_iter = self.extra_children.iter().peekable();
25358 #[cfg(feature = "extra-children")]
25359 let mut emit_idx: usize = 0;
25360 #[cfg(feature = "extra-children")]
25361 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25362 extra_iter
25363 .next()
25364 .unwrap()
25365 .node
25366 .write_to(writer)
25367 .map_err(SerializeError::from)?;
25368 }
25369 if let Some(ref val) = self.p_pr {
25370 val.write_element("w:pPr", writer)?;
25371 }
25372 #[cfg(feature = "extra-children")]
25373 {
25374 emit_idx += 1;
25375 }
25376 #[cfg(feature = "extra-children")]
25377 for extra in extra_iter {
25378 extra.node.write_to(writer).map_err(SerializeError::from)?;
25379 }
25380 Ok(())
25381 }
25382
25383 fn is_empty_element(&self) -> bool {
25384 if self.p_pr.is_some() {
25385 return false;
25386 }
25387 #[cfg(feature = "extra-children")]
25388 if !self.extra_children.is_empty() {
25389 return false;
25390 }
25391 true
25392 }
25393}
25394
25395impl ToXml for DocumentDefaults {
25396 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25397 #[cfg(feature = "extra-children")]
25398 let mut extra_iter = self.extra_children.iter().peekable();
25399 #[cfg(feature = "extra-children")]
25400 let mut emit_idx: usize = 0;
25401 #[cfg(feature = "extra-children")]
25402 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25403 extra_iter
25404 .next()
25405 .unwrap()
25406 .node
25407 .write_to(writer)
25408 .map_err(SerializeError::from)?;
25409 }
25410 if let Some(ref val) = self.r_pr_default {
25411 val.write_element("w:rPrDefault", writer)?;
25412 }
25413 #[cfg(feature = "extra-children")]
25414 {
25415 emit_idx += 1;
25416 }
25417 #[cfg(feature = "extra-children")]
25418 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25419 extra_iter
25420 .next()
25421 .unwrap()
25422 .node
25423 .write_to(writer)
25424 .map_err(SerializeError::from)?;
25425 }
25426 if let Some(ref val) = self.p_pr_default {
25427 val.write_element("w:pPrDefault", writer)?;
25428 }
25429 #[cfg(feature = "extra-children")]
25430 {
25431 emit_idx += 1;
25432 }
25433 #[cfg(feature = "extra-children")]
25434 for extra in extra_iter {
25435 extra.node.write_to(writer).map_err(SerializeError::from)?;
25436 }
25437 Ok(())
25438 }
25439
25440 fn is_empty_element(&self) -> bool {
25441 if self.r_pr_default.is_some() {
25442 return false;
25443 }
25444 if self.p_pr_default.is_some() {
25445 return false;
25446 }
25447 #[cfg(feature = "extra-children")]
25448 if !self.extra_children.is_empty() {
25449 return false;
25450 }
25451 true
25452 }
25453}
25454
25455impl ToXml for CTColorSchemeMapping {
25456 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25457 #[allow(unused_mut)]
25458 let mut start = start;
25459 #[cfg(feature = "wml-settings")]
25460 if let Some(ref val) = self.bg1 {
25461 {
25462 let s = val.to_string();
25463 start.push_attribute(("w:bg1", s.as_str()));
25464 }
25465 }
25466 #[cfg(feature = "wml-settings")]
25467 if let Some(ref val) = self.t1 {
25468 {
25469 let s = val.to_string();
25470 start.push_attribute(("w:t1", s.as_str()));
25471 }
25472 }
25473 #[cfg(feature = "wml-settings")]
25474 if let Some(ref val) = self.bg2 {
25475 {
25476 let s = val.to_string();
25477 start.push_attribute(("w:bg2", s.as_str()));
25478 }
25479 }
25480 #[cfg(feature = "wml-settings")]
25481 if let Some(ref val) = self.t2 {
25482 {
25483 let s = val.to_string();
25484 start.push_attribute(("w:t2", s.as_str()));
25485 }
25486 }
25487 #[cfg(feature = "wml-settings")]
25488 if let Some(ref val) = self.accent1 {
25489 {
25490 let s = val.to_string();
25491 start.push_attribute(("w:accent1", s.as_str()));
25492 }
25493 }
25494 #[cfg(feature = "wml-settings")]
25495 if let Some(ref val) = self.accent2 {
25496 {
25497 let s = val.to_string();
25498 start.push_attribute(("w:accent2", s.as_str()));
25499 }
25500 }
25501 #[cfg(feature = "wml-settings")]
25502 if let Some(ref val) = self.accent3 {
25503 {
25504 let s = val.to_string();
25505 start.push_attribute(("w:accent3", s.as_str()));
25506 }
25507 }
25508 #[cfg(feature = "wml-settings")]
25509 if let Some(ref val) = self.accent4 {
25510 {
25511 let s = val.to_string();
25512 start.push_attribute(("w:accent4", s.as_str()));
25513 }
25514 }
25515 #[cfg(feature = "wml-settings")]
25516 if let Some(ref val) = self.accent5 {
25517 {
25518 let s = val.to_string();
25519 start.push_attribute(("w:accent5", s.as_str()));
25520 }
25521 }
25522 #[cfg(feature = "wml-settings")]
25523 if let Some(ref val) = self.accent6 {
25524 {
25525 let s = val.to_string();
25526 start.push_attribute(("w:accent6", s.as_str()));
25527 }
25528 }
25529 #[cfg(feature = "wml-settings")]
25530 if let Some(ref val) = self.hyperlink {
25531 {
25532 let s = val.to_string();
25533 start.push_attribute(("w:hyperlink", s.as_str()));
25534 }
25535 }
25536 #[cfg(feature = "wml-settings")]
25537 if let Some(ref val) = self.followed_hyperlink {
25538 {
25539 let s = val.to_string();
25540 start.push_attribute(("w:followedHyperlink", s.as_str()));
25541 }
25542 }
25543 #[cfg(feature = "extra-attrs")]
25544 for (key, value) in &self.extra_attrs {
25545 start.push_attribute((key.as_str(), value.as_str()));
25546 }
25547 start
25548 }
25549
25550 fn is_empty_element(&self) -> bool {
25551 true
25552 }
25553}
25554
25555impl ToXml for CTReadingModeInkLockDown {
25556 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25557 #[allow(unused_mut)]
25558 let mut start = start;
25559 #[cfg(feature = "wml-settings")]
25560 {
25561 let val = &self.actual_pg;
25562 {
25563 let s = val.to_string();
25564 start.push_attribute(("w:actualPg", s.as_str()));
25565 }
25566 }
25567 #[cfg(feature = "wml-settings")]
25568 {
25569 let val = &self.width;
25570 {
25571 let s = val.to_string();
25572 start.push_attribute(("w:w", s.as_str()));
25573 }
25574 }
25575 #[cfg(feature = "wml-settings")]
25576 {
25577 let val = &self.height;
25578 {
25579 let s = val.to_string();
25580 start.push_attribute(("w:h", s.as_str()));
25581 }
25582 }
25583 #[cfg(feature = "wml-settings")]
25584 {
25585 let val = &self.font_sz;
25586 {
25587 let s = val.to_string();
25588 start.push_attribute(("w:fontSz", s.as_str()));
25589 }
25590 }
25591 #[cfg(feature = "extra-attrs")]
25592 for (key, value) in &self.extra_attrs {
25593 start.push_attribute((key.as_str(), value.as_str()));
25594 }
25595 start
25596 }
25597
25598 fn is_empty_element(&self) -> bool {
25599 true
25600 }
25601}
25602
25603impl ToXml for CTWriteProtection {
25604 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25605 #[allow(unused_mut)]
25606 let mut start = start;
25607 #[cfg(feature = "wml-settings")]
25608 if let Some(ref val) = self.recommended {
25609 {
25610 let s = val.to_string();
25611 start.push_attribute(("w:recommended", s.as_str()));
25612 }
25613 }
25614 #[cfg(feature = "wml-settings")]
25615 if let Some(ref val) = self.algorithm_name {
25616 start.push_attribute(("w:algorithmName", val.as_str()));
25617 }
25618 #[cfg(feature = "wml-settings")]
25619 if let Some(ref val) = self.hash_value {
25620 {
25621 let b64 = encode_base64(val);
25622 start.push_attribute(("w:hashValue", b64.as_str()));
25623 }
25624 }
25625 #[cfg(feature = "wml-settings")]
25626 if let Some(ref val) = self.salt_value {
25627 {
25628 let b64 = encode_base64(val);
25629 start.push_attribute(("w:saltValue", b64.as_str()));
25630 }
25631 }
25632 #[cfg(feature = "wml-settings")]
25633 if let Some(ref val) = self.spin_count {
25634 {
25635 let s = val.to_string();
25636 start.push_attribute(("w:spinCount", s.as_str()));
25637 }
25638 }
25639 #[cfg(feature = "wml-settings")]
25640 if let Some(ref val) = self.crypt_provider_type {
25641 {
25642 let s = val.to_string();
25643 start.push_attribute(("w:cryptProviderType", s.as_str()));
25644 }
25645 }
25646 #[cfg(feature = "wml-settings")]
25647 if let Some(ref val) = self.crypt_algorithm_class {
25648 {
25649 let s = val.to_string();
25650 start.push_attribute(("w:cryptAlgorithmClass", s.as_str()));
25651 }
25652 }
25653 #[cfg(feature = "wml-settings")]
25654 if let Some(ref val) = self.crypt_algorithm_type {
25655 {
25656 let s = val.to_string();
25657 start.push_attribute(("w:cryptAlgorithmType", s.as_str()));
25658 }
25659 }
25660 #[cfg(feature = "wml-settings")]
25661 if let Some(ref val) = self.crypt_algorithm_sid {
25662 {
25663 let s = val.to_string();
25664 start.push_attribute(("w:cryptAlgorithmSid", s.as_str()));
25665 }
25666 }
25667 #[cfg(feature = "wml-settings")]
25668 if let Some(ref val) = self.crypt_spin_count {
25669 {
25670 let s = val.to_string();
25671 start.push_attribute(("w:cryptSpinCount", s.as_str()));
25672 }
25673 }
25674 #[cfg(feature = "wml-settings")]
25675 if let Some(ref val) = self.crypt_provider {
25676 start.push_attribute(("w:cryptProvider", val.as_str()));
25677 }
25678 #[cfg(feature = "wml-settings")]
25679 if let Some(ref val) = self.alg_id_ext {
25680 {
25681 let hex = encode_hex(val);
25682 start.push_attribute(("w:algIdExt", hex.as_str()));
25683 }
25684 }
25685 #[cfg(feature = "wml-settings")]
25686 if let Some(ref val) = self.alg_id_ext_source {
25687 start.push_attribute(("w:algIdExtSource", val.as_str()));
25688 }
25689 #[cfg(feature = "wml-settings")]
25690 if let Some(ref val) = self.crypt_provider_type_ext {
25691 {
25692 let hex = encode_hex(val);
25693 start.push_attribute(("w:cryptProviderTypeExt", hex.as_str()));
25694 }
25695 }
25696 #[cfg(feature = "wml-settings")]
25697 if let Some(ref val) = self.crypt_provider_type_ext_source {
25698 start.push_attribute(("w:cryptProviderTypeExtSource", val.as_str()));
25699 }
25700 #[cfg(feature = "wml-settings")]
25701 if let Some(ref val) = self.hash {
25702 {
25703 let b64 = encode_base64(val);
25704 start.push_attribute(("w:hash", b64.as_str()));
25705 }
25706 }
25707 #[cfg(feature = "wml-settings")]
25708 if let Some(ref val) = self.salt {
25709 {
25710 let b64 = encode_base64(val);
25711 start.push_attribute(("w:salt", b64.as_str()));
25712 }
25713 }
25714 #[cfg(feature = "extra-attrs")]
25715 for (key, value) in &self.extra_attrs {
25716 start.push_attribute((key.as_str(), value.as_str()));
25717 }
25718 start
25719 }
25720
25721 fn is_empty_element(&self) -> bool {
25722 true
25723 }
25724}
25725
25726impl ToXml for Settings {
25727 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25728 #[cfg(feature = "extra-children")]
25729 let mut extra_iter = self.extra_children.iter().peekable();
25730 #[cfg(feature = "extra-children")]
25731 let mut emit_idx: usize = 0;
25732 #[cfg(feature = "extra-children")]
25733 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25734 extra_iter
25735 .next()
25736 .unwrap()
25737 .node
25738 .write_to(writer)
25739 .map_err(SerializeError::from)?;
25740 }
25741 #[cfg(feature = "wml-settings")]
25742 if let Some(ref val) = self.write_protection {
25743 val.write_element("w:writeProtection", writer)?;
25744 }
25745 #[cfg(feature = "extra-children")]
25746 {
25747 emit_idx += 1;
25748 }
25749 #[cfg(feature = "extra-children")]
25750 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25751 extra_iter
25752 .next()
25753 .unwrap()
25754 .node
25755 .write_to(writer)
25756 .map_err(SerializeError::from)?;
25757 }
25758 #[cfg(feature = "wml-settings")]
25759 if let Some(ref val) = self.view {
25760 val.write_element("w:view", writer)?;
25761 }
25762 #[cfg(feature = "extra-children")]
25763 {
25764 emit_idx += 1;
25765 }
25766 #[cfg(feature = "extra-children")]
25767 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25768 extra_iter
25769 .next()
25770 .unwrap()
25771 .node
25772 .write_to(writer)
25773 .map_err(SerializeError::from)?;
25774 }
25775 #[cfg(feature = "wml-settings")]
25776 if let Some(ref val) = self.zoom {
25777 val.write_element("w:zoom", writer)?;
25778 }
25779 #[cfg(feature = "extra-children")]
25780 {
25781 emit_idx += 1;
25782 }
25783 #[cfg(feature = "extra-children")]
25784 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25785 extra_iter
25786 .next()
25787 .unwrap()
25788 .node
25789 .write_to(writer)
25790 .map_err(SerializeError::from)?;
25791 }
25792 #[cfg(feature = "wml-settings")]
25793 if let Some(ref val) = self.remove_personal_information {
25794 val.write_element("w:removePersonalInformation", writer)?;
25795 }
25796 #[cfg(feature = "extra-children")]
25797 {
25798 emit_idx += 1;
25799 }
25800 #[cfg(feature = "extra-children")]
25801 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25802 extra_iter
25803 .next()
25804 .unwrap()
25805 .node
25806 .write_to(writer)
25807 .map_err(SerializeError::from)?;
25808 }
25809 #[cfg(feature = "wml-settings")]
25810 if let Some(ref val) = self.remove_date_and_time {
25811 val.write_element("w:removeDateAndTime", writer)?;
25812 }
25813 #[cfg(feature = "extra-children")]
25814 {
25815 emit_idx += 1;
25816 }
25817 #[cfg(feature = "extra-children")]
25818 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25819 extra_iter
25820 .next()
25821 .unwrap()
25822 .node
25823 .write_to(writer)
25824 .map_err(SerializeError::from)?;
25825 }
25826 #[cfg(feature = "wml-settings")]
25827 if let Some(ref val) = self.do_not_display_page_boundaries {
25828 val.write_element("w:doNotDisplayPageBoundaries", writer)?;
25829 }
25830 #[cfg(feature = "extra-children")]
25831 {
25832 emit_idx += 1;
25833 }
25834 #[cfg(feature = "extra-children")]
25835 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25836 extra_iter
25837 .next()
25838 .unwrap()
25839 .node
25840 .write_to(writer)
25841 .map_err(SerializeError::from)?;
25842 }
25843 #[cfg(feature = "wml-settings")]
25844 if let Some(ref val) = self.display_background_shape {
25845 val.write_element("w:displayBackgroundShape", writer)?;
25846 }
25847 #[cfg(feature = "extra-children")]
25848 {
25849 emit_idx += 1;
25850 }
25851 #[cfg(feature = "extra-children")]
25852 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25853 extra_iter
25854 .next()
25855 .unwrap()
25856 .node
25857 .write_to(writer)
25858 .map_err(SerializeError::from)?;
25859 }
25860 #[cfg(feature = "wml-settings")]
25861 if let Some(ref val) = self.print_post_script_over_text {
25862 val.write_element("w:printPostScriptOverText", writer)?;
25863 }
25864 #[cfg(feature = "extra-children")]
25865 {
25866 emit_idx += 1;
25867 }
25868 #[cfg(feature = "extra-children")]
25869 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25870 extra_iter
25871 .next()
25872 .unwrap()
25873 .node
25874 .write_to(writer)
25875 .map_err(SerializeError::from)?;
25876 }
25877 #[cfg(feature = "wml-settings")]
25878 if let Some(ref val) = self.print_fractional_character_width {
25879 val.write_element("w:printFractionalCharacterWidth", writer)?;
25880 }
25881 #[cfg(feature = "extra-children")]
25882 {
25883 emit_idx += 1;
25884 }
25885 #[cfg(feature = "extra-children")]
25886 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25887 extra_iter
25888 .next()
25889 .unwrap()
25890 .node
25891 .write_to(writer)
25892 .map_err(SerializeError::from)?;
25893 }
25894 #[cfg(feature = "wml-settings")]
25895 if let Some(ref val) = self.print_forms_data {
25896 val.write_element("w:printFormsData", writer)?;
25897 }
25898 #[cfg(feature = "extra-children")]
25899 {
25900 emit_idx += 1;
25901 }
25902 #[cfg(feature = "extra-children")]
25903 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25904 extra_iter
25905 .next()
25906 .unwrap()
25907 .node
25908 .write_to(writer)
25909 .map_err(SerializeError::from)?;
25910 }
25911 #[cfg(feature = "wml-settings")]
25912 if let Some(ref val) = self.embed_true_type_fonts {
25913 val.write_element("w:embedTrueTypeFonts", writer)?;
25914 }
25915 #[cfg(feature = "extra-children")]
25916 {
25917 emit_idx += 1;
25918 }
25919 #[cfg(feature = "extra-children")]
25920 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25921 extra_iter
25922 .next()
25923 .unwrap()
25924 .node
25925 .write_to(writer)
25926 .map_err(SerializeError::from)?;
25927 }
25928 #[cfg(feature = "wml-settings")]
25929 if let Some(ref val) = self.embed_system_fonts {
25930 val.write_element("w:embedSystemFonts", writer)?;
25931 }
25932 #[cfg(feature = "extra-children")]
25933 {
25934 emit_idx += 1;
25935 }
25936 #[cfg(feature = "extra-children")]
25937 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25938 extra_iter
25939 .next()
25940 .unwrap()
25941 .node
25942 .write_to(writer)
25943 .map_err(SerializeError::from)?;
25944 }
25945 #[cfg(feature = "wml-settings")]
25946 if let Some(ref val) = self.save_subset_fonts {
25947 val.write_element("w:saveSubsetFonts", writer)?;
25948 }
25949 #[cfg(feature = "extra-children")]
25950 {
25951 emit_idx += 1;
25952 }
25953 #[cfg(feature = "extra-children")]
25954 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25955 extra_iter
25956 .next()
25957 .unwrap()
25958 .node
25959 .write_to(writer)
25960 .map_err(SerializeError::from)?;
25961 }
25962 #[cfg(feature = "wml-settings")]
25963 if let Some(ref val) = self.save_forms_data {
25964 val.write_element("w:saveFormsData", writer)?;
25965 }
25966 #[cfg(feature = "extra-children")]
25967 {
25968 emit_idx += 1;
25969 }
25970 #[cfg(feature = "extra-children")]
25971 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25972 extra_iter
25973 .next()
25974 .unwrap()
25975 .node
25976 .write_to(writer)
25977 .map_err(SerializeError::from)?;
25978 }
25979 #[cfg(feature = "wml-settings")]
25980 if let Some(ref val) = self.mirror_margins {
25981 val.write_element("w:mirrorMargins", writer)?;
25982 }
25983 #[cfg(feature = "extra-children")]
25984 {
25985 emit_idx += 1;
25986 }
25987 #[cfg(feature = "extra-children")]
25988 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25989 extra_iter
25990 .next()
25991 .unwrap()
25992 .node
25993 .write_to(writer)
25994 .map_err(SerializeError::from)?;
25995 }
25996 #[cfg(feature = "wml-settings")]
25997 if let Some(ref val) = self.align_borders_and_edges {
25998 val.write_element("w:alignBordersAndEdges", writer)?;
25999 }
26000 #[cfg(feature = "extra-children")]
26001 {
26002 emit_idx += 1;
26003 }
26004 #[cfg(feature = "extra-children")]
26005 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26006 extra_iter
26007 .next()
26008 .unwrap()
26009 .node
26010 .write_to(writer)
26011 .map_err(SerializeError::from)?;
26012 }
26013 #[cfg(feature = "wml-settings")]
26014 if let Some(ref val) = self.borders_do_not_surround_header {
26015 val.write_element("w:bordersDoNotSurroundHeader", writer)?;
26016 }
26017 #[cfg(feature = "extra-children")]
26018 {
26019 emit_idx += 1;
26020 }
26021 #[cfg(feature = "extra-children")]
26022 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26023 extra_iter
26024 .next()
26025 .unwrap()
26026 .node
26027 .write_to(writer)
26028 .map_err(SerializeError::from)?;
26029 }
26030 #[cfg(feature = "wml-settings")]
26031 if let Some(ref val) = self.borders_do_not_surround_footer {
26032 val.write_element("w:bordersDoNotSurroundFooter", writer)?;
26033 }
26034 #[cfg(feature = "extra-children")]
26035 {
26036 emit_idx += 1;
26037 }
26038 #[cfg(feature = "extra-children")]
26039 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26040 extra_iter
26041 .next()
26042 .unwrap()
26043 .node
26044 .write_to(writer)
26045 .map_err(SerializeError::from)?;
26046 }
26047 #[cfg(feature = "wml-settings")]
26048 if let Some(ref val) = self.gutter_at_top {
26049 val.write_element("w:gutterAtTop", writer)?;
26050 }
26051 #[cfg(feature = "extra-children")]
26052 {
26053 emit_idx += 1;
26054 }
26055 #[cfg(feature = "extra-children")]
26056 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26057 extra_iter
26058 .next()
26059 .unwrap()
26060 .node
26061 .write_to(writer)
26062 .map_err(SerializeError::from)?;
26063 }
26064 #[cfg(feature = "wml-settings")]
26065 if let Some(ref val) = self.hide_spelling_errors {
26066 val.write_element("w:hideSpellingErrors", writer)?;
26067 }
26068 #[cfg(feature = "extra-children")]
26069 {
26070 emit_idx += 1;
26071 }
26072 #[cfg(feature = "extra-children")]
26073 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26074 extra_iter
26075 .next()
26076 .unwrap()
26077 .node
26078 .write_to(writer)
26079 .map_err(SerializeError::from)?;
26080 }
26081 #[cfg(feature = "wml-settings")]
26082 if let Some(ref val) = self.hide_grammatical_errors {
26083 val.write_element("w:hideGrammaticalErrors", writer)?;
26084 }
26085 #[cfg(feature = "extra-children")]
26086 {
26087 emit_idx += 1;
26088 }
26089 #[cfg(feature = "wml-settings")]
26090 for item in &self.active_writing_style {
26091 #[cfg(feature = "extra-children")]
26092 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26093 extra_iter
26094 .next()
26095 .unwrap()
26096 .node
26097 .write_to(writer)
26098 .map_err(SerializeError::from)?;
26099 }
26100 item.write_element("w:activeWritingStyle", writer)?;
26101 #[cfg(feature = "extra-children")]
26102 {
26103 emit_idx += 1;
26104 }
26105 }
26106 #[cfg(feature = "extra-children")]
26107 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26108 extra_iter
26109 .next()
26110 .unwrap()
26111 .node
26112 .write_to(writer)
26113 .map_err(SerializeError::from)?;
26114 }
26115 #[cfg(feature = "wml-settings")]
26116 if let Some(ref val) = self.proof_state {
26117 val.write_element("w:proofState", writer)?;
26118 }
26119 #[cfg(feature = "extra-children")]
26120 {
26121 emit_idx += 1;
26122 }
26123 #[cfg(feature = "extra-children")]
26124 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26125 extra_iter
26126 .next()
26127 .unwrap()
26128 .node
26129 .write_to(writer)
26130 .map_err(SerializeError::from)?;
26131 }
26132 #[cfg(feature = "wml-settings")]
26133 if let Some(ref val) = self.forms_design {
26134 val.write_element("w:formsDesign", writer)?;
26135 }
26136 #[cfg(feature = "extra-children")]
26137 {
26138 emit_idx += 1;
26139 }
26140 #[cfg(feature = "extra-children")]
26141 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26142 extra_iter
26143 .next()
26144 .unwrap()
26145 .node
26146 .write_to(writer)
26147 .map_err(SerializeError::from)?;
26148 }
26149 #[cfg(feature = "wml-settings")]
26150 if let Some(ref val) = self.attached_template {
26151 val.write_element("w:attachedTemplate", writer)?;
26152 }
26153 #[cfg(feature = "extra-children")]
26154 {
26155 emit_idx += 1;
26156 }
26157 #[cfg(feature = "extra-children")]
26158 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26159 extra_iter
26160 .next()
26161 .unwrap()
26162 .node
26163 .write_to(writer)
26164 .map_err(SerializeError::from)?;
26165 }
26166 #[cfg(feature = "wml-settings")]
26167 if let Some(ref val) = self.link_styles {
26168 val.write_element("w:linkStyles", writer)?;
26169 }
26170 #[cfg(feature = "extra-children")]
26171 {
26172 emit_idx += 1;
26173 }
26174 #[cfg(feature = "extra-children")]
26175 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26176 extra_iter
26177 .next()
26178 .unwrap()
26179 .node
26180 .write_to(writer)
26181 .map_err(SerializeError::from)?;
26182 }
26183 #[cfg(feature = "wml-settings")]
26184 if let Some(ref val) = self.style_pane_format_filter {
26185 val.write_element("w:stylePaneFormatFilter", writer)?;
26186 }
26187 #[cfg(feature = "extra-children")]
26188 {
26189 emit_idx += 1;
26190 }
26191 #[cfg(feature = "extra-children")]
26192 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26193 extra_iter
26194 .next()
26195 .unwrap()
26196 .node
26197 .write_to(writer)
26198 .map_err(SerializeError::from)?;
26199 }
26200 #[cfg(feature = "wml-settings")]
26201 if let Some(ref val) = self.style_pane_sort_method {
26202 val.write_element("w:stylePaneSortMethod", writer)?;
26203 }
26204 #[cfg(feature = "extra-children")]
26205 {
26206 emit_idx += 1;
26207 }
26208 #[cfg(feature = "extra-children")]
26209 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26210 extra_iter
26211 .next()
26212 .unwrap()
26213 .node
26214 .write_to(writer)
26215 .map_err(SerializeError::from)?;
26216 }
26217 #[cfg(feature = "wml-settings")]
26218 if let Some(ref val) = self.document_type {
26219 val.write_element("w:documentType", writer)?;
26220 }
26221 #[cfg(feature = "extra-children")]
26222 {
26223 emit_idx += 1;
26224 }
26225 #[cfg(feature = "extra-children")]
26226 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26227 extra_iter
26228 .next()
26229 .unwrap()
26230 .node
26231 .write_to(writer)
26232 .map_err(SerializeError::from)?;
26233 }
26234 #[cfg(feature = "wml-settings")]
26235 if let Some(ref val) = self.mail_merge {
26236 val.write_element("w:mailMerge", writer)?;
26237 }
26238 #[cfg(feature = "extra-children")]
26239 {
26240 emit_idx += 1;
26241 }
26242 #[cfg(feature = "extra-children")]
26243 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26244 extra_iter
26245 .next()
26246 .unwrap()
26247 .node
26248 .write_to(writer)
26249 .map_err(SerializeError::from)?;
26250 }
26251 #[cfg(feature = "wml-settings")]
26252 if let Some(ref val) = self.revision_view {
26253 val.write_element("w:revisionView", writer)?;
26254 }
26255 #[cfg(feature = "extra-children")]
26256 {
26257 emit_idx += 1;
26258 }
26259 #[cfg(feature = "extra-children")]
26260 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26261 extra_iter
26262 .next()
26263 .unwrap()
26264 .node
26265 .write_to(writer)
26266 .map_err(SerializeError::from)?;
26267 }
26268 #[cfg(feature = "wml-settings")]
26269 if let Some(ref val) = self.track_revisions {
26270 val.write_element("w:trackRevisions", writer)?;
26271 }
26272 #[cfg(feature = "extra-children")]
26273 {
26274 emit_idx += 1;
26275 }
26276 #[cfg(feature = "extra-children")]
26277 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26278 extra_iter
26279 .next()
26280 .unwrap()
26281 .node
26282 .write_to(writer)
26283 .map_err(SerializeError::from)?;
26284 }
26285 #[cfg(feature = "wml-track-changes")]
26286 if let Some(ref val) = self.do_not_track_moves {
26287 val.write_element("w:doNotTrackMoves", writer)?;
26288 }
26289 #[cfg(feature = "extra-children")]
26290 {
26291 emit_idx += 1;
26292 }
26293 #[cfg(feature = "extra-children")]
26294 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26295 extra_iter
26296 .next()
26297 .unwrap()
26298 .node
26299 .write_to(writer)
26300 .map_err(SerializeError::from)?;
26301 }
26302 #[cfg(feature = "wml-track-changes")]
26303 if let Some(ref val) = self.do_not_track_formatting {
26304 val.write_element("w:doNotTrackFormatting", writer)?;
26305 }
26306 #[cfg(feature = "extra-children")]
26307 {
26308 emit_idx += 1;
26309 }
26310 #[cfg(feature = "extra-children")]
26311 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26312 extra_iter
26313 .next()
26314 .unwrap()
26315 .node
26316 .write_to(writer)
26317 .map_err(SerializeError::from)?;
26318 }
26319 #[cfg(feature = "wml-settings")]
26320 if let Some(ref val) = self.document_protection {
26321 val.write_element("w:documentProtection", writer)?;
26322 }
26323 #[cfg(feature = "extra-children")]
26324 {
26325 emit_idx += 1;
26326 }
26327 #[cfg(feature = "extra-children")]
26328 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26329 extra_iter
26330 .next()
26331 .unwrap()
26332 .node
26333 .write_to(writer)
26334 .map_err(SerializeError::from)?;
26335 }
26336 #[cfg(feature = "wml-settings")]
26337 if let Some(ref val) = self.auto_format_override {
26338 val.write_element("w:autoFormatOverride", writer)?;
26339 }
26340 #[cfg(feature = "extra-children")]
26341 {
26342 emit_idx += 1;
26343 }
26344 #[cfg(feature = "extra-children")]
26345 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26346 extra_iter
26347 .next()
26348 .unwrap()
26349 .node
26350 .write_to(writer)
26351 .map_err(SerializeError::from)?;
26352 }
26353 #[cfg(feature = "wml-settings")]
26354 if let Some(ref val) = self.style_lock_theme {
26355 val.write_element("w:styleLockTheme", writer)?;
26356 }
26357 #[cfg(feature = "extra-children")]
26358 {
26359 emit_idx += 1;
26360 }
26361 #[cfg(feature = "extra-children")]
26362 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26363 extra_iter
26364 .next()
26365 .unwrap()
26366 .node
26367 .write_to(writer)
26368 .map_err(SerializeError::from)?;
26369 }
26370 #[cfg(feature = "wml-settings")]
26371 if let Some(ref val) = self.style_lock_q_f_set {
26372 val.write_element("w:styleLockQFSet", writer)?;
26373 }
26374 #[cfg(feature = "extra-children")]
26375 {
26376 emit_idx += 1;
26377 }
26378 #[cfg(feature = "extra-children")]
26379 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26380 extra_iter
26381 .next()
26382 .unwrap()
26383 .node
26384 .write_to(writer)
26385 .map_err(SerializeError::from)?;
26386 }
26387 #[cfg(feature = "wml-settings")]
26388 if let Some(ref val) = self.default_tab_stop {
26389 val.write_element("w:defaultTabStop", writer)?;
26390 }
26391 #[cfg(feature = "extra-children")]
26392 {
26393 emit_idx += 1;
26394 }
26395 #[cfg(feature = "extra-children")]
26396 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26397 extra_iter
26398 .next()
26399 .unwrap()
26400 .node
26401 .write_to(writer)
26402 .map_err(SerializeError::from)?;
26403 }
26404 #[cfg(feature = "wml-settings")]
26405 if let Some(ref val) = self.auto_hyphenation {
26406 val.write_element("w:autoHyphenation", writer)?;
26407 }
26408 #[cfg(feature = "extra-children")]
26409 {
26410 emit_idx += 1;
26411 }
26412 #[cfg(feature = "extra-children")]
26413 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26414 extra_iter
26415 .next()
26416 .unwrap()
26417 .node
26418 .write_to(writer)
26419 .map_err(SerializeError::from)?;
26420 }
26421 #[cfg(feature = "wml-settings")]
26422 if let Some(ref val) = self.consecutive_hyphen_limit {
26423 val.write_element("w:consecutiveHyphenLimit", writer)?;
26424 }
26425 #[cfg(feature = "extra-children")]
26426 {
26427 emit_idx += 1;
26428 }
26429 #[cfg(feature = "extra-children")]
26430 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26431 extra_iter
26432 .next()
26433 .unwrap()
26434 .node
26435 .write_to(writer)
26436 .map_err(SerializeError::from)?;
26437 }
26438 #[cfg(feature = "wml-settings")]
26439 if let Some(ref val) = self.hyphenation_zone {
26440 val.write_element("w:hyphenationZone", writer)?;
26441 }
26442 #[cfg(feature = "extra-children")]
26443 {
26444 emit_idx += 1;
26445 }
26446 #[cfg(feature = "extra-children")]
26447 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26448 extra_iter
26449 .next()
26450 .unwrap()
26451 .node
26452 .write_to(writer)
26453 .map_err(SerializeError::from)?;
26454 }
26455 #[cfg(feature = "wml-settings")]
26456 if let Some(ref val) = self.do_not_hyphenate_caps {
26457 val.write_element("w:doNotHyphenateCaps", writer)?;
26458 }
26459 #[cfg(feature = "extra-children")]
26460 {
26461 emit_idx += 1;
26462 }
26463 #[cfg(feature = "extra-children")]
26464 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26465 extra_iter
26466 .next()
26467 .unwrap()
26468 .node
26469 .write_to(writer)
26470 .map_err(SerializeError::from)?;
26471 }
26472 #[cfg(feature = "wml-settings")]
26473 if let Some(ref val) = self.show_envelope {
26474 val.write_element("w:showEnvelope", writer)?;
26475 }
26476 #[cfg(feature = "extra-children")]
26477 {
26478 emit_idx += 1;
26479 }
26480 #[cfg(feature = "extra-children")]
26481 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26482 extra_iter
26483 .next()
26484 .unwrap()
26485 .node
26486 .write_to(writer)
26487 .map_err(SerializeError::from)?;
26488 }
26489 #[cfg(feature = "wml-settings")]
26490 if let Some(ref val) = self.summary_length {
26491 val.write_element("w:summaryLength", writer)?;
26492 }
26493 #[cfg(feature = "extra-children")]
26494 {
26495 emit_idx += 1;
26496 }
26497 #[cfg(feature = "extra-children")]
26498 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26499 extra_iter
26500 .next()
26501 .unwrap()
26502 .node
26503 .write_to(writer)
26504 .map_err(SerializeError::from)?;
26505 }
26506 #[cfg(feature = "wml-settings")]
26507 if let Some(ref val) = self.click_and_type_style {
26508 val.write_element("w:clickAndTypeStyle", writer)?;
26509 }
26510 #[cfg(feature = "extra-children")]
26511 {
26512 emit_idx += 1;
26513 }
26514 #[cfg(feature = "extra-children")]
26515 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26516 extra_iter
26517 .next()
26518 .unwrap()
26519 .node
26520 .write_to(writer)
26521 .map_err(SerializeError::from)?;
26522 }
26523 #[cfg(feature = "wml-settings")]
26524 if let Some(ref val) = self.default_table_style {
26525 val.write_element("w:defaultTableStyle", writer)?;
26526 }
26527 #[cfg(feature = "extra-children")]
26528 {
26529 emit_idx += 1;
26530 }
26531 #[cfg(feature = "extra-children")]
26532 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26533 extra_iter
26534 .next()
26535 .unwrap()
26536 .node
26537 .write_to(writer)
26538 .map_err(SerializeError::from)?;
26539 }
26540 #[cfg(feature = "wml-settings")]
26541 if let Some(ref val) = self.even_and_odd_headers {
26542 val.write_element("w:evenAndOddHeaders", writer)?;
26543 }
26544 #[cfg(feature = "extra-children")]
26545 {
26546 emit_idx += 1;
26547 }
26548 #[cfg(feature = "extra-children")]
26549 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26550 extra_iter
26551 .next()
26552 .unwrap()
26553 .node
26554 .write_to(writer)
26555 .map_err(SerializeError::from)?;
26556 }
26557 #[cfg(feature = "wml-settings")]
26558 if let Some(ref val) = self.book_fold_rev_printing {
26559 val.write_element("w:bookFoldRevPrinting", writer)?;
26560 }
26561 #[cfg(feature = "extra-children")]
26562 {
26563 emit_idx += 1;
26564 }
26565 #[cfg(feature = "extra-children")]
26566 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26567 extra_iter
26568 .next()
26569 .unwrap()
26570 .node
26571 .write_to(writer)
26572 .map_err(SerializeError::from)?;
26573 }
26574 #[cfg(feature = "wml-settings")]
26575 if let Some(ref val) = self.book_fold_printing {
26576 val.write_element("w:bookFoldPrinting", writer)?;
26577 }
26578 #[cfg(feature = "extra-children")]
26579 {
26580 emit_idx += 1;
26581 }
26582 #[cfg(feature = "extra-children")]
26583 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26584 extra_iter
26585 .next()
26586 .unwrap()
26587 .node
26588 .write_to(writer)
26589 .map_err(SerializeError::from)?;
26590 }
26591 #[cfg(feature = "wml-settings")]
26592 if let Some(ref val) = self.book_fold_printing_sheets {
26593 val.write_element("w:bookFoldPrintingSheets", writer)?;
26594 }
26595 #[cfg(feature = "extra-children")]
26596 {
26597 emit_idx += 1;
26598 }
26599 #[cfg(feature = "extra-children")]
26600 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26601 extra_iter
26602 .next()
26603 .unwrap()
26604 .node
26605 .write_to(writer)
26606 .map_err(SerializeError::from)?;
26607 }
26608 #[cfg(feature = "wml-settings")]
26609 if let Some(ref val) = self.drawing_grid_horizontal_spacing {
26610 val.write_element("w:drawingGridHorizontalSpacing", writer)?;
26611 }
26612 #[cfg(feature = "extra-children")]
26613 {
26614 emit_idx += 1;
26615 }
26616 #[cfg(feature = "extra-children")]
26617 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26618 extra_iter
26619 .next()
26620 .unwrap()
26621 .node
26622 .write_to(writer)
26623 .map_err(SerializeError::from)?;
26624 }
26625 #[cfg(feature = "wml-settings")]
26626 if let Some(ref val) = self.drawing_grid_vertical_spacing {
26627 val.write_element("w:drawingGridVerticalSpacing", writer)?;
26628 }
26629 #[cfg(feature = "extra-children")]
26630 {
26631 emit_idx += 1;
26632 }
26633 #[cfg(feature = "extra-children")]
26634 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26635 extra_iter
26636 .next()
26637 .unwrap()
26638 .node
26639 .write_to(writer)
26640 .map_err(SerializeError::from)?;
26641 }
26642 #[cfg(feature = "wml-settings")]
26643 if let Some(ref val) = self.display_horizontal_drawing_grid_every {
26644 val.write_element("w:displayHorizontalDrawingGridEvery", writer)?;
26645 }
26646 #[cfg(feature = "extra-children")]
26647 {
26648 emit_idx += 1;
26649 }
26650 #[cfg(feature = "extra-children")]
26651 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26652 extra_iter
26653 .next()
26654 .unwrap()
26655 .node
26656 .write_to(writer)
26657 .map_err(SerializeError::from)?;
26658 }
26659 #[cfg(feature = "wml-settings")]
26660 if let Some(ref val) = self.display_vertical_drawing_grid_every {
26661 val.write_element("w:displayVerticalDrawingGridEvery", writer)?;
26662 }
26663 #[cfg(feature = "extra-children")]
26664 {
26665 emit_idx += 1;
26666 }
26667 #[cfg(feature = "extra-children")]
26668 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26669 extra_iter
26670 .next()
26671 .unwrap()
26672 .node
26673 .write_to(writer)
26674 .map_err(SerializeError::from)?;
26675 }
26676 #[cfg(feature = "wml-settings")]
26677 if let Some(ref val) = self.do_not_use_margins_for_drawing_grid_origin {
26678 val.write_element("w:doNotUseMarginsForDrawingGridOrigin", writer)?;
26679 }
26680 #[cfg(feature = "extra-children")]
26681 {
26682 emit_idx += 1;
26683 }
26684 #[cfg(feature = "extra-children")]
26685 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26686 extra_iter
26687 .next()
26688 .unwrap()
26689 .node
26690 .write_to(writer)
26691 .map_err(SerializeError::from)?;
26692 }
26693 #[cfg(feature = "wml-settings")]
26694 if let Some(ref val) = self.drawing_grid_horizontal_origin {
26695 val.write_element("w:drawingGridHorizontalOrigin", writer)?;
26696 }
26697 #[cfg(feature = "extra-children")]
26698 {
26699 emit_idx += 1;
26700 }
26701 #[cfg(feature = "extra-children")]
26702 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26703 extra_iter
26704 .next()
26705 .unwrap()
26706 .node
26707 .write_to(writer)
26708 .map_err(SerializeError::from)?;
26709 }
26710 #[cfg(feature = "wml-settings")]
26711 if let Some(ref val) = self.drawing_grid_vertical_origin {
26712 val.write_element("w:drawingGridVerticalOrigin", writer)?;
26713 }
26714 #[cfg(feature = "extra-children")]
26715 {
26716 emit_idx += 1;
26717 }
26718 #[cfg(feature = "extra-children")]
26719 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26720 extra_iter
26721 .next()
26722 .unwrap()
26723 .node
26724 .write_to(writer)
26725 .map_err(SerializeError::from)?;
26726 }
26727 #[cfg(feature = "wml-settings")]
26728 if let Some(ref val) = self.do_not_shade_form_data {
26729 val.write_element("w:doNotShadeFormData", writer)?;
26730 }
26731 #[cfg(feature = "extra-children")]
26732 {
26733 emit_idx += 1;
26734 }
26735 #[cfg(feature = "extra-children")]
26736 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26737 extra_iter
26738 .next()
26739 .unwrap()
26740 .node
26741 .write_to(writer)
26742 .map_err(SerializeError::from)?;
26743 }
26744 #[cfg(feature = "wml-settings")]
26745 if let Some(ref val) = self.no_punctuation_kerning {
26746 val.write_element("w:noPunctuationKerning", writer)?;
26747 }
26748 #[cfg(feature = "extra-children")]
26749 {
26750 emit_idx += 1;
26751 }
26752 #[cfg(feature = "extra-children")]
26753 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26754 extra_iter
26755 .next()
26756 .unwrap()
26757 .node
26758 .write_to(writer)
26759 .map_err(SerializeError::from)?;
26760 }
26761 #[cfg(feature = "wml-settings")]
26762 if let Some(ref val) = self.character_spacing_control {
26763 val.write_element("w:characterSpacingControl", writer)?;
26764 }
26765 #[cfg(feature = "extra-children")]
26766 {
26767 emit_idx += 1;
26768 }
26769 #[cfg(feature = "extra-children")]
26770 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26771 extra_iter
26772 .next()
26773 .unwrap()
26774 .node
26775 .write_to(writer)
26776 .map_err(SerializeError::from)?;
26777 }
26778 #[cfg(feature = "wml-settings")]
26779 if let Some(ref val) = self.print_two_on_one {
26780 val.write_element("w:printTwoOnOne", writer)?;
26781 }
26782 #[cfg(feature = "extra-children")]
26783 {
26784 emit_idx += 1;
26785 }
26786 #[cfg(feature = "extra-children")]
26787 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26788 extra_iter
26789 .next()
26790 .unwrap()
26791 .node
26792 .write_to(writer)
26793 .map_err(SerializeError::from)?;
26794 }
26795 #[cfg(feature = "wml-settings")]
26796 if let Some(ref val) = self.strict_first_and_last_chars {
26797 val.write_element("w:strictFirstAndLastChars", writer)?;
26798 }
26799 #[cfg(feature = "extra-children")]
26800 {
26801 emit_idx += 1;
26802 }
26803 #[cfg(feature = "extra-children")]
26804 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26805 extra_iter
26806 .next()
26807 .unwrap()
26808 .node
26809 .write_to(writer)
26810 .map_err(SerializeError::from)?;
26811 }
26812 #[cfg(feature = "wml-settings")]
26813 if let Some(ref val) = self.no_line_breaks_after {
26814 val.write_element("w:noLineBreaksAfter", writer)?;
26815 }
26816 #[cfg(feature = "extra-children")]
26817 {
26818 emit_idx += 1;
26819 }
26820 #[cfg(feature = "extra-children")]
26821 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26822 extra_iter
26823 .next()
26824 .unwrap()
26825 .node
26826 .write_to(writer)
26827 .map_err(SerializeError::from)?;
26828 }
26829 #[cfg(feature = "wml-settings")]
26830 if let Some(ref val) = self.no_line_breaks_before {
26831 val.write_element("w:noLineBreaksBefore", writer)?;
26832 }
26833 #[cfg(feature = "extra-children")]
26834 {
26835 emit_idx += 1;
26836 }
26837 #[cfg(feature = "extra-children")]
26838 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26839 extra_iter
26840 .next()
26841 .unwrap()
26842 .node
26843 .write_to(writer)
26844 .map_err(SerializeError::from)?;
26845 }
26846 #[cfg(feature = "wml-settings")]
26847 if let Some(ref val) = self.save_preview_picture {
26848 val.write_element("w:savePreviewPicture", writer)?;
26849 }
26850 #[cfg(feature = "extra-children")]
26851 {
26852 emit_idx += 1;
26853 }
26854 #[cfg(feature = "extra-children")]
26855 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26856 extra_iter
26857 .next()
26858 .unwrap()
26859 .node
26860 .write_to(writer)
26861 .map_err(SerializeError::from)?;
26862 }
26863 #[cfg(feature = "wml-settings")]
26864 if let Some(ref val) = self.do_not_validate_against_schema {
26865 val.write_element("w:doNotValidateAgainstSchema", writer)?;
26866 }
26867 #[cfg(feature = "extra-children")]
26868 {
26869 emit_idx += 1;
26870 }
26871 #[cfg(feature = "extra-children")]
26872 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26873 extra_iter
26874 .next()
26875 .unwrap()
26876 .node
26877 .write_to(writer)
26878 .map_err(SerializeError::from)?;
26879 }
26880 #[cfg(feature = "wml-settings")]
26881 if let Some(ref val) = self.save_invalid_xml {
26882 val.write_element("w:saveInvalidXml", writer)?;
26883 }
26884 #[cfg(feature = "extra-children")]
26885 {
26886 emit_idx += 1;
26887 }
26888 #[cfg(feature = "extra-children")]
26889 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26890 extra_iter
26891 .next()
26892 .unwrap()
26893 .node
26894 .write_to(writer)
26895 .map_err(SerializeError::from)?;
26896 }
26897 #[cfg(feature = "wml-settings")]
26898 if let Some(ref val) = self.ignore_mixed_content {
26899 val.write_element("w:ignoreMixedContent", writer)?;
26900 }
26901 #[cfg(feature = "extra-children")]
26902 {
26903 emit_idx += 1;
26904 }
26905 #[cfg(feature = "extra-children")]
26906 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26907 extra_iter
26908 .next()
26909 .unwrap()
26910 .node
26911 .write_to(writer)
26912 .map_err(SerializeError::from)?;
26913 }
26914 #[cfg(feature = "wml-settings")]
26915 if let Some(ref val) = self.always_show_placeholder_text {
26916 val.write_element("w:alwaysShowPlaceholderText", writer)?;
26917 }
26918 #[cfg(feature = "extra-children")]
26919 {
26920 emit_idx += 1;
26921 }
26922 #[cfg(feature = "extra-children")]
26923 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26924 extra_iter
26925 .next()
26926 .unwrap()
26927 .node
26928 .write_to(writer)
26929 .map_err(SerializeError::from)?;
26930 }
26931 #[cfg(feature = "wml-settings")]
26932 if let Some(ref val) = self.do_not_demarcate_invalid_xml {
26933 val.write_element("w:doNotDemarcateInvalidXml", writer)?;
26934 }
26935 #[cfg(feature = "extra-children")]
26936 {
26937 emit_idx += 1;
26938 }
26939 #[cfg(feature = "extra-children")]
26940 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26941 extra_iter
26942 .next()
26943 .unwrap()
26944 .node
26945 .write_to(writer)
26946 .map_err(SerializeError::from)?;
26947 }
26948 #[cfg(feature = "wml-settings")]
26949 if let Some(ref val) = self.save_xml_data_only {
26950 val.write_element("w:saveXmlDataOnly", writer)?;
26951 }
26952 #[cfg(feature = "extra-children")]
26953 {
26954 emit_idx += 1;
26955 }
26956 #[cfg(feature = "extra-children")]
26957 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26958 extra_iter
26959 .next()
26960 .unwrap()
26961 .node
26962 .write_to(writer)
26963 .map_err(SerializeError::from)?;
26964 }
26965 #[cfg(feature = "wml-settings")]
26966 if let Some(ref val) = self.use_x_s_l_t_when_saving {
26967 val.write_element("w:useXSLTWhenSaving", writer)?;
26968 }
26969 #[cfg(feature = "extra-children")]
26970 {
26971 emit_idx += 1;
26972 }
26973 #[cfg(feature = "extra-children")]
26974 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26975 extra_iter
26976 .next()
26977 .unwrap()
26978 .node
26979 .write_to(writer)
26980 .map_err(SerializeError::from)?;
26981 }
26982 #[cfg(feature = "wml-settings")]
26983 if let Some(ref val) = self.save_through_xslt {
26984 val.write_element("w:saveThroughXslt", writer)?;
26985 }
26986 #[cfg(feature = "extra-children")]
26987 {
26988 emit_idx += 1;
26989 }
26990 #[cfg(feature = "extra-children")]
26991 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26992 extra_iter
26993 .next()
26994 .unwrap()
26995 .node
26996 .write_to(writer)
26997 .map_err(SerializeError::from)?;
26998 }
26999 #[cfg(feature = "wml-settings")]
27000 if let Some(ref val) = self.show_x_m_l_tags {
27001 val.write_element("w:showXMLTags", writer)?;
27002 }
27003 #[cfg(feature = "extra-children")]
27004 {
27005 emit_idx += 1;
27006 }
27007 #[cfg(feature = "extra-children")]
27008 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27009 extra_iter
27010 .next()
27011 .unwrap()
27012 .node
27013 .write_to(writer)
27014 .map_err(SerializeError::from)?;
27015 }
27016 #[cfg(feature = "wml-settings")]
27017 if let Some(ref val) = self.always_merge_empty_namespace {
27018 val.write_element("w:alwaysMergeEmptyNamespace", writer)?;
27019 }
27020 #[cfg(feature = "extra-children")]
27021 {
27022 emit_idx += 1;
27023 }
27024 #[cfg(feature = "extra-children")]
27025 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27026 extra_iter
27027 .next()
27028 .unwrap()
27029 .node
27030 .write_to(writer)
27031 .map_err(SerializeError::from)?;
27032 }
27033 #[cfg(feature = "wml-settings")]
27034 if let Some(ref val) = self.update_fields {
27035 val.write_element("w:updateFields", writer)?;
27036 }
27037 #[cfg(feature = "extra-children")]
27038 {
27039 emit_idx += 1;
27040 }
27041 #[cfg(feature = "extra-children")]
27042 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27043 extra_iter
27044 .next()
27045 .unwrap()
27046 .node
27047 .write_to(writer)
27048 .map_err(SerializeError::from)?;
27049 }
27050 #[cfg(feature = "wml-drawings")]
27051 if let Some(ref val) = self.hdr_shape_defaults {
27052 val.write_element("w:hdrShapeDefaults", writer)?;
27053 }
27054 #[cfg(feature = "extra-children")]
27055 {
27056 emit_idx += 1;
27057 }
27058 #[cfg(feature = "extra-children")]
27059 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27060 extra_iter
27061 .next()
27062 .unwrap()
27063 .node
27064 .write_to(writer)
27065 .map_err(SerializeError::from)?;
27066 }
27067 #[cfg(feature = "wml-comments")]
27068 if let Some(ref val) = self.footnote_pr {
27069 val.write_element("w:footnotePr", writer)?;
27070 }
27071 #[cfg(feature = "extra-children")]
27072 {
27073 emit_idx += 1;
27074 }
27075 #[cfg(feature = "extra-children")]
27076 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27077 extra_iter
27078 .next()
27079 .unwrap()
27080 .node
27081 .write_to(writer)
27082 .map_err(SerializeError::from)?;
27083 }
27084 #[cfg(feature = "wml-comments")]
27085 if let Some(ref val) = self.endnote_pr {
27086 val.write_element("w:endnotePr", writer)?;
27087 }
27088 #[cfg(feature = "extra-children")]
27089 {
27090 emit_idx += 1;
27091 }
27092 #[cfg(feature = "extra-children")]
27093 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27094 extra_iter
27095 .next()
27096 .unwrap()
27097 .node
27098 .write_to(writer)
27099 .map_err(SerializeError::from)?;
27100 }
27101 #[cfg(feature = "wml-settings")]
27102 if let Some(ref val) = self.compat {
27103 val.write_element("w:compat", writer)?;
27104 }
27105 #[cfg(feature = "extra-children")]
27106 {
27107 emit_idx += 1;
27108 }
27109 #[cfg(feature = "extra-children")]
27110 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27111 extra_iter
27112 .next()
27113 .unwrap()
27114 .node
27115 .write_to(writer)
27116 .map_err(SerializeError::from)?;
27117 }
27118 #[cfg(feature = "wml-settings")]
27119 if let Some(ref val) = self.doc_vars {
27120 val.write_element("w:docVars", writer)?;
27121 }
27122 #[cfg(feature = "extra-children")]
27123 {
27124 emit_idx += 1;
27125 }
27126 #[cfg(feature = "extra-children")]
27127 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27128 extra_iter
27129 .next()
27130 .unwrap()
27131 .node
27132 .write_to(writer)
27133 .map_err(SerializeError::from)?;
27134 }
27135 #[cfg(feature = "wml-settings")]
27136 if let Some(ref val) = self.rsids {
27137 val.write_element("w:rsids", writer)?;
27138 }
27139 #[cfg(feature = "extra-children")]
27140 {
27141 emit_idx += 1;
27142 }
27143 #[cfg(feature = "wml-settings")]
27144 for item in &self.attached_schema {
27145 #[cfg(feature = "extra-children")]
27146 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27147 extra_iter
27148 .next()
27149 .unwrap()
27150 .node
27151 .write_to(writer)
27152 .map_err(SerializeError::from)?;
27153 }
27154 item.write_element("w:attachedSchema", writer)?;
27155 #[cfg(feature = "extra-children")]
27156 {
27157 emit_idx += 1;
27158 }
27159 }
27160 #[cfg(feature = "extra-children")]
27161 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27162 extra_iter
27163 .next()
27164 .unwrap()
27165 .node
27166 .write_to(writer)
27167 .map_err(SerializeError::from)?;
27168 }
27169 #[cfg(feature = "wml-settings")]
27170 if let Some(ref val) = self.theme_font_lang {
27171 val.write_element("w:themeFontLang", writer)?;
27172 }
27173 #[cfg(feature = "extra-children")]
27174 {
27175 emit_idx += 1;
27176 }
27177 #[cfg(feature = "extra-children")]
27178 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27179 extra_iter
27180 .next()
27181 .unwrap()
27182 .node
27183 .write_to(writer)
27184 .map_err(SerializeError::from)?;
27185 }
27186 #[cfg(feature = "wml-settings")]
27187 if let Some(ref val) = self.clr_scheme_mapping {
27188 val.write_element("w:clrSchemeMapping", writer)?;
27189 }
27190 #[cfg(feature = "extra-children")]
27191 {
27192 emit_idx += 1;
27193 }
27194 #[cfg(feature = "extra-children")]
27195 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27196 extra_iter
27197 .next()
27198 .unwrap()
27199 .node
27200 .write_to(writer)
27201 .map_err(SerializeError::from)?;
27202 }
27203 #[cfg(feature = "wml-settings")]
27204 if let Some(ref val) = self.do_not_include_subdocs_in_stats {
27205 val.write_element("w:doNotIncludeSubdocsInStats", writer)?;
27206 }
27207 #[cfg(feature = "extra-children")]
27208 {
27209 emit_idx += 1;
27210 }
27211 #[cfg(feature = "extra-children")]
27212 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27213 extra_iter
27214 .next()
27215 .unwrap()
27216 .node
27217 .write_to(writer)
27218 .map_err(SerializeError::from)?;
27219 }
27220 #[cfg(feature = "wml-settings")]
27221 if let Some(ref val) = self.do_not_auto_compress_pictures {
27222 val.write_element("w:doNotAutoCompressPictures", writer)?;
27223 }
27224 #[cfg(feature = "extra-children")]
27225 {
27226 emit_idx += 1;
27227 }
27228 #[cfg(feature = "extra-children")]
27229 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27230 extra_iter
27231 .next()
27232 .unwrap()
27233 .node
27234 .write_to(writer)
27235 .map_err(SerializeError::from)?;
27236 }
27237 #[cfg(feature = "wml-settings")]
27238 if let Some(ref val) = self.force_upgrade {
27239 val.write_element("w:forceUpgrade", writer)?;
27240 }
27241 #[cfg(feature = "extra-children")]
27242 {
27243 emit_idx += 1;
27244 }
27245 #[cfg(feature = "extra-children")]
27246 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27247 extra_iter
27248 .next()
27249 .unwrap()
27250 .node
27251 .write_to(writer)
27252 .map_err(SerializeError::from)?;
27253 }
27254 #[cfg(feature = "wml-settings")]
27255 if let Some(ref val) = self.captions {
27256 val.write_element("w:captions", writer)?;
27257 }
27258 #[cfg(feature = "extra-children")]
27259 {
27260 emit_idx += 1;
27261 }
27262 #[cfg(feature = "extra-children")]
27263 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27264 extra_iter
27265 .next()
27266 .unwrap()
27267 .node
27268 .write_to(writer)
27269 .map_err(SerializeError::from)?;
27270 }
27271 #[cfg(feature = "wml-settings")]
27272 if let Some(ref val) = self.read_mode_ink_lock_down {
27273 val.write_element("w:readModeInkLockDown", writer)?;
27274 }
27275 #[cfg(feature = "extra-children")]
27276 {
27277 emit_idx += 1;
27278 }
27279 #[cfg(feature = "wml-settings")]
27280 for item in &self.smart_tag_type {
27281 #[cfg(feature = "extra-children")]
27282 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27283 extra_iter
27284 .next()
27285 .unwrap()
27286 .node
27287 .write_to(writer)
27288 .map_err(SerializeError::from)?;
27289 }
27290 item.write_element("w:smartTagType", writer)?;
27291 #[cfg(feature = "extra-children")]
27292 {
27293 emit_idx += 1;
27294 }
27295 }
27296 #[cfg(feature = "extra-children")]
27297 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27298 extra_iter
27299 .next()
27300 .unwrap()
27301 .node
27302 .write_to(writer)
27303 .map_err(SerializeError::from)?;
27304 }
27305 #[cfg(feature = "wml-drawings")]
27306 if let Some(ref val) = self.shape_defaults {
27307 val.write_element("w:shapeDefaults", writer)?;
27308 }
27309 #[cfg(feature = "extra-children")]
27310 {
27311 emit_idx += 1;
27312 }
27313 #[cfg(feature = "extra-children")]
27314 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27315 extra_iter
27316 .next()
27317 .unwrap()
27318 .node
27319 .write_to(writer)
27320 .map_err(SerializeError::from)?;
27321 }
27322 #[cfg(feature = "wml-settings")]
27323 if let Some(ref val) = self.do_not_embed_smart_tags {
27324 val.write_element("w:doNotEmbedSmartTags", writer)?;
27325 }
27326 #[cfg(feature = "extra-children")]
27327 {
27328 emit_idx += 1;
27329 }
27330 #[cfg(feature = "extra-children")]
27331 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27332 extra_iter
27333 .next()
27334 .unwrap()
27335 .node
27336 .write_to(writer)
27337 .map_err(SerializeError::from)?;
27338 }
27339 #[cfg(feature = "wml-settings")]
27340 if let Some(ref val) = self.decimal_symbol {
27341 val.write_element("w:decimalSymbol", writer)?;
27342 }
27343 #[cfg(feature = "extra-children")]
27344 {
27345 emit_idx += 1;
27346 }
27347 #[cfg(feature = "extra-children")]
27348 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27349 extra_iter
27350 .next()
27351 .unwrap()
27352 .node
27353 .write_to(writer)
27354 .map_err(SerializeError::from)?;
27355 }
27356 #[cfg(feature = "wml-settings")]
27357 if let Some(ref val) = self.list_separator {
27358 val.write_element("w:listSeparator", writer)?;
27359 }
27360 #[cfg(feature = "extra-children")]
27361 {
27362 emit_idx += 1;
27363 }
27364 #[cfg(feature = "extra-children")]
27365 for extra in extra_iter {
27366 extra.node.write_to(writer).map_err(SerializeError::from)?;
27367 }
27368 Ok(())
27369 }
27370
27371 fn is_empty_element(&self) -> bool {
27372 #[cfg(feature = "wml-settings")]
27373 if self.write_protection.is_some() {
27374 return false;
27375 }
27376 #[cfg(feature = "wml-settings")]
27377 if self.view.is_some() {
27378 return false;
27379 }
27380 #[cfg(feature = "wml-settings")]
27381 if self.zoom.is_some() {
27382 return false;
27383 }
27384 #[cfg(feature = "wml-settings")]
27385 if self.remove_personal_information.is_some() {
27386 return false;
27387 }
27388 #[cfg(feature = "wml-settings")]
27389 if self.remove_date_and_time.is_some() {
27390 return false;
27391 }
27392 #[cfg(feature = "wml-settings")]
27393 if self.do_not_display_page_boundaries.is_some() {
27394 return false;
27395 }
27396 #[cfg(feature = "wml-settings")]
27397 if self.display_background_shape.is_some() {
27398 return false;
27399 }
27400 #[cfg(feature = "wml-settings")]
27401 if self.print_post_script_over_text.is_some() {
27402 return false;
27403 }
27404 #[cfg(feature = "wml-settings")]
27405 if self.print_fractional_character_width.is_some() {
27406 return false;
27407 }
27408 #[cfg(feature = "wml-settings")]
27409 if self.print_forms_data.is_some() {
27410 return false;
27411 }
27412 #[cfg(feature = "wml-settings")]
27413 if self.embed_true_type_fonts.is_some() {
27414 return false;
27415 }
27416 #[cfg(feature = "wml-settings")]
27417 if self.embed_system_fonts.is_some() {
27418 return false;
27419 }
27420 #[cfg(feature = "wml-settings")]
27421 if self.save_subset_fonts.is_some() {
27422 return false;
27423 }
27424 #[cfg(feature = "wml-settings")]
27425 if self.save_forms_data.is_some() {
27426 return false;
27427 }
27428 #[cfg(feature = "wml-settings")]
27429 if self.mirror_margins.is_some() {
27430 return false;
27431 }
27432 #[cfg(feature = "wml-settings")]
27433 if self.align_borders_and_edges.is_some() {
27434 return false;
27435 }
27436 #[cfg(feature = "wml-settings")]
27437 if self.borders_do_not_surround_header.is_some() {
27438 return false;
27439 }
27440 #[cfg(feature = "wml-settings")]
27441 if self.borders_do_not_surround_footer.is_some() {
27442 return false;
27443 }
27444 #[cfg(feature = "wml-settings")]
27445 if self.gutter_at_top.is_some() {
27446 return false;
27447 }
27448 #[cfg(feature = "wml-settings")]
27449 if self.hide_spelling_errors.is_some() {
27450 return false;
27451 }
27452 #[cfg(feature = "wml-settings")]
27453 if self.hide_grammatical_errors.is_some() {
27454 return false;
27455 }
27456 #[cfg(feature = "wml-settings")]
27457 if !self.active_writing_style.is_empty() {
27458 return false;
27459 }
27460 #[cfg(feature = "wml-settings")]
27461 if self.proof_state.is_some() {
27462 return false;
27463 }
27464 #[cfg(feature = "wml-settings")]
27465 if self.forms_design.is_some() {
27466 return false;
27467 }
27468 #[cfg(feature = "wml-settings")]
27469 if self.attached_template.is_some() {
27470 return false;
27471 }
27472 #[cfg(feature = "wml-settings")]
27473 if self.link_styles.is_some() {
27474 return false;
27475 }
27476 #[cfg(feature = "wml-settings")]
27477 if self.style_pane_format_filter.is_some() {
27478 return false;
27479 }
27480 #[cfg(feature = "wml-settings")]
27481 if self.style_pane_sort_method.is_some() {
27482 return false;
27483 }
27484 #[cfg(feature = "wml-settings")]
27485 if self.document_type.is_some() {
27486 return false;
27487 }
27488 #[cfg(feature = "wml-settings")]
27489 if self.mail_merge.is_some() {
27490 return false;
27491 }
27492 #[cfg(feature = "wml-settings")]
27493 if self.revision_view.is_some() {
27494 return false;
27495 }
27496 #[cfg(feature = "wml-settings")]
27497 if self.track_revisions.is_some() {
27498 return false;
27499 }
27500 #[cfg(feature = "wml-track-changes")]
27501 if self.do_not_track_moves.is_some() {
27502 return false;
27503 }
27504 #[cfg(feature = "wml-track-changes")]
27505 if self.do_not_track_formatting.is_some() {
27506 return false;
27507 }
27508 #[cfg(feature = "wml-settings")]
27509 if self.document_protection.is_some() {
27510 return false;
27511 }
27512 #[cfg(feature = "wml-settings")]
27513 if self.auto_format_override.is_some() {
27514 return false;
27515 }
27516 #[cfg(feature = "wml-settings")]
27517 if self.style_lock_theme.is_some() {
27518 return false;
27519 }
27520 #[cfg(feature = "wml-settings")]
27521 if self.style_lock_q_f_set.is_some() {
27522 return false;
27523 }
27524 #[cfg(feature = "wml-settings")]
27525 if self.default_tab_stop.is_some() {
27526 return false;
27527 }
27528 #[cfg(feature = "wml-settings")]
27529 if self.auto_hyphenation.is_some() {
27530 return false;
27531 }
27532 #[cfg(feature = "wml-settings")]
27533 if self.consecutive_hyphen_limit.is_some() {
27534 return false;
27535 }
27536 #[cfg(feature = "wml-settings")]
27537 if self.hyphenation_zone.is_some() {
27538 return false;
27539 }
27540 #[cfg(feature = "wml-settings")]
27541 if self.do_not_hyphenate_caps.is_some() {
27542 return false;
27543 }
27544 #[cfg(feature = "wml-settings")]
27545 if self.show_envelope.is_some() {
27546 return false;
27547 }
27548 #[cfg(feature = "wml-settings")]
27549 if self.summary_length.is_some() {
27550 return false;
27551 }
27552 #[cfg(feature = "wml-settings")]
27553 if self.click_and_type_style.is_some() {
27554 return false;
27555 }
27556 #[cfg(feature = "wml-settings")]
27557 if self.default_table_style.is_some() {
27558 return false;
27559 }
27560 #[cfg(feature = "wml-settings")]
27561 if self.even_and_odd_headers.is_some() {
27562 return false;
27563 }
27564 #[cfg(feature = "wml-settings")]
27565 if self.book_fold_rev_printing.is_some() {
27566 return false;
27567 }
27568 #[cfg(feature = "wml-settings")]
27569 if self.book_fold_printing.is_some() {
27570 return false;
27571 }
27572 #[cfg(feature = "wml-settings")]
27573 if self.book_fold_printing_sheets.is_some() {
27574 return false;
27575 }
27576 #[cfg(feature = "wml-settings")]
27577 if self.drawing_grid_horizontal_spacing.is_some() {
27578 return false;
27579 }
27580 #[cfg(feature = "wml-settings")]
27581 if self.drawing_grid_vertical_spacing.is_some() {
27582 return false;
27583 }
27584 #[cfg(feature = "wml-settings")]
27585 if self.display_horizontal_drawing_grid_every.is_some() {
27586 return false;
27587 }
27588 #[cfg(feature = "wml-settings")]
27589 if self.display_vertical_drawing_grid_every.is_some() {
27590 return false;
27591 }
27592 #[cfg(feature = "wml-settings")]
27593 if self.do_not_use_margins_for_drawing_grid_origin.is_some() {
27594 return false;
27595 }
27596 #[cfg(feature = "wml-settings")]
27597 if self.drawing_grid_horizontal_origin.is_some() {
27598 return false;
27599 }
27600 #[cfg(feature = "wml-settings")]
27601 if self.drawing_grid_vertical_origin.is_some() {
27602 return false;
27603 }
27604 #[cfg(feature = "wml-settings")]
27605 if self.do_not_shade_form_data.is_some() {
27606 return false;
27607 }
27608 #[cfg(feature = "wml-settings")]
27609 if self.no_punctuation_kerning.is_some() {
27610 return false;
27611 }
27612 #[cfg(feature = "wml-settings")]
27613 if self.character_spacing_control.is_some() {
27614 return false;
27615 }
27616 #[cfg(feature = "wml-settings")]
27617 if self.print_two_on_one.is_some() {
27618 return false;
27619 }
27620 #[cfg(feature = "wml-settings")]
27621 if self.strict_first_and_last_chars.is_some() {
27622 return false;
27623 }
27624 #[cfg(feature = "wml-settings")]
27625 if self.no_line_breaks_after.is_some() {
27626 return false;
27627 }
27628 #[cfg(feature = "wml-settings")]
27629 if self.no_line_breaks_before.is_some() {
27630 return false;
27631 }
27632 #[cfg(feature = "wml-settings")]
27633 if self.save_preview_picture.is_some() {
27634 return false;
27635 }
27636 #[cfg(feature = "wml-settings")]
27637 if self.do_not_validate_against_schema.is_some() {
27638 return false;
27639 }
27640 #[cfg(feature = "wml-settings")]
27641 if self.save_invalid_xml.is_some() {
27642 return false;
27643 }
27644 #[cfg(feature = "wml-settings")]
27645 if self.ignore_mixed_content.is_some() {
27646 return false;
27647 }
27648 #[cfg(feature = "wml-settings")]
27649 if self.always_show_placeholder_text.is_some() {
27650 return false;
27651 }
27652 #[cfg(feature = "wml-settings")]
27653 if self.do_not_demarcate_invalid_xml.is_some() {
27654 return false;
27655 }
27656 #[cfg(feature = "wml-settings")]
27657 if self.save_xml_data_only.is_some() {
27658 return false;
27659 }
27660 #[cfg(feature = "wml-settings")]
27661 if self.use_x_s_l_t_when_saving.is_some() {
27662 return false;
27663 }
27664 #[cfg(feature = "wml-settings")]
27665 if self.save_through_xslt.is_some() {
27666 return false;
27667 }
27668 #[cfg(feature = "wml-settings")]
27669 if self.show_x_m_l_tags.is_some() {
27670 return false;
27671 }
27672 #[cfg(feature = "wml-settings")]
27673 if self.always_merge_empty_namespace.is_some() {
27674 return false;
27675 }
27676 #[cfg(feature = "wml-settings")]
27677 if self.update_fields.is_some() {
27678 return false;
27679 }
27680 #[cfg(feature = "wml-drawings")]
27681 if self.hdr_shape_defaults.is_some() {
27682 return false;
27683 }
27684 #[cfg(feature = "wml-comments")]
27685 if self.footnote_pr.is_some() {
27686 return false;
27687 }
27688 #[cfg(feature = "wml-comments")]
27689 if self.endnote_pr.is_some() {
27690 return false;
27691 }
27692 #[cfg(feature = "wml-settings")]
27693 if self.compat.is_some() {
27694 return false;
27695 }
27696 #[cfg(feature = "wml-settings")]
27697 if self.doc_vars.is_some() {
27698 return false;
27699 }
27700 #[cfg(feature = "wml-settings")]
27701 if self.rsids.is_some() {
27702 return false;
27703 }
27704 #[cfg(feature = "wml-settings")]
27705 if !self.attached_schema.is_empty() {
27706 return false;
27707 }
27708 #[cfg(feature = "wml-settings")]
27709 if self.theme_font_lang.is_some() {
27710 return false;
27711 }
27712 #[cfg(feature = "wml-settings")]
27713 if self.clr_scheme_mapping.is_some() {
27714 return false;
27715 }
27716 #[cfg(feature = "wml-settings")]
27717 if self.do_not_include_subdocs_in_stats.is_some() {
27718 return false;
27719 }
27720 #[cfg(feature = "wml-settings")]
27721 if self.do_not_auto_compress_pictures.is_some() {
27722 return false;
27723 }
27724 #[cfg(feature = "wml-settings")]
27725 if self.force_upgrade.is_some() {
27726 return false;
27727 }
27728 #[cfg(feature = "wml-settings")]
27729 if self.captions.is_some() {
27730 return false;
27731 }
27732 #[cfg(feature = "wml-settings")]
27733 if self.read_mode_ink_lock_down.is_some() {
27734 return false;
27735 }
27736 #[cfg(feature = "wml-settings")]
27737 if !self.smart_tag_type.is_empty() {
27738 return false;
27739 }
27740 #[cfg(feature = "wml-drawings")]
27741 if self.shape_defaults.is_some() {
27742 return false;
27743 }
27744 #[cfg(feature = "wml-settings")]
27745 if self.do_not_embed_smart_tags.is_some() {
27746 return false;
27747 }
27748 #[cfg(feature = "wml-settings")]
27749 if self.decimal_symbol.is_some() {
27750 return false;
27751 }
27752 #[cfg(feature = "wml-settings")]
27753 if self.list_separator.is_some() {
27754 return false;
27755 }
27756 #[cfg(feature = "extra-children")]
27757 if !self.extra_children.is_empty() {
27758 return false;
27759 }
27760 true
27761 }
27762}
27763
27764impl ToXml for CTStyleSort {
27765 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
27766 #[allow(unused_mut)]
27767 let mut start = start;
27768 {
27769 let val = &self.value;
27770 {
27771 let s = val.to_string();
27772 start.push_attribute(("w:val", s.as_str()));
27773 }
27774 }
27775 #[cfg(feature = "extra-attrs")]
27776 for (key, value) in &self.extra_attrs {
27777 start.push_attribute((key.as_str(), value.as_str()));
27778 }
27779 start
27780 }
27781
27782 fn is_empty_element(&self) -> bool {
27783 true
27784 }
27785}
27786
27787impl ToXml for CTStylePaneFilter {
27788 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
27789 #[allow(unused_mut)]
27790 let mut start = start;
27791 #[cfg(feature = "wml-settings")]
27792 if let Some(ref val) = self.all_styles {
27793 {
27794 let s = val.to_string();
27795 start.push_attribute(("w:allStyles", s.as_str()));
27796 }
27797 }
27798 #[cfg(feature = "wml-settings")]
27799 if let Some(ref val) = self.custom_styles {
27800 {
27801 let s = val.to_string();
27802 start.push_attribute(("w:customStyles", s.as_str()));
27803 }
27804 }
27805 #[cfg(feature = "wml-settings")]
27806 if let Some(ref val) = self.latent_styles {
27807 {
27808 let s = val.to_string();
27809 start.push_attribute(("w:latentStyles", s.as_str()));
27810 }
27811 }
27812 #[cfg(feature = "wml-settings")]
27813 if let Some(ref val) = self.styles_in_use {
27814 {
27815 let s = val.to_string();
27816 start.push_attribute(("w:stylesInUse", s.as_str()));
27817 }
27818 }
27819 #[cfg(feature = "wml-settings")]
27820 if let Some(ref val) = self.heading_styles {
27821 {
27822 let s = val.to_string();
27823 start.push_attribute(("w:headingStyles", s.as_str()));
27824 }
27825 }
27826 #[cfg(feature = "wml-settings")]
27827 if let Some(ref val) = self.numbering_styles {
27828 {
27829 let s = val.to_string();
27830 start.push_attribute(("w:numberingStyles", s.as_str()));
27831 }
27832 }
27833 #[cfg(feature = "wml-settings")]
27834 if let Some(ref val) = self.table_styles {
27835 {
27836 let s = val.to_string();
27837 start.push_attribute(("w:tableStyles", s.as_str()));
27838 }
27839 }
27840 #[cfg(feature = "wml-settings")]
27841 if let Some(ref val) = self.direct_formatting_on_runs {
27842 {
27843 let s = val.to_string();
27844 start.push_attribute(("w:directFormattingOnRuns", s.as_str()));
27845 }
27846 }
27847 #[cfg(feature = "wml-settings")]
27848 if let Some(ref val) = self.direct_formatting_on_paragraphs {
27849 {
27850 let s = val.to_string();
27851 start.push_attribute(("w:directFormattingOnParagraphs", s.as_str()));
27852 }
27853 }
27854 #[cfg(feature = "wml-settings")]
27855 if let Some(ref val) = self.direct_formatting_on_numbering {
27856 {
27857 let s = val.to_string();
27858 start.push_attribute(("w:directFormattingOnNumbering", s.as_str()));
27859 }
27860 }
27861 #[cfg(feature = "wml-settings")]
27862 if let Some(ref val) = self.direct_formatting_on_tables {
27863 {
27864 let s = val.to_string();
27865 start.push_attribute(("w:directFormattingOnTables", s.as_str()));
27866 }
27867 }
27868 #[cfg(feature = "wml-settings")]
27869 if let Some(ref val) = self.clear_formatting {
27870 {
27871 let s = val.to_string();
27872 start.push_attribute(("w:clearFormatting", s.as_str()));
27873 }
27874 }
27875 #[cfg(feature = "wml-settings")]
27876 if let Some(ref val) = self.top3_heading_styles {
27877 {
27878 let s = val.to_string();
27879 start.push_attribute(("w:top3HeadingStyles", s.as_str()));
27880 }
27881 }
27882 #[cfg(feature = "wml-settings")]
27883 if let Some(ref val) = self.visible_styles {
27884 {
27885 let s = val.to_string();
27886 start.push_attribute(("w:visibleStyles", s.as_str()));
27887 }
27888 }
27889 #[cfg(feature = "wml-settings")]
27890 if let Some(ref val) = self.alternate_style_names {
27891 {
27892 let s = val.to_string();
27893 start.push_attribute(("w:alternateStyleNames", s.as_str()));
27894 }
27895 }
27896 #[cfg(feature = "wml-settings")]
27897 if let Some(ref val) = self.value {
27898 {
27899 let hex = encode_hex(val);
27900 start.push_attribute(("w:val", hex.as_str()));
27901 }
27902 }
27903 #[cfg(feature = "extra-attrs")]
27904 for (key, value) in &self.extra_attrs {
27905 start.push_attribute((key.as_str(), value.as_str()));
27906 }
27907 start
27908 }
27909
27910 fn is_empty_element(&self) -> bool {
27911 true
27912 }
27913}
27914
27915impl ToXml for CTWebSettings {
27916 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
27917 #[cfg(feature = "extra-children")]
27918 let mut extra_iter = self.extra_children.iter().peekable();
27919 #[cfg(feature = "extra-children")]
27920 let mut emit_idx: usize = 0;
27921 #[cfg(feature = "extra-children")]
27922 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27923 extra_iter
27924 .next()
27925 .unwrap()
27926 .node
27927 .write_to(writer)
27928 .map_err(SerializeError::from)?;
27929 }
27930 #[cfg(feature = "wml-settings")]
27931 if let Some(ref val) = self.frameset {
27932 val.write_element("w:frameset", writer)?;
27933 }
27934 #[cfg(feature = "extra-children")]
27935 {
27936 emit_idx += 1;
27937 }
27938 #[cfg(feature = "extra-children")]
27939 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27940 extra_iter
27941 .next()
27942 .unwrap()
27943 .node
27944 .write_to(writer)
27945 .map_err(SerializeError::from)?;
27946 }
27947 #[cfg(feature = "wml-settings")]
27948 if let Some(ref val) = self.divs {
27949 val.write_element("w:divs", writer)?;
27950 }
27951 #[cfg(feature = "extra-children")]
27952 {
27953 emit_idx += 1;
27954 }
27955 #[cfg(feature = "extra-children")]
27956 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27957 extra_iter
27958 .next()
27959 .unwrap()
27960 .node
27961 .write_to(writer)
27962 .map_err(SerializeError::from)?;
27963 }
27964 #[cfg(feature = "wml-settings")]
27965 if let Some(ref val) = self.encoding {
27966 val.write_element("w:encoding", writer)?;
27967 }
27968 #[cfg(feature = "extra-children")]
27969 {
27970 emit_idx += 1;
27971 }
27972 #[cfg(feature = "extra-children")]
27973 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27974 extra_iter
27975 .next()
27976 .unwrap()
27977 .node
27978 .write_to(writer)
27979 .map_err(SerializeError::from)?;
27980 }
27981 #[cfg(feature = "wml-settings")]
27982 if let Some(ref val) = self.optimize_for_browser {
27983 val.write_element("w:optimizeForBrowser", writer)?;
27984 }
27985 #[cfg(feature = "extra-children")]
27986 {
27987 emit_idx += 1;
27988 }
27989 #[cfg(feature = "extra-children")]
27990 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27991 extra_iter
27992 .next()
27993 .unwrap()
27994 .node
27995 .write_to(writer)
27996 .map_err(SerializeError::from)?;
27997 }
27998 #[cfg(feature = "wml-settings")]
27999 if let Some(ref val) = self.rely_on_v_m_l {
28000 val.write_element("w:relyOnVML", writer)?;
28001 }
28002 #[cfg(feature = "extra-children")]
28003 {
28004 emit_idx += 1;
28005 }
28006 #[cfg(feature = "extra-children")]
28007 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28008 extra_iter
28009 .next()
28010 .unwrap()
28011 .node
28012 .write_to(writer)
28013 .map_err(SerializeError::from)?;
28014 }
28015 #[cfg(feature = "wml-settings")]
28016 if let Some(ref val) = self.allow_p_n_g {
28017 val.write_element("w:allowPNG", writer)?;
28018 }
28019 #[cfg(feature = "extra-children")]
28020 {
28021 emit_idx += 1;
28022 }
28023 #[cfg(feature = "extra-children")]
28024 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28025 extra_iter
28026 .next()
28027 .unwrap()
28028 .node
28029 .write_to(writer)
28030 .map_err(SerializeError::from)?;
28031 }
28032 #[cfg(feature = "wml-settings")]
28033 if let Some(ref val) = self.do_not_rely_on_c_s_s {
28034 val.write_element("w:doNotRelyOnCSS", writer)?;
28035 }
28036 #[cfg(feature = "extra-children")]
28037 {
28038 emit_idx += 1;
28039 }
28040 #[cfg(feature = "extra-children")]
28041 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28042 extra_iter
28043 .next()
28044 .unwrap()
28045 .node
28046 .write_to(writer)
28047 .map_err(SerializeError::from)?;
28048 }
28049 #[cfg(feature = "wml-settings")]
28050 if let Some(ref val) = self.do_not_save_as_single_file {
28051 val.write_element("w:doNotSaveAsSingleFile", writer)?;
28052 }
28053 #[cfg(feature = "extra-children")]
28054 {
28055 emit_idx += 1;
28056 }
28057 #[cfg(feature = "extra-children")]
28058 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28059 extra_iter
28060 .next()
28061 .unwrap()
28062 .node
28063 .write_to(writer)
28064 .map_err(SerializeError::from)?;
28065 }
28066 #[cfg(feature = "wml-settings")]
28067 if let Some(ref val) = self.do_not_organize_in_folder {
28068 val.write_element("w:doNotOrganizeInFolder", writer)?;
28069 }
28070 #[cfg(feature = "extra-children")]
28071 {
28072 emit_idx += 1;
28073 }
28074 #[cfg(feature = "extra-children")]
28075 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28076 extra_iter
28077 .next()
28078 .unwrap()
28079 .node
28080 .write_to(writer)
28081 .map_err(SerializeError::from)?;
28082 }
28083 #[cfg(feature = "wml-settings")]
28084 if let Some(ref val) = self.do_not_use_long_file_names {
28085 val.write_element("w:doNotUseLongFileNames", writer)?;
28086 }
28087 #[cfg(feature = "extra-children")]
28088 {
28089 emit_idx += 1;
28090 }
28091 #[cfg(feature = "extra-children")]
28092 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28093 extra_iter
28094 .next()
28095 .unwrap()
28096 .node
28097 .write_to(writer)
28098 .map_err(SerializeError::from)?;
28099 }
28100 #[cfg(feature = "wml-settings")]
28101 if let Some(ref val) = self.pixels_per_inch {
28102 val.write_element("w:pixelsPerInch", writer)?;
28103 }
28104 #[cfg(feature = "extra-children")]
28105 {
28106 emit_idx += 1;
28107 }
28108 #[cfg(feature = "extra-children")]
28109 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28110 extra_iter
28111 .next()
28112 .unwrap()
28113 .node
28114 .write_to(writer)
28115 .map_err(SerializeError::from)?;
28116 }
28117 #[cfg(feature = "wml-settings")]
28118 if let Some(ref val) = self.target_screen_sz {
28119 val.write_element("w:targetScreenSz", writer)?;
28120 }
28121 #[cfg(feature = "extra-children")]
28122 {
28123 emit_idx += 1;
28124 }
28125 #[cfg(feature = "extra-children")]
28126 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28127 extra_iter
28128 .next()
28129 .unwrap()
28130 .node
28131 .write_to(writer)
28132 .map_err(SerializeError::from)?;
28133 }
28134 #[cfg(feature = "wml-settings")]
28135 if let Some(ref val) = self.save_smart_tags_as_xml {
28136 val.write_element("w:saveSmartTagsAsXml", writer)?;
28137 }
28138 #[cfg(feature = "extra-children")]
28139 {
28140 emit_idx += 1;
28141 }
28142 #[cfg(feature = "extra-children")]
28143 for extra in extra_iter {
28144 extra.node.write_to(writer).map_err(SerializeError::from)?;
28145 }
28146 Ok(())
28147 }
28148
28149 fn is_empty_element(&self) -> bool {
28150 #[cfg(feature = "wml-settings")]
28151 if self.frameset.is_some() {
28152 return false;
28153 }
28154 #[cfg(feature = "wml-settings")]
28155 if self.divs.is_some() {
28156 return false;
28157 }
28158 #[cfg(feature = "wml-settings")]
28159 if self.encoding.is_some() {
28160 return false;
28161 }
28162 #[cfg(feature = "wml-settings")]
28163 if self.optimize_for_browser.is_some() {
28164 return false;
28165 }
28166 #[cfg(feature = "wml-settings")]
28167 if self.rely_on_v_m_l.is_some() {
28168 return false;
28169 }
28170 #[cfg(feature = "wml-settings")]
28171 if self.allow_p_n_g.is_some() {
28172 return false;
28173 }
28174 #[cfg(feature = "wml-settings")]
28175 if self.do_not_rely_on_c_s_s.is_some() {
28176 return false;
28177 }
28178 #[cfg(feature = "wml-settings")]
28179 if self.do_not_save_as_single_file.is_some() {
28180 return false;
28181 }
28182 #[cfg(feature = "wml-settings")]
28183 if self.do_not_organize_in_folder.is_some() {
28184 return false;
28185 }
28186 #[cfg(feature = "wml-settings")]
28187 if self.do_not_use_long_file_names.is_some() {
28188 return false;
28189 }
28190 #[cfg(feature = "wml-settings")]
28191 if self.pixels_per_inch.is_some() {
28192 return false;
28193 }
28194 #[cfg(feature = "wml-settings")]
28195 if self.target_screen_sz.is_some() {
28196 return false;
28197 }
28198 #[cfg(feature = "wml-settings")]
28199 if self.save_smart_tags_as_xml.is_some() {
28200 return false;
28201 }
28202 #[cfg(feature = "extra-children")]
28203 if !self.extra_children.is_empty() {
28204 return false;
28205 }
28206 true
28207 }
28208}
28209
28210impl ToXml for CTFrameScrollbar {
28211 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
28212 #[allow(unused_mut)]
28213 let mut start = start;
28214 {
28215 let val = &self.value;
28216 {
28217 let s = val.to_string();
28218 start.push_attribute(("w:val", s.as_str()));
28219 }
28220 }
28221 #[cfg(feature = "extra-attrs")]
28222 for (key, value) in &self.extra_attrs {
28223 start.push_attribute((key.as_str(), value.as_str()));
28224 }
28225 start
28226 }
28227
28228 fn is_empty_element(&self) -> bool {
28229 true
28230 }
28231}
28232
28233impl ToXml for CTOptimizeForBrowser {
28234 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
28235 #[allow(unused_mut)]
28236 let mut start = start;
28237 if let Some(ref val) = self.value {
28238 {
28239 let s = val.to_string();
28240 start.push_attribute(("w:val", s.as_str()));
28241 }
28242 }
28243 #[cfg(feature = "wml-settings")]
28244 if let Some(ref val) = self.target {
28245 start.push_attribute(("w:target", val.as_str()));
28246 }
28247 #[cfg(feature = "extra-attrs")]
28248 for (key, value) in &self.extra_attrs {
28249 start.push_attribute((key.as_str(), value.as_str()));
28250 }
28251 start
28252 }
28253
28254 fn is_empty_element(&self) -> bool {
28255 true
28256 }
28257}
28258
28259impl ToXml for CTFrame {
28260 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
28261 #[cfg(feature = "extra-children")]
28262 let mut extra_iter = self.extra_children.iter().peekable();
28263 #[cfg(feature = "extra-children")]
28264 let mut emit_idx: usize = 0;
28265 #[cfg(feature = "extra-children")]
28266 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28267 extra_iter
28268 .next()
28269 .unwrap()
28270 .node
28271 .write_to(writer)
28272 .map_err(SerializeError::from)?;
28273 }
28274 #[cfg(feature = "wml-settings")]
28275 if let Some(ref val) = self.size {
28276 val.write_element("w:sz", writer)?;
28277 }
28278 #[cfg(feature = "extra-children")]
28279 {
28280 emit_idx += 1;
28281 }
28282 #[cfg(feature = "extra-children")]
28283 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28284 extra_iter
28285 .next()
28286 .unwrap()
28287 .node
28288 .write_to(writer)
28289 .map_err(SerializeError::from)?;
28290 }
28291 #[cfg(feature = "wml-settings")]
28292 if let Some(ref val) = self.name {
28293 val.write_element("w:name", writer)?;
28294 }
28295 #[cfg(feature = "extra-children")]
28296 {
28297 emit_idx += 1;
28298 }
28299 #[cfg(feature = "extra-children")]
28300 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28301 extra_iter
28302 .next()
28303 .unwrap()
28304 .node
28305 .write_to(writer)
28306 .map_err(SerializeError::from)?;
28307 }
28308 #[cfg(feature = "wml-settings")]
28309 if let Some(ref val) = self.title {
28310 val.write_element("w:title", writer)?;
28311 }
28312 #[cfg(feature = "extra-children")]
28313 {
28314 emit_idx += 1;
28315 }
28316 #[cfg(feature = "extra-children")]
28317 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28318 extra_iter
28319 .next()
28320 .unwrap()
28321 .node
28322 .write_to(writer)
28323 .map_err(SerializeError::from)?;
28324 }
28325 #[cfg(feature = "wml-settings")]
28326 if let Some(ref val) = self.long_desc {
28327 val.write_element("w:longDesc", writer)?;
28328 }
28329 #[cfg(feature = "extra-children")]
28330 {
28331 emit_idx += 1;
28332 }
28333 #[cfg(feature = "extra-children")]
28334 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28335 extra_iter
28336 .next()
28337 .unwrap()
28338 .node
28339 .write_to(writer)
28340 .map_err(SerializeError::from)?;
28341 }
28342 #[cfg(feature = "wml-settings")]
28343 if let Some(ref val) = self.source_file_name {
28344 val.write_element("w:sourceFileName", writer)?;
28345 }
28346 #[cfg(feature = "extra-children")]
28347 {
28348 emit_idx += 1;
28349 }
28350 #[cfg(feature = "extra-children")]
28351 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28352 extra_iter
28353 .next()
28354 .unwrap()
28355 .node
28356 .write_to(writer)
28357 .map_err(SerializeError::from)?;
28358 }
28359 #[cfg(feature = "wml-settings")]
28360 if let Some(ref val) = self.mar_w {
28361 val.write_element("w:marW", writer)?;
28362 }
28363 #[cfg(feature = "extra-children")]
28364 {
28365 emit_idx += 1;
28366 }
28367 #[cfg(feature = "extra-children")]
28368 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28369 extra_iter
28370 .next()
28371 .unwrap()
28372 .node
28373 .write_to(writer)
28374 .map_err(SerializeError::from)?;
28375 }
28376 #[cfg(feature = "wml-settings")]
28377 if let Some(ref val) = self.mar_h {
28378 val.write_element("w:marH", writer)?;
28379 }
28380 #[cfg(feature = "extra-children")]
28381 {
28382 emit_idx += 1;
28383 }
28384 #[cfg(feature = "extra-children")]
28385 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28386 extra_iter
28387 .next()
28388 .unwrap()
28389 .node
28390 .write_to(writer)
28391 .map_err(SerializeError::from)?;
28392 }
28393 #[cfg(feature = "wml-settings")]
28394 if let Some(ref val) = self.scrollbar {
28395 val.write_element("w:scrollbar", writer)?;
28396 }
28397 #[cfg(feature = "extra-children")]
28398 {
28399 emit_idx += 1;
28400 }
28401 #[cfg(feature = "extra-children")]
28402 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28403 extra_iter
28404 .next()
28405 .unwrap()
28406 .node
28407 .write_to(writer)
28408 .map_err(SerializeError::from)?;
28409 }
28410 #[cfg(feature = "wml-settings")]
28411 if let Some(ref val) = self.no_resize_allowed {
28412 val.write_element("w:noResizeAllowed", writer)?;
28413 }
28414 #[cfg(feature = "extra-children")]
28415 {
28416 emit_idx += 1;
28417 }
28418 #[cfg(feature = "extra-children")]
28419 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28420 extra_iter
28421 .next()
28422 .unwrap()
28423 .node
28424 .write_to(writer)
28425 .map_err(SerializeError::from)?;
28426 }
28427 #[cfg(feature = "wml-settings")]
28428 if let Some(ref val) = self.linked_to_file {
28429 val.write_element("w:linkedToFile", writer)?;
28430 }
28431 #[cfg(feature = "extra-children")]
28432 {
28433 emit_idx += 1;
28434 }
28435 #[cfg(feature = "extra-children")]
28436 for extra in extra_iter {
28437 extra.node.write_to(writer).map_err(SerializeError::from)?;
28438 }
28439 Ok(())
28440 }
28441
28442 fn is_empty_element(&self) -> bool {
28443 #[cfg(feature = "wml-settings")]
28444 if self.size.is_some() {
28445 return false;
28446 }
28447 #[cfg(feature = "wml-settings")]
28448 if self.name.is_some() {
28449 return false;
28450 }
28451 #[cfg(feature = "wml-settings")]
28452 if self.title.is_some() {
28453 return false;
28454 }
28455 #[cfg(feature = "wml-settings")]
28456 if self.long_desc.is_some() {
28457 return false;
28458 }
28459 #[cfg(feature = "wml-settings")]
28460 if self.source_file_name.is_some() {
28461 return false;
28462 }
28463 #[cfg(feature = "wml-settings")]
28464 if self.mar_w.is_some() {
28465 return false;
28466 }
28467 #[cfg(feature = "wml-settings")]
28468 if self.mar_h.is_some() {
28469 return false;
28470 }
28471 #[cfg(feature = "wml-settings")]
28472 if self.scrollbar.is_some() {
28473 return false;
28474 }
28475 #[cfg(feature = "wml-settings")]
28476 if self.no_resize_allowed.is_some() {
28477 return false;
28478 }
28479 #[cfg(feature = "wml-settings")]
28480 if self.linked_to_file.is_some() {
28481 return false;
28482 }
28483 #[cfg(feature = "extra-children")]
28484 if !self.extra_children.is_empty() {
28485 return false;
28486 }
28487 true
28488 }
28489}
28490
28491impl ToXml for CTFrameLayout {
28492 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
28493 #[allow(unused_mut)]
28494 let mut start = start;
28495 {
28496 let val = &self.value;
28497 {
28498 let s = val.to_string();
28499 start.push_attribute(("w:val", s.as_str()));
28500 }
28501 }
28502 #[cfg(feature = "extra-attrs")]
28503 for (key, value) in &self.extra_attrs {
28504 start.push_attribute((key.as_str(), value.as_str()));
28505 }
28506 start
28507 }
28508
28509 fn is_empty_element(&self) -> bool {
28510 true
28511 }
28512}
28513
28514impl ToXml for CTFramesetSplitbar {
28515 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
28516 #[cfg(feature = "extra-children")]
28517 let mut extra_iter = self.extra_children.iter().peekable();
28518 #[cfg(feature = "extra-children")]
28519 let mut emit_idx: usize = 0;
28520 #[cfg(feature = "extra-children")]
28521 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28522 extra_iter
28523 .next()
28524 .unwrap()
28525 .node
28526 .write_to(writer)
28527 .map_err(SerializeError::from)?;
28528 }
28529 #[cfg(feature = "wml-settings")]
28530 if let Some(ref val) = self.width {
28531 val.write_element("w:w", writer)?;
28532 }
28533 #[cfg(feature = "extra-children")]
28534 {
28535 emit_idx += 1;
28536 }
28537 #[cfg(feature = "extra-children")]
28538 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28539 extra_iter
28540 .next()
28541 .unwrap()
28542 .node
28543 .write_to(writer)
28544 .map_err(SerializeError::from)?;
28545 }
28546 #[cfg(feature = "wml-settings")]
28547 if let Some(ref val) = self.color {
28548 val.write_element("w:color", writer)?;
28549 }
28550 #[cfg(feature = "extra-children")]
28551 {
28552 emit_idx += 1;
28553 }
28554 #[cfg(feature = "extra-children")]
28555 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28556 extra_iter
28557 .next()
28558 .unwrap()
28559 .node
28560 .write_to(writer)
28561 .map_err(SerializeError::from)?;
28562 }
28563 #[cfg(feature = "wml-settings")]
28564 if let Some(ref val) = self.no_border {
28565 val.write_element("w:noBorder", writer)?;
28566 }
28567 #[cfg(feature = "extra-children")]
28568 {
28569 emit_idx += 1;
28570 }
28571 #[cfg(feature = "extra-children")]
28572 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28573 extra_iter
28574 .next()
28575 .unwrap()
28576 .node
28577 .write_to(writer)
28578 .map_err(SerializeError::from)?;
28579 }
28580 #[cfg(feature = "wml-settings")]
28581 if let Some(ref val) = self.flat_borders {
28582 val.write_element("w:flatBorders", writer)?;
28583 }
28584 #[cfg(feature = "extra-children")]
28585 {
28586 emit_idx += 1;
28587 }
28588 #[cfg(feature = "extra-children")]
28589 for extra in extra_iter {
28590 extra.node.write_to(writer).map_err(SerializeError::from)?;
28591 }
28592 Ok(())
28593 }
28594
28595 fn is_empty_element(&self) -> bool {
28596 #[cfg(feature = "wml-settings")]
28597 if self.width.is_some() {
28598 return false;
28599 }
28600 #[cfg(feature = "wml-settings")]
28601 if self.color.is_some() {
28602 return false;
28603 }
28604 #[cfg(feature = "wml-settings")]
28605 if self.no_border.is_some() {
28606 return false;
28607 }
28608 #[cfg(feature = "wml-settings")]
28609 if self.flat_borders.is_some() {
28610 return false;
28611 }
28612 #[cfg(feature = "extra-children")]
28613 if !self.extra_children.is_empty() {
28614 return false;
28615 }
28616 true
28617 }
28618}
28619
28620impl ToXml for CTFrameset {
28621 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
28622 #[cfg(feature = "extra-children")]
28623 let mut extra_iter = self.extra_children.iter().peekable();
28624 #[cfg(feature = "extra-children")]
28625 let mut emit_idx: usize = 0;
28626 #[cfg(feature = "extra-children")]
28627 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28628 extra_iter
28629 .next()
28630 .unwrap()
28631 .node
28632 .write_to(writer)
28633 .map_err(SerializeError::from)?;
28634 }
28635 #[cfg(feature = "wml-settings")]
28636 if let Some(ref val) = self.size {
28637 val.write_element("w:sz", writer)?;
28638 }
28639 #[cfg(feature = "extra-children")]
28640 {
28641 emit_idx += 1;
28642 }
28643 #[cfg(feature = "extra-children")]
28644 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28645 extra_iter
28646 .next()
28647 .unwrap()
28648 .node
28649 .write_to(writer)
28650 .map_err(SerializeError::from)?;
28651 }
28652 #[cfg(feature = "wml-settings")]
28653 if let Some(ref val) = self.frameset_splitbar {
28654 val.write_element("w:framesetSplitbar", writer)?;
28655 }
28656 #[cfg(feature = "extra-children")]
28657 {
28658 emit_idx += 1;
28659 }
28660 #[cfg(feature = "extra-children")]
28661 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28662 extra_iter
28663 .next()
28664 .unwrap()
28665 .node
28666 .write_to(writer)
28667 .map_err(SerializeError::from)?;
28668 }
28669 #[cfg(feature = "wml-settings")]
28670 if let Some(ref val) = self.frame_layout {
28671 val.write_element("w:frameLayout", writer)?;
28672 }
28673 #[cfg(feature = "extra-children")]
28674 {
28675 emit_idx += 1;
28676 }
28677 #[cfg(feature = "extra-children")]
28678 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28679 extra_iter
28680 .next()
28681 .unwrap()
28682 .node
28683 .write_to(writer)
28684 .map_err(SerializeError::from)?;
28685 }
28686 #[cfg(feature = "wml-settings")]
28687 if let Some(ref val) = self.title {
28688 val.write_element("w:title", writer)?;
28689 }
28690 #[cfg(feature = "extra-children")]
28691 {
28692 emit_idx += 1;
28693 }
28694 #[cfg(feature = "extra-children")]
28695 for extra in extra_iter {
28696 extra.node.write_to(writer).map_err(SerializeError::from)?;
28697 }
28698 Ok(())
28699 }
28700
28701 fn is_empty_element(&self) -> bool {
28702 #[cfg(feature = "wml-settings")]
28703 if self.size.is_some() {
28704 return false;
28705 }
28706 #[cfg(feature = "wml-settings")]
28707 if self.frameset_splitbar.is_some() {
28708 return false;
28709 }
28710 #[cfg(feature = "wml-settings")]
28711 if self.frame_layout.is_some() {
28712 return false;
28713 }
28714 #[cfg(feature = "wml-settings")]
28715 if self.title.is_some() {
28716 return false;
28717 }
28718 #[cfg(feature = "extra-children")]
28719 if !self.extra_children.is_empty() {
28720 return false;
28721 }
28722 true
28723 }
28724}
28725
28726impl ToXml for CTNumPicBullet {
28727 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
28728 #[allow(unused_mut)]
28729 let mut start = start;
28730 {
28731 let val = &self.num_pic_bullet_id;
28732 {
28733 let s = val.to_string();
28734 start.push_attribute(("w:numPicBulletId", s.as_str()));
28735 }
28736 }
28737 #[cfg(feature = "extra-attrs")]
28738 for (key, value) in &self.extra_attrs {
28739 start.push_attribute((key.as_str(), value.as_str()));
28740 }
28741 start
28742 }
28743
28744 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
28745 #[cfg(feature = "extra-children")]
28746 let mut extra_iter = self.extra_children.iter().peekable();
28747 #[cfg(feature = "extra-children")]
28748 let mut emit_idx: usize = 0;
28749 #[cfg(feature = "extra-children")]
28750 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28751 extra_iter
28752 .next()
28753 .unwrap()
28754 .node
28755 .write_to(writer)
28756 .map_err(SerializeError::from)?;
28757 }
28758 #[cfg(feature = "wml-numbering")]
28759 if let Some(ref val) = self.pict {
28760 val.write_element("w:pict", writer)?;
28761 }
28762 #[cfg(feature = "extra-children")]
28763 {
28764 emit_idx += 1;
28765 }
28766 #[cfg(feature = "extra-children")]
28767 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28768 extra_iter
28769 .next()
28770 .unwrap()
28771 .node
28772 .write_to(writer)
28773 .map_err(SerializeError::from)?;
28774 }
28775 #[cfg(feature = "wml-numbering")]
28776 if let Some(ref val) = self.drawing {
28777 val.write_element("w:drawing", writer)?;
28778 }
28779 #[cfg(feature = "extra-children")]
28780 {
28781 emit_idx += 1;
28782 }
28783 #[cfg(feature = "extra-children")]
28784 for extra in extra_iter {
28785 extra.node.write_to(writer).map_err(SerializeError::from)?;
28786 }
28787 Ok(())
28788 }
28789
28790 fn is_empty_element(&self) -> bool {
28791 #[cfg(feature = "wml-numbering")]
28792 if self.pict.is_some() {
28793 return false;
28794 }
28795 #[cfg(feature = "wml-numbering")]
28796 if self.drawing.is_some() {
28797 return false;
28798 }
28799 #[cfg(feature = "extra-children")]
28800 if !self.extra_children.is_empty() {
28801 return false;
28802 }
28803 true
28804 }
28805}
28806
28807impl ToXml for CTLevelSuffix {
28808 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
28809 #[allow(unused_mut)]
28810 let mut start = start;
28811 {
28812 let val = &self.value;
28813 {
28814 let s = val.to_string();
28815 start.push_attribute(("w:val", s.as_str()));
28816 }
28817 }
28818 #[cfg(feature = "extra-attrs")]
28819 for (key, value) in &self.extra_attrs {
28820 start.push_attribute((key.as_str(), value.as_str()));
28821 }
28822 start
28823 }
28824
28825 fn is_empty_element(&self) -> bool {
28826 true
28827 }
28828}
28829
28830impl ToXml for CTLevelText {
28831 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
28832 #[allow(unused_mut)]
28833 let mut start = start;
28834 if let Some(ref val) = self.value {
28835 start.push_attribute(("w:val", val.as_str()));
28836 }
28837 #[cfg(feature = "wml-numbering")]
28838 if let Some(ref val) = self.null {
28839 {
28840 let s = val.to_string();
28841 start.push_attribute(("w:null", s.as_str()));
28842 }
28843 }
28844 #[cfg(feature = "extra-attrs")]
28845 for (key, value) in &self.extra_attrs {
28846 start.push_attribute((key.as_str(), value.as_str()));
28847 }
28848 start
28849 }
28850
28851 fn is_empty_element(&self) -> bool {
28852 true
28853 }
28854}
28855
28856impl ToXml for CTLvlLegacy {
28857 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
28858 #[allow(unused_mut)]
28859 let mut start = start;
28860 #[cfg(feature = "wml-numbering")]
28861 if let Some(ref val) = self.legacy {
28862 {
28863 let s = val.to_string();
28864 start.push_attribute(("w:legacy", s.as_str()));
28865 }
28866 }
28867 #[cfg(feature = "wml-numbering")]
28868 if let Some(ref val) = self.legacy_space {
28869 {
28870 let s = val.to_string();
28871 start.push_attribute(("w:legacySpace", s.as_str()));
28872 }
28873 }
28874 #[cfg(feature = "wml-numbering")]
28875 if let Some(ref val) = self.legacy_indent {
28876 {
28877 let s = val.to_string();
28878 start.push_attribute(("w:legacyIndent", s.as_str()));
28879 }
28880 }
28881 #[cfg(feature = "extra-attrs")]
28882 for (key, value) in &self.extra_attrs {
28883 start.push_attribute((key.as_str(), value.as_str()));
28884 }
28885 start
28886 }
28887
28888 fn is_empty_element(&self) -> bool {
28889 true
28890 }
28891}
28892
28893impl ToXml for Level {
28894 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
28895 #[allow(unused_mut)]
28896 let mut start = start;
28897 {
28898 let val = &self.ilvl;
28899 {
28900 let s = val.to_string();
28901 start.push_attribute(("w:ilvl", s.as_str()));
28902 }
28903 }
28904 #[cfg(feature = "wml-numbering")]
28905 if let Some(ref val) = self.tplc {
28906 {
28907 let hex = encode_hex(val);
28908 start.push_attribute(("w:tplc", hex.as_str()));
28909 }
28910 }
28911 #[cfg(feature = "wml-numbering")]
28912 if let Some(ref val) = self.tentative {
28913 {
28914 let s = val.to_string();
28915 start.push_attribute(("w:tentative", s.as_str()));
28916 }
28917 }
28918 #[cfg(feature = "extra-attrs")]
28919 for (key, value) in &self.extra_attrs {
28920 start.push_attribute((key.as_str(), value.as_str()));
28921 }
28922 start
28923 }
28924
28925 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
28926 #[cfg(feature = "extra-children")]
28927 let mut extra_iter = self.extra_children.iter().peekable();
28928 #[cfg(feature = "extra-children")]
28929 let mut emit_idx: usize = 0;
28930 #[cfg(feature = "extra-children")]
28931 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28932 extra_iter
28933 .next()
28934 .unwrap()
28935 .node
28936 .write_to(writer)
28937 .map_err(SerializeError::from)?;
28938 }
28939 #[cfg(feature = "wml-numbering")]
28940 if let Some(ref val) = self.start {
28941 val.write_element("w:start", writer)?;
28942 }
28943 #[cfg(feature = "extra-children")]
28944 {
28945 emit_idx += 1;
28946 }
28947 #[cfg(feature = "extra-children")]
28948 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28949 extra_iter
28950 .next()
28951 .unwrap()
28952 .node
28953 .write_to(writer)
28954 .map_err(SerializeError::from)?;
28955 }
28956 #[cfg(feature = "wml-numbering")]
28957 if let Some(ref val) = self.num_fmt {
28958 val.write_element("w:numFmt", writer)?;
28959 }
28960 #[cfg(feature = "extra-children")]
28961 {
28962 emit_idx += 1;
28963 }
28964 #[cfg(feature = "extra-children")]
28965 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28966 extra_iter
28967 .next()
28968 .unwrap()
28969 .node
28970 .write_to(writer)
28971 .map_err(SerializeError::from)?;
28972 }
28973 #[cfg(feature = "wml-numbering")]
28974 if let Some(ref val) = self.lvl_restart {
28975 val.write_element("w:lvlRestart", writer)?;
28976 }
28977 #[cfg(feature = "extra-children")]
28978 {
28979 emit_idx += 1;
28980 }
28981 #[cfg(feature = "extra-children")]
28982 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
28983 extra_iter
28984 .next()
28985 .unwrap()
28986 .node
28987 .write_to(writer)
28988 .map_err(SerializeError::from)?;
28989 }
28990 #[cfg(feature = "wml-numbering")]
28991 if let Some(ref val) = self.paragraph_style {
28992 val.write_element("w:pStyle", writer)?;
28993 }
28994 #[cfg(feature = "extra-children")]
28995 {
28996 emit_idx += 1;
28997 }
28998 #[cfg(feature = "extra-children")]
28999 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29000 extra_iter
29001 .next()
29002 .unwrap()
29003 .node
29004 .write_to(writer)
29005 .map_err(SerializeError::from)?;
29006 }
29007 #[cfg(feature = "wml-numbering")]
29008 if let Some(ref val) = self.is_lgl {
29009 val.write_element("w:isLgl", writer)?;
29010 }
29011 #[cfg(feature = "extra-children")]
29012 {
29013 emit_idx += 1;
29014 }
29015 #[cfg(feature = "extra-children")]
29016 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29017 extra_iter
29018 .next()
29019 .unwrap()
29020 .node
29021 .write_to(writer)
29022 .map_err(SerializeError::from)?;
29023 }
29024 #[cfg(feature = "wml-numbering")]
29025 if let Some(ref val) = self.suff {
29026 val.write_element("w:suff", writer)?;
29027 }
29028 #[cfg(feature = "extra-children")]
29029 {
29030 emit_idx += 1;
29031 }
29032 #[cfg(feature = "extra-children")]
29033 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29034 extra_iter
29035 .next()
29036 .unwrap()
29037 .node
29038 .write_to(writer)
29039 .map_err(SerializeError::from)?;
29040 }
29041 #[cfg(feature = "wml-numbering")]
29042 if let Some(ref val) = self.lvl_text {
29043 val.write_element("w:lvlText", writer)?;
29044 }
29045 #[cfg(feature = "extra-children")]
29046 {
29047 emit_idx += 1;
29048 }
29049 #[cfg(feature = "extra-children")]
29050 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29051 extra_iter
29052 .next()
29053 .unwrap()
29054 .node
29055 .write_to(writer)
29056 .map_err(SerializeError::from)?;
29057 }
29058 #[cfg(feature = "wml-numbering")]
29059 if let Some(ref val) = self.lvl_pic_bullet_id {
29060 val.write_element("w:lvlPicBulletId", writer)?;
29061 }
29062 #[cfg(feature = "extra-children")]
29063 {
29064 emit_idx += 1;
29065 }
29066 #[cfg(feature = "extra-children")]
29067 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29068 extra_iter
29069 .next()
29070 .unwrap()
29071 .node
29072 .write_to(writer)
29073 .map_err(SerializeError::from)?;
29074 }
29075 #[cfg(feature = "wml-numbering")]
29076 if let Some(ref val) = self.legacy {
29077 val.write_element("w:legacy", writer)?;
29078 }
29079 #[cfg(feature = "extra-children")]
29080 {
29081 emit_idx += 1;
29082 }
29083 #[cfg(feature = "extra-children")]
29084 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29085 extra_iter
29086 .next()
29087 .unwrap()
29088 .node
29089 .write_to(writer)
29090 .map_err(SerializeError::from)?;
29091 }
29092 #[cfg(feature = "wml-numbering")]
29093 if let Some(ref val) = self.lvl_jc {
29094 val.write_element("w:lvlJc", writer)?;
29095 }
29096 #[cfg(feature = "extra-children")]
29097 {
29098 emit_idx += 1;
29099 }
29100 #[cfg(feature = "extra-children")]
29101 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29102 extra_iter
29103 .next()
29104 .unwrap()
29105 .node
29106 .write_to(writer)
29107 .map_err(SerializeError::from)?;
29108 }
29109 #[cfg(feature = "wml-numbering")]
29110 if let Some(ref val) = self.p_pr {
29111 val.write_element("w:pPr", writer)?;
29112 }
29113 #[cfg(feature = "extra-children")]
29114 {
29115 emit_idx += 1;
29116 }
29117 #[cfg(feature = "extra-children")]
29118 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29119 extra_iter
29120 .next()
29121 .unwrap()
29122 .node
29123 .write_to(writer)
29124 .map_err(SerializeError::from)?;
29125 }
29126 #[cfg(feature = "wml-numbering")]
29127 if let Some(ref val) = self.r_pr {
29128 val.write_element("w:rPr", writer)?;
29129 }
29130 #[cfg(feature = "extra-children")]
29131 {
29132 emit_idx += 1;
29133 }
29134 #[cfg(feature = "extra-children")]
29135 for extra in extra_iter {
29136 extra.node.write_to(writer).map_err(SerializeError::from)?;
29137 }
29138 Ok(())
29139 }
29140
29141 fn is_empty_element(&self) -> bool {
29142 #[cfg(feature = "wml-numbering")]
29143 if self.start.is_some() {
29144 return false;
29145 }
29146 #[cfg(feature = "wml-numbering")]
29147 if self.num_fmt.is_some() {
29148 return false;
29149 }
29150 #[cfg(feature = "wml-numbering")]
29151 if self.lvl_restart.is_some() {
29152 return false;
29153 }
29154 #[cfg(feature = "wml-numbering")]
29155 if self.paragraph_style.is_some() {
29156 return false;
29157 }
29158 #[cfg(feature = "wml-numbering")]
29159 if self.is_lgl.is_some() {
29160 return false;
29161 }
29162 #[cfg(feature = "wml-numbering")]
29163 if self.suff.is_some() {
29164 return false;
29165 }
29166 #[cfg(feature = "wml-numbering")]
29167 if self.lvl_text.is_some() {
29168 return false;
29169 }
29170 #[cfg(feature = "wml-numbering")]
29171 if self.lvl_pic_bullet_id.is_some() {
29172 return false;
29173 }
29174 #[cfg(feature = "wml-numbering")]
29175 if self.legacy.is_some() {
29176 return false;
29177 }
29178 #[cfg(feature = "wml-numbering")]
29179 if self.lvl_jc.is_some() {
29180 return false;
29181 }
29182 #[cfg(feature = "wml-numbering")]
29183 if self.p_pr.is_some() {
29184 return false;
29185 }
29186 #[cfg(feature = "wml-numbering")]
29187 if self.r_pr.is_some() {
29188 return false;
29189 }
29190 #[cfg(feature = "extra-children")]
29191 if !self.extra_children.is_empty() {
29192 return false;
29193 }
29194 true
29195 }
29196}
29197
29198impl ToXml for CTMultiLevelType {
29199 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
29200 #[allow(unused_mut)]
29201 let mut start = start;
29202 {
29203 let val = &self.value;
29204 {
29205 let s = val.to_string();
29206 start.push_attribute(("w:val", s.as_str()));
29207 }
29208 }
29209 #[cfg(feature = "extra-attrs")]
29210 for (key, value) in &self.extra_attrs {
29211 start.push_attribute((key.as_str(), value.as_str()));
29212 }
29213 start
29214 }
29215
29216 fn is_empty_element(&self) -> bool {
29217 true
29218 }
29219}
29220
29221impl ToXml for AbstractNumbering {
29222 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
29223 #[allow(unused_mut)]
29224 let mut start = start;
29225 {
29226 let val = &self.abstract_num_id;
29227 {
29228 let s = val.to_string();
29229 start.push_attribute(("w:abstractNumId", s.as_str()));
29230 }
29231 }
29232 #[cfg(feature = "extra-attrs")]
29233 for (key, value) in &self.extra_attrs {
29234 start.push_attribute((key.as_str(), value.as_str()));
29235 }
29236 start
29237 }
29238
29239 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
29240 #[cfg(feature = "extra-children")]
29241 let mut extra_iter = self.extra_children.iter().peekable();
29242 #[cfg(feature = "extra-children")]
29243 let mut emit_idx: usize = 0;
29244 #[cfg(feature = "extra-children")]
29245 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29246 extra_iter
29247 .next()
29248 .unwrap()
29249 .node
29250 .write_to(writer)
29251 .map_err(SerializeError::from)?;
29252 }
29253 #[cfg(feature = "wml-numbering")]
29254 if let Some(ref val) = self.nsid {
29255 val.write_element("w:nsid", writer)?;
29256 }
29257 #[cfg(feature = "extra-children")]
29258 {
29259 emit_idx += 1;
29260 }
29261 #[cfg(feature = "extra-children")]
29262 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29263 extra_iter
29264 .next()
29265 .unwrap()
29266 .node
29267 .write_to(writer)
29268 .map_err(SerializeError::from)?;
29269 }
29270 #[cfg(feature = "wml-numbering")]
29271 if let Some(ref val) = self.multi_level_type {
29272 val.write_element("w:multiLevelType", writer)?;
29273 }
29274 #[cfg(feature = "extra-children")]
29275 {
29276 emit_idx += 1;
29277 }
29278 #[cfg(feature = "extra-children")]
29279 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29280 extra_iter
29281 .next()
29282 .unwrap()
29283 .node
29284 .write_to(writer)
29285 .map_err(SerializeError::from)?;
29286 }
29287 #[cfg(feature = "wml-numbering")]
29288 if let Some(ref val) = self.tmpl {
29289 val.write_element("w:tmpl", writer)?;
29290 }
29291 #[cfg(feature = "extra-children")]
29292 {
29293 emit_idx += 1;
29294 }
29295 #[cfg(feature = "extra-children")]
29296 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29297 extra_iter
29298 .next()
29299 .unwrap()
29300 .node
29301 .write_to(writer)
29302 .map_err(SerializeError::from)?;
29303 }
29304 #[cfg(feature = "wml-numbering")]
29305 if let Some(ref val) = self.name {
29306 val.write_element("w:name", writer)?;
29307 }
29308 #[cfg(feature = "extra-children")]
29309 {
29310 emit_idx += 1;
29311 }
29312 #[cfg(feature = "extra-children")]
29313 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29314 extra_iter
29315 .next()
29316 .unwrap()
29317 .node
29318 .write_to(writer)
29319 .map_err(SerializeError::from)?;
29320 }
29321 #[cfg(feature = "wml-numbering")]
29322 if let Some(ref val) = self.style_link {
29323 val.write_element("w:styleLink", writer)?;
29324 }
29325 #[cfg(feature = "extra-children")]
29326 {
29327 emit_idx += 1;
29328 }
29329 #[cfg(feature = "extra-children")]
29330 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29331 extra_iter
29332 .next()
29333 .unwrap()
29334 .node
29335 .write_to(writer)
29336 .map_err(SerializeError::from)?;
29337 }
29338 #[cfg(feature = "wml-numbering")]
29339 if let Some(ref val) = self.num_style_link {
29340 val.write_element("w:numStyleLink", writer)?;
29341 }
29342 #[cfg(feature = "extra-children")]
29343 {
29344 emit_idx += 1;
29345 }
29346 for item in &self.lvl {
29347 #[cfg(feature = "extra-children")]
29348 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29349 extra_iter
29350 .next()
29351 .unwrap()
29352 .node
29353 .write_to(writer)
29354 .map_err(SerializeError::from)?;
29355 }
29356 item.write_element("w:lvl", writer)?;
29357 #[cfg(feature = "extra-children")]
29358 {
29359 emit_idx += 1;
29360 }
29361 }
29362 #[cfg(feature = "extra-children")]
29363 for extra in extra_iter {
29364 extra.node.write_to(writer).map_err(SerializeError::from)?;
29365 }
29366 Ok(())
29367 }
29368
29369 fn is_empty_element(&self) -> bool {
29370 #[cfg(feature = "wml-numbering")]
29371 if self.nsid.is_some() {
29372 return false;
29373 }
29374 #[cfg(feature = "wml-numbering")]
29375 if self.multi_level_type.is_some() {
29376 return false;
29377 }
29378 #[cfg(feature = "wml-numbering")]
29379 if self.tmpl.is_some() {
29380 return false;
29381 }
29382 #[cfg(feature = "wml-numbering")]
29383 if self.name.is_some() {
29384 return false;
29385 }
29386 #[cfg(feature = "wml-numbering")]
29387 if self.style_link.is_some() {
29388 return false;
29389 }
29390 #[cfg(feature = "wml-numbering")]
29391 if self.num_style_link.is_some() {
29392 return false;
29393 }
29394 if !self.lvl.is_empty() {
29395 return false;
29396 }
29397 #[cfg(feature = "extra-children")]
29398 if !self.extra_children.is_empty() {
29399 return false;
29400 }
29401 true
29402 }
29403}
29404
29405impl ToXml for CTNumLvl {
29406 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
29407 #[allow(unused_mut)]
29408 let mut start = start;
29409 {
29410 let val = &self.ilvl;
29411 {
29412 let s = val.to_string();
29413 start.push_attribute(("w:ilvl", s.as_str()));
29414 }
29415 }
29416 #[cfg(feature = "extra-attrs")]
29417 for (key, value) in &self.extra_attrs {
29418 start.push_attribute((key.as_str(), value.as_str()));
29419 }
29420 start
29421 }
29422
29423 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
29424 #[cfg(feature = "extra-children")]
29425 let mut extra_iter = self.extra_children.iter().peekable();
29426 #[cfg(feature = "extra-children")]
29427 let mut emit_idx: usize = 0;
29428 #[cfg(feature = "extra-children")]
29429 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29430 extra_iter
29431 .next()
29432 .unwrap()
29433 .node
29434 .write_to(writer)
29435 .map_err(SerializeError::from)?;
29436 }
29437 #[cfg(feature = "wml-numbering")]
29438 if let Some(ref val) = self.start_override {
29439 val.write_element("w:startOverride", writer)?;
29440 }
29441 #[cfg(feature = "extra-children")]
29442 {
29443 emit_idx += 1;
29444 }
29445 #[cfg(feature = "extra-children")]
29446 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29447 extra_iter
29448 .next()
29449 .unwrap()
29450 .node
29451 .write_to(writer)
29452 .map_err(SerializeError::from)?;
29453 }
29454 #[cfg(feature = "wml-numbering")]
29455 if let Some(ref val) = self.lvl {
29456 val.write_element("w:lvl", writer)?;
29457 }
29458 #[cfg(feature = "extra-children")]
29459 {
29460 emit_idx += 1;
29461 }
29462 #[cfg(feature = "extra-children")]
29463 for extra in extra_iter {
29464 extra.node.write_to(writer).map_err(SerializeError::from)?;
29465 }
29466 Ok(())
29467 }
29468
29469 fn is_empty_element(&self) -> bool {
29470 #[cfg(feature = "wml-numbering")]
29471 if self.start_override.is_some() {
29472 return false;
29473 }
29474 #[cfg(feature = "wml-numbering")]
29475 if self.lvl.is_some() {
29476 return false;
29477 }
29478 #[cfg(feature = "extra-children")]
29479 if !self.extra_children.is_empty() {
29480 return false;
29481 }
29482 true
29483 }
29484}
29485
29486impl ToXml for NumberingInstance {
29487 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
29488 #[allow(unused_mut)]
29489 let mut start = start;
29490 {
29491 let val = &self.num_id;
29492 {
29493 let s = val.to_string();
29494 start.push_attribute(("w:numId", s.as_str()));
29495 }
29496 }
29497 #[cfg(feature = "extra-attrs")]
29498 for (key, value) in &self.extra_attrs {
29499 start.push_attribute((key.as_str(), value.as_str()));
29500 }
29501 start
29502 }
29503
29504 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
29505 #[cfg(feature = "extra-children")]
29506 let mut extra_iter = self.extra_children.iter().peekable();
29507 #[cfg(feature = "extra-children")]
29508 let mut emit_idx: usize = 0;
29509 #[cfg(feature = "extra-children")]
29510 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29511 extra_iter
29512 .next()
29513 .unwrap()
29514 .node
29515 .write_to(writer)
29516 .map_err(SerializeError::from)?;
29517 }
29518 {
29519 let val = &self.abstract_num_id;
29520 val.write_element("w:abstractNumId", writer)?;
29521 }
29522 #[cfg(feature = "extra-children")]
29523 {
29524 emit_idx += 1;
29525 }
29526 #[cfg(feature = "wml-numbering")]
29527 for item in &self.lvl_override {
29528 #[cfg(feature = "extra-children")]
29529 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29530 extra_iter
29531 .next()
29532 .unwrap()
29533 .node
29534 .write_to(writer)
29535 .map_err(SerializeError::from)?;
29536 }
29537 item.write_element("w:lvlOverride", writer)?;
29538 #[cfg(feature = "extra-children")]
29539 {
29540 emit_idx += 1;
29541 }
29542 }
29543 #[cfg(feature = "extra-children")]
29544 for extra in extra_iter {
29545 extra.node.write_to(writer).map_err(SerializeError::from)?;
29546 }
29547 Ok(())
29548 }
29549
29550 fn is_empty_element(&self) -> bool {
29551 false
29552 }
29553}
29554
29555impl ToXml for Numbering {
29556 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
29557 #[cfg(feature = "extra-children")]
29558 let mut extra_iter = self.extra_children.iter().peekable();
29559 #[cfg(feature = "extra-children")]
29560 let mut emit_idx: usize = 0;
29561 #[cfg(feature = "wml-numbering")]
29562 for item in &self.num_pic_bullet {
29563 #[cfg(feature = "extra-children")]
29564 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29565 extra_iter
29566 .next()
29567 .unwrap()
29568 .node
29569 .write_to(writer)
29570 .map_err(SerializeError::from)?;
29571 }
29572 item.write_element("w:numPicBullet", writer)?;
29573 #[cfg(feature = "extra-children")]
29574 {
29575 emit_idx += 1;
29576 }
29577 }
29578 for item in &self.abstract_num {
29579 #[cfg(feature = "extra-children")]
29580 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29581 extra_iter
29582 .next()
29583 .unwrap()
29584 .node
29585 .write_to(writer)
29586 .map_err(SerializeError::from)?;
29587 }
29588 item.write_element("w:abstractNum", writer)?;
29589 #[cfg(feature = "extra-children")]
29590 {
29591 emit_idx += 1;
29592 }
29593 }
29594 for item in &self.num {
29595 #[cfg(feature = "extra-children")]
29596 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29597 extra_iter
29598 .next()
29599 .unwrap()
29600 .node
29601 .write_to(writer)
29602 .map_err(SerializeError::from)?;
29603 }
29604 item.write_element("w:num", writer)?;
29605 #[cfg(feature = "extra-children")]
29606 {
29607 emit_idx += 1;
29608 }
29609 }
29610 #[cfg(feature = "extra-children")]
29611 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29612 extra_iter
29613 .next()
29614 .unwrap()
29615 .node
29616 .write_to(writer)
29617 .map_err(SerializeError::from)?;
29618 }
29619 #[cfg(feature = "wml-numbering")]
29620 if let Some(ref val) = self.num_id_mac_at_cleanup {
29621 val.write_element("w:numIdMacAtCleanup", writer)?;
29622 }
29623 #[cfg(feature = "extra-children")]
29624 {
29625 emit_idx += 1;
29626 }
29627 #[cfg(feature = "extra-children")]
29628 for extra in extra_iter {
29629 extra.node.write_to(writer).map_err(SerializeError::from)?;
29630 }
29631 Ok(())
29632 }
29633
29634 fn is_empty_element(&self) -> bool {
29635 #[cfg(feature = "wml-numbering")]
29636 if !self.num_pic_bullet.is_empty() {
29637 return false;
29638 }
29639 if !self.abstract_num.is_empty() {
29640 return false;
29641 }
29642 if !self.num.is_empty() {
29643 return false;
29644 }
29645 #[cfg(feature = "wml-numbering")]
29646 if self.num_id_mac_at_cleanup.is_some() {
29647 return false;
29648 }
29649 #[cfg(feature = "extra-children")]
29650 if !self.extra_children.is_empty() {
29651 return false;
29652 }
29653 true
29654 }
29655}
29656
29657impl ToXml for TableStyleProperties {
29658 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
29659 #[allow(unused_mut)]
29660 let mut start = start;
29661 {
29662 let val = &self.r#type;
29663 {
29664 let s = val.to_string();
29665 start.push_attribute(("w:type", s.as_str()));
29666 }
29667 }
29668 #[cfg(feature = "extra-attrs")]
29669 for (key, value) in &self.extra_attrs {
29670 start.push_attribute((key.as_str(), value.as_str()));
29671 }
29672 start
29673 }
29674
29675 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
29676 #[cfg(feature = "extra-children")]
29677 let mut extra_iter = self.extra_children.iter().peekable();
29678 #[cfg(feature = "extra-children")]
29679 let mut emit_idx: usize = 0;
29680 #[cfg(feature = "extra-children")]
29681 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29682 extra_iter
29683 .next()
29684 .unwrap()
29685 .node
29686 .write_to(writer)
29687 .map_err(SerializeError::from)?;
29688 }
29689 #[cfg(feature = "wml-styling")]
29690 if let Some(ref val) = self.p_pr {
29691 val.write_element("w:pPr", writer)?;
29692 }
29693 #[cfg(feature = "extra-children")]
29694 {
29695 emit_idx += 1;
29696 }
29697 #[cfg(feature = "extra-children")]
29698 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29699 extra_iter
29700 .next()
29701 .unwrap()
29702 .node
29703 .write_to(writer)
29704 .map_err(SerializeError::from)?;
29705 }
29706 #[cfg(feature = "wml-styling")]
29707 if let Some(ref val) = self.r_pr {
29708 val.write_element("w:rPr", writer)?;
29709 }
29710 #[cfg(feature = "extra-children")]
29711 {
29712 emit_idx += 1;
29713 }
29714 #[cfg(feature = "extra-children")]
29715 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29716 extra_iter
29717 .next()
29718 .unwrap()
29719 .node
29720 .write_to(writer)
29721 .map_err(SerializeError::from)?;
29722 }
29723 #[cfg(feature = "wml-styling")]
29724 if let Some(ref val) = self.table_properties {
29725 val.write_element("w:tblPr", writer)?;
29726 }
29727 #[cfg(feature = "extra-children")]
29728 {
29729 emit_idx += 1;
29730 }
29731 #[cfg(feature = "extra-children")]
29732 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29733 extra_iter
29734 .next()
29735 .unwrap()
29736 .node
29737 .write_to(writer)
29738 .map_err(SerializeError::from)?;
29739 }
29740 #[cfg(feature = "wml-styling")]
29741 if let Some(ref val) = self.row_properties {
29742 val.write_element("w:trPr", writer)?;
29743 }
29744 #[cfg(feature = "extra-children")]
29745 {
29746 emit_idx += 1;
29747 }
29748 #[cfg(feature = "extra-children")]
29749 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29750 extra_iter
29751 .next()
29752 .unwrap()
29753 .node
29754 .write_to(writer)
29755 .map_err(SerializeError::from)?;
29756 }
29757 #[cfg(feature = "wml-styling")]
29758 if let Some(ref val) = self.cell_properties {
29759 val.write_element("w:tcPr", writer)?;
29760 }
29761 #[cfg(feature = "extra-children")]
29762 {
29763 emit_idx += 1;
29764 }
29765 #[cfg(feature = "extra-children")]
29766 for extra in extra_iter {
29767 extra.node.write_to(writer).map_err(SerializeError::from)?;
29768 }
29769 Ok(())
29770 }
29771
29772 fn is_empty_element(&self) -> bool {
29773 #[cfg(feature = "wml-styling")]
29774 if self.p_pr.is_some() {
29775 return false;
29776 }
29777 #[cfg(feature = "wml-styling")]
29778 if self.r_pr.is_some() {
29779 return false;
29780 }
29781 #[cfg(feature = "wml-styling")]
29782 if self.table_properties.is_some() {
29783 return false;
29784 }
29785 #[cfg(feature = "wml-styling")]
29786 if self.row_properties.is_some() {
29787 return false;
29788 }
29789 #[cfg(feature = "wml-styling")]
29790 if self.cell_properties.is_some() {
29791 return false;
29792 }
29793 #[cfg(feature = "extra-children")]
29794 if !self.extra_children.is_empty() {
29795 return false;
29796 }
29797 true
29798 }
29799}
29800
29801impl ToXml for Style {
29802 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
29803 #[allow(unused_mut)]
29804 let mut start = start;
29805 if let Some(ref val) = self.r#type {
29806 {
29807 let s = val.to_string();
29808 start.push_attribute(("w:type", s.as_str()));
29809 }
29810 }
29811 if let Some(ref val) = self.style_id {
29812 start.push_attribute(("w:styleId", val.as_str()));
29813 }
29814 if let Some(ref val) = self.default {
29815 {
29816 let s = val.to_string();
29817 start.push_attribute(("w:default", s.as_str()));
29818 }
29819 }
29820 if let Some(ref val) = self.custom_style {
29821 {
29822 let s = val.to_string();
29823 start.push_attribute(("w:customStyle", s.as_str()));
29824 }
29825 }
29826 #[cfg(feature = "extra-attrs")]
29827 for (key, value) in &self.extra_attrs {
29828 start.push_attribute((key.as_str(), value.as_str()));
29829 }
29830 start
29831 }
29832
29833 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
29834 #[cfg(feature = "extra-children")]
29835 let mut extra_iter = self.extra_children.iter().peekable();
29836 #[cfg(feature = "extra-children")]
29837 let mut emit_idx: usize = 0;
29838 #[cfg(feature = "extra-children")]
29839 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29840 extra_iter
29841 .next()
29842 .unwrap()
29843 .node
29844 .write_to(writer)
29845 .map_err(SerializeError::from)?;
29846 }
29847 if let Some(ref val) = self.name {
29848 val.write_element("w:name", writer)?;
29849 }
29850 #[cfg(feature = "extra-children")]
29851 {
29852 emit_idx += 1;
29853 }
29854 #[cfg(feature = "extra-children")]
29855 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29856 extra_iter
29857 .next()
29858 .unwrap()
29859 .node
29860 .write_to(writer)
29861 .map_err(SerializeError::from)?;
29862 }
29863 if let Some(ref val) = self.aliases {
29864 val.write_element("w:aliases", writer)?;
29865 }
29866 #[cfg(feature = "extra-children")]
29867 {
29868 emit_idx += 1;
29869 }
29870 #[cfg(feature = "extra-children")]
29871 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29872 extra_iter
29873 .next()
29874 .unwrap()
29875 .node
29876 .write_to(writer)
29877 .map_err(SerializeError::from)?;
29878 }
29879 if let Some(ref val) = self.based_on {
29880 val.write_element("w:basedOn", writer)?;
29881 }
29882 #[cfg(feature = "extra-children")]
29883 {
29884 emit_idx += 1;
29885 }
29886 #[cfg(feature = "extra-children")]
29887 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29888 extra_iter
29889 .next()
29890 .unwrap()
29891 .node
29892 .write_to(writer)
29893 .map_err(SerializeError::from)?;
29894 }
29895 #[cfg(feature = "wml-styling")]
29896 if let Some(ref val) = self.next {
29897 val.write_element("w:next", writer)?;
29898 }
29899 #[cfg(feature = "extra-children")]
29900 {
29901 emit_idx += 1;
29902 }
29903 #[cfg(feature = "extra-children")]
29904 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29905 extra_iter
29906 .next()
29907 .unwrap()
29908 .node
29909 .write_to(writer)
29910 .map_err(SerializeError::from)?;
29911 }
29912 #[cfg(feature = "wml-styling")]
29913 if let Some(ref val) = self.link {
29914 val.write_element("w:link", writer)?;
29915 }
29916 #[cfg(feature = "extra-children")]
29917 {
29918 emit_idx += 1;
29919 }
29920 #[cfg(feature = "extra-children")]
29921 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29922 extra_iter
29923 .next()
29924 .unwrap()
29925 .node
29926 .write_to(writer)
29927 .map_err(SerializeError::from)?;
29928 }
29929 #[cfg(feature = "wml-styling")]
29930 if let Some(ref val) = self.auto_redefine {
29931 val.write_element("w:autoRedefine", writer)?;
29932 }
29933 #[cfg(feature = "extra-children")]
29934 {
29935 emit_idx += 1;
29936 }
29937 #[cfg(feature = "extra-children")]
29938 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29939 extra_iter
29940 .next()
29941 .unwrap()
29942 .node
29943 .write_to(writer)
29944 .map_err(SerializeError::from)?;
29945 }
29946 #[cfg(feature = "wml-styling")]
29947 if let Some(ref val) = self.hidden {
29948 val.write_element("w:hidden", writer)?;
29949 }
29950 #[cfg(feature = "extra-children")]
29951 {
29952 emit_idx += 1;
29953 }
29954 #[cfg(feature = "extra-children")]
29955 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29956 extra_iter
29957 .next()
29958 .unwrap()
29959 .node
29960 .write_to(writer)
29961 .map_err(SerializeError::from)?;
29962 }
29963 #[cfg(feature = "wml-styling")]
29964 if let Some(ref val) = self.ui_priority {
29965 val.write_element("w:uiPriority", writer)?;
29966 }
29967 #[cfg(feature = "extra-children")]
29968 {
29969 emit_idx += 1;
29970 }
29971 #[cfg(feature = "extra-children")]
29972 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29973 extra_iter
29974 .next()
29975 .unwrap()
29976 .node
29977 .write_to(writer)
29978 .map_err(SerializeError::from)?;
29979 }
29980 #[cfg(feature = "wml-styling")]
29981 if let Some(ref val) = self.semi_hidden {
29982 val.write_element("w:semiHidden", writer)?;
29983 }
29984 #[cfg(feature = "extra-children")]
29985 {
29986 emit_idx += 1;
29987 }
29988 #[cfg(feature = "extra-children")]
29989 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
29990 extra_iter
29991 .next()
29992 .unwrap()
29993 .node
29994 .write_to(writer)
29995 .map_err(SerializeError::from)?;
29996 }
29997 #[cfg(feature = "wml-styling")]
29998 if let Some(ref val) = self.unhide_when_used {
29999 val.write_element("w:unhideWhenUsed", writer)?;
30000 }
30001 #[cfg(feature = "extra-children")]
30002 {
30003 emit_idx += 1;
30004 }
30005 #[cfg(feature = "extra-children")]
30006 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30007 extra_iter
30008 .next()
30009 .unwrap()
30010 .node
30011 .write_to(writer)
30012 .map_err(SerializeError::from)?;
30013 }
30014 #[cfg(feature = "wml-styling")]
30015 if let Some(ref val) = self.q_format {
30016 val.write_element("w:qFormat", writer)?;
30017 }
30018 #[cfg(feature = "extra-children")]
30019 {
30020 emit_idx += 1;
30021 }
30022 #[cfg(feature = "extra-children")]
30023 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30024 extra_iter
30025 .next()
30026 .unwrap()
30027 .node
30028 .write_to(writer)
30029 .map_err(SerializeError::from)?;
30030 }
30031 #[cfg(feature = "wml-settings")]
30032 if let Some(ref val) = self.locked {
30033 val.write_element("w:locked", writer)?;
30034 }
30035 #[cfg(feature = "extra-children")]
30036 {
30037 emit_idx += 1;
30038 }
30039 #[cfg(feature = "extra-children")]
30040 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30041 extra_iter
30042 .next()
30043 .unwrap()
30044 .node
30045 .write_to(writer)
30046 .map_err(SerializeError::from)?;
30047 }
30048 #[cfg(feature = "wml-settings")]
30049 if let Some(ref val) = self.personal {
30050 val.write_element("w:personal", writer)?;
30051 }
30052 #[cfg(feature = "extra-children")]
30053 {
30054 emit_idx += 1;
30055 }
30056 #[cfg(feature = "extra-children")]
30057 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30058 extra_iter
30059 .next()
30060 .unwrap()
30061 .node
30062 .write_to(writer)
30063 .map_err(SerializeError::from)?;
30064 }
30065 #[cfg(feature = "wml-settings")]
30066 if let Some(ref val) = self.personal_compose {
30067 val.write_element("w:personalCompose", writer)?;
30068 }
30069 #[cfg(feature = "extra-children")]
30070 {
30071 emit_idx += 1;
30072 }
30073 #[cfg(feature = "extra-children")]
30074 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30075 extra_iter
30076 .next()
30077 .unwrap()
30078 .node
30079 .write_to(writer)
30080 .map_err(SerializeError::from)?;
30081 }
30082 #[cfg(feature = "wml-settings")]
30083 if let Some(ref val) = self.personal_reply {
30084 val.write_element("w:personalReply", writer)?;
30085 }
30086 #[cfg(feature = "extra-children")]
30087 {
30088 emit_idx += 1;
30089 }
30090 #[cfg(feature = "extra-children")]
30091 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30092 extra_iter
30093 .next()
30094 .unwrap()
30095 .node
30096 .write_to(writer)
30097 .map_err(SerializeError::from)?;
30098 }
30099 #[cfg(feature = "wml-track-changes")]
30100 if let Some(ref val) = self.rsid {
30101 val.write_element("w:rsid", writer)?;
30102 }
30103 #[cfg(feature = "extra-children")]
30104 {
30105 emit_idx += 1;
30106 }
30107 #[cfg(feature = "extra-children")]
30108 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30109 extra_iter
30110 .next()
30111 .unwrap()
30112 .node
30113 .write_to(writer)
30114 .map_err(SerializeError::from)?;
30115 }
30116 #[cfg(feature = "wml-styling")]
30117 if let Some(ref val) = self.p_pr {
30118 val.write_element("w:pPr", writer)?;
30119 }
30120 #[cfg(feature = "extra-children")]
30121 {
30122 emit_idx += 1;
30123 }
30124 #[cfg(feature = "extra-children")]
30125 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30126 extra_iter
30127 .next()
30128 .unwrap()
30129 .node
30130 .write_to(writer)
30131 .map_err(SerializeError::from)?;
30132 }
30133 #[cfg(feature = "wml-styling")]
30134 if let Some(ref val) = self.r_pr {
30135 val.write_element("w:rPr", writer)?;
30136 }
30137 #[cfg(feature = "extra-children")]
30138 {
30139 emit_idx += 1;
30140 }
30141 #[cfg(feature = "extra-children")]
30142 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30143 extra_iter
30144 .next()
30145 .unwrap()
30146 .node
30147 .write_to(writer)
30148 .map_err(SerializeError::from)?;
30149 }
30150 #[cfg(feature = "wml-styling")]
30151 if let Some(ref val) = self.table_properties {
30152 val.write_element("w:tblPr", writer)?;
30153 }
30154 #[cfg(feature = "extra-children")]
30155 {
30156 emit_idx += 1;
30157 }
30158 #[cfg(feature = "extra-children")]
30159 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30160 extra_iter
30161 .next()
30162 .unwrap()
30163 .node
30164 .write_to(writer)
30165 .map_err(SerializeError::from)?;
30166 }
30167 #[cfg(feature = "wml-styling")]
30168 if let Some(ref val) = self.row_properties {
30169 val.write_element("w:trPr", writer)?;
30170 }
30171 #[cfg(feature = "extra-children")]
30172 {
30173 emit_idx += 1;
30174 }
30175 #[cfg(feature = "extra-children")]
30176 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30177 extra_iter
30178 .next()
30179 .unwrap()
30180 .node
30181 .write_to(writer)
30182 .map_err(SerializeError::from)?;
30183 }
30184 #[cfg(feature = "wml-styling")]
30185 if let Some(ref val) = self.cell_properties {
30186 val.write_element("w:tcPr", writer)?;
30187 }
30188 #[cfg(feature = "extra-children")]
30189 {
30190 emit_idx += 1;
30191 }
30192 #[cfg(feature = "wml-styling")]
30193 for item in &self.tbl_style_pr {
30194 #[cfg(feature = "extra-children")]
30195 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30196 extra_iter
30197 .next()
30198 .unwrap()
30199 .node
30200 .write_to(writer)
30201 .map_err(SerializeError::from)?;
30202 }
30203 item.write_element("w:tblStylePr", writer)?;
30204 #[cfg(feature = "extra-children")]
30205 {
30206 emit_idx += 1;
30207 }
30208 }
30209 #[cfg(feature = "extra-children")]
30210 for extra in extra_iter {
30211 extra.node.write_to(writer).map_err(SerializeError::from)?;
30212 }
30213 Ok(())
30214 }
30215
30216 fn is_empty_element(&self) -> bool {
30217 if self.name.is_some() {
30218 return false;
30219 }
30220 if self.aliases.is_some() {
30221 return false;
30222 }
30223 if self.based_on.is_some() {
30224 return false;
30225 }
30226 #[cfg(feature = "wml-styling")]
30227 if self.next.is_some() {
30228 return false;
30229 }
30230 #[cfg(feature = "wml-styling")]
30231 if self.link.is_some() {
30232 return false;
30233 }
30234 #[cfg(feature = "wml-styling")]
30235 if self.auto_redefine.is_some() {
30236 return false;
30237 }
30238 #[cfg(feature = "wml-styling")]
30239 if self.hidden.is_some() {
30240 return false;
30241 }
30242 #[cfg(feature = "wml-styling")]
30243 if self.ui_priority.is_some() {
30244 return false;
30245 }
30246 #[cfg(feature = "wml-styling")]
30247 if self.semi_hidden.is_some() {
30248 return false;
30249 }
30250 #[cfg(feature = "wml-styling")]
30251 if self.unhide_when_used.is_some() {
30252 return false;
30253 }
30254 #[cfg(feature = "wml-styling")]
30255 if self.q_format.is_some() {
30256 return false;
30257 }
30258 #[cfg(feature = "wml-settings")]
30259 if self.locked.is_some() {
30260 return false;
30261 }
30262 #[cfg(feature = "wml-settings")]
30263 if self.personal.is_some() {
30264 return false;
30265 }
30266 #[cfg(feature = "wml-settings")]
30267 if self.personal_compose.is_some() {
30268 return false;
30269 }
30270 #[cfg(feature = "wml-settings")]
30271 if self.personal_reply.is_some() {
30272 return false;
30273 }
30274 #[cfg(feature = "wml-track-changes")]
30275 if self.rsid.is_some() {
30276 return false;
30277 }
30278 #[cfg(feature = "wml-styling")]
30279 if self.p_pr.is_some() {
30280 return false;
30281 }
30282 #[cfg(feature = "wml-styling")]
30283 if self.r_pr.is_some() {
30284 return false;
30285 }
30286 #[cfg(feature = "wml-styling")]
30287 if self.table_properties.is_some() {
30288 return false;
30289 }
30290 #[cfg(feature = "wml-styling")]
30291 if self.row_properties.is_some() {
30292 return false;
30293 }
30294 #[cfg(feature = "wml-styling")]
30295 if self.cell_properties.is_some() {
30296 return false;
30297 }
30298 #[cfg(feature = "wml-styling")]
30299 if !self.tbl_style_pr.is_empty() {
30300 return false;
30301 }
30302 #[cfg(feature = "extra-children")]
30303 if !self.extra_children.is_empty() {
30304 return false;
30305 }
30306 true
30307 }
30308}
30309
30310impl ToXml for LatentStyleException {
30311 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
30312 #[allow(unused_mut)]
30313 let mut start = start;
30314 {
30315 let val = &self.name;
30316 start.push_attribute(("w:name", val.as_str()));
30317 }
30318 #[cfg(feature = "wml-styling")]
30319 if let Some(ref val) = self.locked {
30320 {
30321 let s = val.to_string();
30322 start.push_attribute(("w:locked", s.as_str()));
30323 }
30324 }
30325 #[cfg(feature = "wml-styling")]
30326 if let Some(ref val) = self.ui_priority {
30327 {
30328 let s = val.to_string();
30329 start.push_attribute(("w:uiPriority", s.as_str()));
30330 }
30331 }
30332 #[cfg(feature = "wml-styling")]
30333 if let Some(ref val) = self.semi_hidden {
30334 {
30335 let s = val.to_string();
30336 start.push_attribute(("w:semiHidden", s.as_str()));
30337 }
30338 }
30339 #[cfg(feature = "wml-styling")]
30340 if let Some(ref val) = self.unhide_when_used {
30341 {
30342 let s = val.to_string();
30343 start.push_attribute(("w:unhideWhenUsed", s.as_str()));
30344 }
30345 }
30346 #[cfg(feature = "wml-styling")]
30347 if let Some(ref val) = self.q_format {
30348 {
30349 let s = val.to_string();
30350 start.push_attribute(("w:qFormat", s.as_str()));
30351 }
30352 }
30353 #[cfg(feature = "extra-attrs")]
30354 for (key, value) in &self.extra_attrs {
30355 start.push_attribute((key.as_str(), value.as_str()));
30356 }
30357 start
30358 }
30359
30360 fn is_empty_element(&self) -> bool {
30361 true
30362 }
30363}
30364
30365impl ToXml for LatentStyles {
30366 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
30367 #[allow(unused_mut)]
30368 let mut start = start;
30369 #[cfg(feature = "wml-styling")]
30370 if let Some(ref val) = self.def_locked_state {
30371 {
30372 let s = val.to_string();
30373 start.push_attribute(("w:defLockedState", s.as_str()));
30374 }
30375 }
30376 #[cfg(feature = "wml-styling")]
30377 if let Some(ref val) = self.def_u_i_priority {
30378 {
30379 let s = val.to_string();
30380 start.push_attribute(("w:defUIPriority", s.as_str()));
30381 }
30382 }
30383 #[cfg(feature = "wml-styling")]
30384 if let Some(ref val) = self.def_semi_hidden {
30385 {
30386 let s = val.to_string();
30387 start.push_attribute(("w:defSemiHidden", s.as_str()));
30388 }
30389 }
30390 #[cfg(feature = "wml-styling")]
30391 if let Some(ref val) = self.def_unhide_when_used {
30392 {
30393 let s = val.to_string();
30394 start.push_attribute(("w:defUnhideWhenUsed", s.as_str()));
30395 }
30396 }
30397 #[cfg(feature = "wml-styling")]
30398 if let Some(ref val) = self.def_q_format {
30399 {
30400 let s = val.to_string();
30401 start.push_attribute(("w:defQFormat", s.as_str()));
30402 }
30403 }
30404 #[cfg(feature = "wml-styling")]
30405 if let Some(ref val) = self.count {
30406 {
30407 let s = val.to_string();
30408 start.push_attribute(("w:count", s.as_str()));
30409 }
30410 }
30411 #[cfg(feature = "extra-attrs")]
30412 for (key, value) in &self.extra_attrs {
30413 start.push_attribute((key.as_str(), value.as_str()));
30414 }
30415 start
30416 }
30417
30418 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
30419 #[cfg(feature = "extra-children")]
30420 let mut extra_iter = self.extra_children.iter().peekable();
30421 #[cfg(feature = "extra-children")]
30422 let mut emit_idx: usize = 0;
30423 for item in &self.lsd_exception {
30424 #[cfg(feature = "extra-children")]
30425 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30426 extra_iter
30427 .next()
30428 .unwrap()
30429 .node
30430 .write_to(writer)
30431 .map_err(SerializeError::from)?;
30432 }
30433 item.write_element("w:lsdException", writer)?;
30434 #[cfg(feature = "extra-children")]
30435 {
30436 emit_idx += 1;
30437 }
30438 }
30439 #[cfg(feature = "extra-children")]
30440 for extra in extra_iter {
30441 extra.node.write_to(writer).map_err(SerializeError::from)?;
30442 }
30443 Ok(())
30444 }
30445
30446 fn is_empty_element(&self) -> bool {
30447 if !self.lsd_exception.is_empty() {
30448 return false;
30449 }
30450 #[cfg(feature = "extra-children")]
30451 if !self.extra_children.is_empty() {
30452 return false;
30453 }
30454 true
30455 }
30456}
30457
30458impl ToXml for Styles {
30459 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
30460 #[cfg(feature = "extra-children")]
30461 let mut extra_iter = self.extra_children.iter().peekable();
30462 #[cfg(feature = "extra-children")]
30463 let mut emit_idx: usize = 0;
30464 #[cfg(feature = "extra-children")]
30465 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30466 extra_iter
30467 .next()
30468 .unwrap()
30469 .node
30470 .write_to(writer)
30471 .map_err(SerializeError::from)?;
30472 }
30473 if let Some(ref val) = self.doc_defaults {
30474 val.write_element("w:docDefaults", writer)?;
30475 }
30476 #[cfg(feature = "extra-children")]
30477 {
30478 emit_idx += 1;
30479 }
30480 #[cfg(feature = "extra-children")]
30481 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30482 extra_iter
30483 .next()
30484 .unwrap()
30485 .node
30486 .write_to(writer)
30487 .map_err(SerializeError::from)?;
30488 }
30489 #[cfg(feature = "wml-styling")]
30490 if let Some(ref val) = self.latent_styles {
30491 val.write_element("w:latentStyles", writer)?;
30492 }
30493 #[cfg(feature = "extra-children")]
30494 {
30495 emit_idx += 1;
30496 }
30497 for item in &self.style {
30498 #[cfg(feature = "extra-children")]
30499 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30500 extra_iter
30501 .next()
30502 .unwrap()
30503 .node
30504 .write_to(writer)
30505 .map_err(SerializeError::from)?;
30506 }
30507 item.write_element("w:style", writer)?;
30508 #[cfg(feature = "extra-children")]
30509 {
30510 emit_idx += 1;
30511 }
30512 }
30513 #[cfg(feature = "extra-children")]
30514 for extra in extra_iter {
30515 extra.node.write_to(writer).map_err(SerializeError::from)?;
30516 }
30517 Ok(())
30518 }
30519
30520 fn is_empty_element(&self) -> bool {
30521 if self.doc_defaults.is_some() {
30522 return false;
30523 }
30524 #[cfg(feature = "wml-styling")]
30525 if self.latent_styles.is_some() {
30526 return false;
30527 }
30528 if !self.style.is_empty() {
30529 return false;
30530 }
30531 #[cfg(feature = "extra-children")]
30532 if !self.extra_children.is_empty() {
30533 return false;
30534 }
30535 true
30536 }
30537}
30538
30539impl ToXml for PanoseElement {
30540 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
30541 #[allow(unused_mut)]
30542 let mut start = start;
30543 {
30544 let val = &self.value;
30545 {
30546 let hex = encode_hex(val);
30547 start.push_attribute(("w:val", hex.as_str()));
30548 }
30549 }
30550 #[cfg(feature = "extra-attrs")]
30551 for (key, value) in &self.extra_attrs {
30552 start.push_attribute((key.as_str(), value.as_str()));
30553 }
30554 start
30555 }
30556
30557 fn is_empty_element(&self) -> bool {
30558 true
30559 }
30560}
30561
30562impl ToXml for CTFontFamily {
30563 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
30564 #[allow(unused_mut)]
30565 let mut start = start;
30566 {
30567 let val = &self.value;
30568 {
30569 let s = val.to_string();
30570 start.push_attribute(("w:val", s.as_str()));
30571 }
30572 }
30573 #[cfg(feature = "extra-attrs")]
30574 for (key, value) in &self.extra_attrs {
30575 start.push_attribute((key.as_str(), value.as_str()));
30576 }
30577 start
30578 }
30579
30580 fn is_empty_element(&self) -> bool {
30581 true
30582 }
30583}
30584
30585impl ToXml for CTPitch {
30586 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
30587 #[allow(unused_mut)]
30588 let mut start = start;
30589 {
30590 let val = &self.value;
30591 {
30592 let s = val.to_string();
30593 start.push_attribute(("w:val", s.as_str()));
30594 }
30595 }
30596 #[cfg(feature = "extra-attrs")]
30597 for (key, value) in &self.extra_attrs {
30598 start.push_attribute((key.as_str(), value.as_str()));
30599 }
30600 start
30601 }
30602
30603 fn is_empty_element(&self) -> bool {
30604 true
30605 }
30606}
30607
30608impl ToXml for CTFontSig {
30609 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
30610 #[allow(unused_mut)]
30611 let mut start = start;
30612 #[cfg(feature = "wml-styling")]
30613 {
30614 let val = &self.usb0;
30615 {
30616 let hex = encode_hex(val);
30617 start.push_attribute(("w:usb0", hex.as_str()));
30618 }
30619 }
30620 #[cfg(feature = "wml-styling")]
30621 {
30622 let val = &self.usb1;
30623 {
30624 let hex = encode_hex(val);
30625 start.push_attribute(("w:usb1", hex.as_str()));
30626 }
30627 }
30628 #[cfg(feature = "wml-styling")]
30629 {
30630 let val = &self.usb2;
30631 {
30632 let hex = encode_hex(val);
30633 start.push_attribute(("w:usb2", hex.as_str()));
30634 }
30635 }
30636 #[cfg(feature = "wml-styling")]
30637 {
30638 let val = &self.usb3;
30639 {
30640 let hex = encode_hex(val);
30641 start.push_attribute(("w:usb3", hex.as_str()));
30642 }
30643 }
30644 #[cfg(feature = "wml-styling")]
30645 {
30646 let val = &self.csb0;
30647 {
30648 let hex = encode_hex(val);
30649 start.push_attribute(("w:csb0", hex.as_str()));
30650 }
30651 }
30652 #[cfg(feature = "wml-styling")]
30653 {
30654 let val = &self.csb1;
30655 {
30656 let hex = encode_hex(val);
30657 start.push_attribute(("w:csb1", hex.as_str()));
30658 }
30659 }
30660 #[cfg(feature = "extra-attrs")]
30661 for (key, value) in &self.extra_attrs {
30662 start.push_attribute((key.as_str(), value.as_str()));
30663 }
30664 start
30665 }
30666
30667 fn is_empty_element(&self) -> bool {
30668 true
30669 }
30670}
30671
30672impl ToXml for CTFontRel {
30673 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
30674 #[allow(unused_mut)]
30675 let mut start = start;
30676 #[cfg(feature = "wml-styling")]
30677 {
30678 let val = &self.id;
30679 start.push_attribute(("r:id", val.as_str()));
30680 }
30681 #[cfg(feature = "wml-styling")]
30682 if let Some(ref val) = self.font_key {
30683 start.push_attribute(("w:fontKey", val.as_str()));
30684 }
30685 #[cfg(feature = "wml-styling")]
30686 if let Some(ref val) = self.subsetted {
30687 {
30688 let s = val.to_string();
30689 start.push_attribute(("w:subsetted", s.as_str()));
30690 }
30691 }
30692 #[cfg(feature = "extra-attrs")]
30693 for (key, value) in &self.extra_attrs {
30694 start.push_attribute((key.as_str(), value.as_str()));
30695 }
30696 start
30697 }
30698
30699 fn is_empty_element(&self) -> bool {
30700 true
30701 }
30702}
30703
30704impl ToXml for Font {
30705 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
30706 #[allow(unused_mut)]
30707 let mut start = start;
30708 {
30709 let val = &self.name;
30710 start.push_attribute(("w:name", val.as_str()));
30711 }
30712 #[cfg(feature = "extra-attrs")]
30713 for (key, value) in &self.extra_attrs {
30714 start.push_attribute((key.as_str(), value.as_str()));
30715 }
30716 start
30717 }
30718
30719 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
30720 #[cfg(feature = "extra-children")]
30721 let mut extra_iter = self.extra_children.iter().peekable();
30722 #[cfg(feature = "extra-children")]
30723 let mut emit_idx: usize = 0;
30724 #[cfg(feature = "extra-children")]
30725 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30726 extra_iter
30727 .next()
30728 .unwrap()
30729 .node
30730 .write_to(writer)
30731 .map_err(SerializeError::from)?;
30732 }
30733 #[cfg(feature = "wml-styling")]
30734 if let Some(ref val) = self.alt_name {
30735 val.write_element("w:altName", writer)?;
30736 }
30737 #[cfg(feature = "extra-children")]
30738 {
30739 emit_idx += 1;
30740 }
30741 #[cfg(feature = "extra-children")]
30742 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30743 extra_iter
30744 .next()
30745 .unwrap()
30746 .node
30747 .write_to(writer)
30748 .map_err(SerializeError::from)?;
30749 }
30750 #[cfg(feature = "wml-styling")]
30751 if let Some(ref val) = self.panose1 {
30752 val.write_element("w:panose1", writer)?;
30753 }
30754 #[cfg(feature = "extra-children")]
30755 {
30756 emit_idx += 1;
30757 }
30758 #[cfg(feature = "extra-children")]
30759 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30760 extra_iter
30761 .next()
30762 .unwrap()
30763 .node
30764 .write_to(writer)
30765 .map_err(SerializeError::from)?;
30766 }
30767 #[cfg(feature = "wml-styling")]
30768 if let Some(ref val) = self.charset {
30769 val.write_element("w:charset", writer)?;
30770 }
30771 #[cfg(feature = "extra-children")]
30772 {
30773 emit_idx += 1;
30774 }
30775 #[cfg(feature = "extra-children")]
30776 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30777 extra_iter
30778 .next()
30779 .unwrap()
30780 .node
30781 .write_to(writer)
30782 .map_err(SerializeError::from)?;
30783 }
30784 #[cfg(feature = "wml-styling")]
30785 if let Some(ref val) = self.family {
30786 val.write_element("w:family", writer)?;
30787 }
30788 #[cfg(feature = "extra-children")]
30789 {
30790 emit_idx += 1;
30791 }
30792 #[cfg(feature = "extra-children")]
30793 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30794 extra_iter
30795 .next()
30796 .unwrap()
30797 .node
30798 .write_to(writer)
30799 .map_err(SerializeError::from)?;
30800 }
30801 #[cfg(feature = "wml-styling")]
30802 if let Some(ref val) = self.not_true_type {
30803 val.write_element("w:notTrueType", writer)?;
30804 }
30805 #[cfg(feature = "extra-children")]
30806 {
30807 emit_idx += 1;
30808 }
30809 #[cfg(feature = "extra-children")]
30810 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30811 extra_iter
30812 .next()
30813 .unwrap()
30814 .node
30815 .write_to(writer)
30816 .map_err(SerializeError::from)?;
30817 }
30818 #[cfg(feature = "wml-styling")]
30819 if let Some(ref val) = self.pitch {
30820 val.write_element("w:pitch", writer)?;
30821 }
30822 #[cfg(feature = "extra-children")]
30823 {
30824 emit_idx += 1;
30825 }
30826 #[cfg(feature = "extra-children")]
30827 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30828 extra_iter
30829 .next()
30830 .unwrap()
30831 .node
30832 .write_to(writer)
30833 .map_err(SerializeError::from)?;
30834 }
30835 #[cfg(feature = "wml-styling")]
30836 if let Some(ref val) = self.sig {
30837 val.write_element("w:sig", writer)?;
30838 }
30839 #[cfg(feature = "extra-children")]
30840 {
30841 emit_idx += 1;
30842 }
30843 #[cfg(feature = "extra-children")]
30844 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30845 extra_iter
30846 .next()
30847 .unwrap()
30848 .node
30849 .write_to(writer)
30850 .map_err(SerializeError::from)?;
30851 }
30852 #[cfg(feature = "wml-styling")]
30853 if let Some(ref val) = self.embed_regular {
30854 val.write_element("w:embedRegular", writer)?;
30855 }
30856 #[cfg(feature = "extra-children")]
30857 {
30858 emit_idx += 1;
30859 }
30860 #[cfg(feature = "extra-children")]
30861 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30862 extra_iter
30863 .next()
30864 .unwrap()
30865 .node
30866 .write_to(writer)
30867 .map_err(SerializeError::from)?;
30868 }
30869 #[cfg(feature = "wml-styling")]
30870 if let Some(ref val) = self.embed_bold {
30871 val.write_element("w:embedBold", writer)?;
30872 }
30873 #[cfg(feature = "extra-children")]
30874 {
30875 emit_idx += 1;
30876 }
30877 #[cfg(feature = "extra-children")]
30878 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30879 extra_iter
30880 .next()
30881 .unwrap()
30882 .node
30883 .write_to(writer)
30884 .map_err(SerializeError::from)?;
30885 }
30886 #[cfg(feature = "wml-styling")]
30887 if let Some(ref val) = self.embed_italic {
30888 val.write_element("w:embedItalic", writer)?;
30889 }
30890 #[cfg(feature = "extra-children")]
30891 {
30892 emit_idx += 1;
30893 }
30894 #[cfg(feature = "extra-children")]
30895 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30896 extra_iter
30897 .next()
30898 .unwrap()
30899 .node
30900 .write_to(writer)
30901 .map_err(SerializeError::from)?;
30902 }
30903 #[cfg(feature = "wml-styling")]
30904 if let Some(ref val) = self.embed_bold_italic {
30905 val.write_element("w:embedBoldItalic", writer)?;
30906 }
30907 #[cfg(feature = "extra-children")]
30908 {
30909 emit_idx += 1;
30910 }
30911 #[cfg(feature = "extra-children")]
30912 for extra in extra_iter {
30913 extra.node.write_to(writer).map_err(SerializeError::from)?;
30914 }
30915 Ok(())
30916 }
30917
30918 fn is_empty_element(&self) -> bool {
30919 #[cfg(feature = "wml-styling")]
30920 if self.alt_name.is_some() {
30921 return false;
30922 }
30923 #[cfg(feature = "wml-styling")]
30924 if self.panose1.is_some() {
30925 return false;
30926 }
30927 #[cfg(feature = "wml-styling")]
30928 if self.charset.is_some() {
30929 return false;
30930 }
30931 #[cfg(feature = "wml-styling")]
30932 if self.family.is_some() {
30933 return false;
30934 }
30935 #[cfg(feature = "wml-styling")]
30936 if self.not_true_type.is_some() {
30937 return false;
30938 }
30939 #[cfg(feature = "wml-styling")]
30940 if self.pitch.is_some() {
30941 return false;
30942 }
30943 #[cfg(feature = "wml-styling")]
30944 if self.sig.is_some() {
30945 return false;
30946 }
30947 #[cfg(feature = "wml-styling")]
30948 if self.embed_regular.is_some() {
30949 return false;
30950 }
30951 #[cfg(feature = "wml-styling")]
30952 if self.embed_bold.is_some() {
30953 return false;
30954 }
30955 #[cfg(feature = "wml-styling")]
30956 if self.embed_italic.is_some() {
30957 return false;
30958 }
30959 #[cfg(feature = "wml-styling")]
30960 if self.embed_bold_italic.is_some() {
30961 return false;
30962 }
30963 #[cfg(feature = "extra-children")]
30964 if !self.extra_children.is_empty() {
30965 return false;
30966 }
30967 true
30968 }
30969}
30970
30971impl ToXml for CTFontsList {
30972 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
30973 #[cfg(feature = "extra-children")]
30974 let mut extra_iter = self.extra_children.iter().peekable();
30975 #[cfg(feature = "extra-children")]
30976 let mut emit_idx: usize = 0;
30977 for item in &self.font {
30978 #[cfg(feature = "extra-children")]
30979 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
30980 extra_iter
30981 .next()
30982 .unwrap()
30983 .node
30984 .write_to(writer)
30985 .map_err(SerializeError::from)?;
30986 }
30987 item.write_element("w:font", writer)?;
30988 #[cfg(feature = "extra-children")]
30989 {
30990 emit_idx += 1;
30991 }
30992 }
30993 #[cfg(feature = "extra-children")]
30994 for extra in extra_iter {
30995 extra.node.write_to(writer).map_err(SerializeError::from)?;
30996 }
30997 Ok(())
30998 }
30999
31000 fn is_empty_element(&self) -> bool {
31001 if !self.font.is_empty() {
31002 return false;
31003 }
31004 #[cfg(feature = "extra-children")]
31005 if !self.extra_children.is_empty() {
31006 return false;
31007 }
31008 true
31009 }
31010}
31011
31012impl ToXml for CTDivBdr {
31013 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
31014 #[cfg(feature = "extra-children")]
31015 let mut extra_iter = self.extra_children.iter().peekable();
31016 #[cfg(feature = "extra-children")]
31017 let mut emit_idx: usize = 0;
31018 #[cfg(feature = "extra-children")]
31019 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31020 extra_iter
31021 .next()
31022 .unwrap()
31023 .node
31024 .write_to(writer)
31025 .map_err(SerializeError::from)?;
31026 }
31027 #[cfg(feature = "wml-settings")]
31028 if let Some(ref val) = self.top {
31029 val.write_element("w:top", writer)?;
31030 }
31031 #[cfg(feature = "extra-children")]
31032 {
31033 emit_idx += 1;
31034 }
31035 #[cfg(feature = "extra-children")]
31036 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31037 extra_iter
31038 .next()
31039 .unwrap()
31040 .node
31041 .write_to(writer)
31042 .map_err(SerializeError::from)?;
31043 }
31044 #[cfg(feature = "wml-settings")]
31045 if let Some(ref val) = self.left {
31046 val.write_element("w:left", writer)?;
31047 }
31048 #[cfg(feature = "extra-children")]
31049 {
31050 emit_idx += 1;
31051 }
31052 #[cfg(feature = "extra-children")]
31053 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31054 extra_iter
31055 .next()
31056 .unwrap()
31057 .node
31058 .write_to(writer)
31059 .map_err(SerializeError::from)?;
31060 }
31061 #[cfg(feature = "wml-settings")]
31062 if let Some(ref val) = self.bottom {
31063 val.write_element("w:bottom", writer)?;
31064 }
31065 #[cfg(feature = "extra-children")]
31066 {
31067 emit_idx += 1;
31068 }
31069 #[cfg(feature = "extra-children")]
31070 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31071 extra_iter
31072 .next()
31073 .unwrap()
31074 .node
31075 .write_to(writer)
31076 .map_err(SerializeError::from)?;
31077 }
31078 #[cfg(feature = "wml-settings")]
31079 if let Some(ref val) = self.right {
31080 val.write_element("w:right", writer)?;
31081 }
31082 #[cfg(feature = "extra-children")]
31083 {
31084 emit_idx += 1;
31085 }
31086 #[cfg(feature = "extra-children")]
31087 for extra in extra_iter {
31088 extra.node.write_to(writer).map_err(SerializeError::from)?;
31089 }
31090 Ok(())
31091 }
31092
31093 fn is_empty_element(&self) -> bool {
31094 #[cfg(feature = "wml-settings")]
31095 if self.top.is_some() {
31096 return false;
31097 }
31098 #[cfg(feature = "wml-settings")]
31099 if self.left.is_some() {
31100 return false;
31101 }
31102 #[cfg(feature = "wml-settings")]
31103 if self.bottom.is_some() {
31104 return false;
31105 }
31106 #[cfg(feature = "wml-settings")]
31107 if self.right.is_some() {
31108 return false;
31109 }
31110 #[cfg(feature = "extra-children")]
31111 if !self.extra_children.is_empty() {
31112 return false;
31113 }
31114 true
31115 }
31116}
31117
31118impl ToXml for CTDiv {
31119 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
31120 #[allow(unused_mut)]
31121 let mut start = start;
31122 #[cfg(feature = "wml-settings")]
31123 {
31124 let val = &self.id;
31125 {
31126 let s = val.to_string();
31127 start.push_attribute(("w:id", s.as_str()));
31128 }
31129 }
31130 #[cfg(feature = "extra-attrs")]
31131 for (key, value) in &self.extra_attrs {
31132 start.push_attribute((key.as_str(), value.as_str()));
31133 }
31134 start
31135 }
31136
31137 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
31138 #[cfg(feature = "extra-children")]
31139 let mut extra_iter = self.extra_children.iter().peekable();
31140 #[cfg(feature = "extra-children")]
31141 let mut emit_idx: usize = 0;
31142 #[cfg(feature = "extra-children")]
31143 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31144 extra_iter
31145 .next()
31146 .unwrap()
31147 .node
31148 .write_to(writer)
31149 .map_err(SerializeError::from)?;
31150 }
31151 #[cfg(feature = "wml-settings")]
31152 if let Some(ref val) = self.block_quote {
31153 val.write_element("w:blockQuote", writer)?;
31154 }
31155 #[cfg(feature = "extra-children")]
31156 {
31157 emit_idx += 1;
31158 }
31159 #[cfg(feature = "extra-children")]
31160 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31161 extra_iter
31162 .next()
31163 .unwrap()
31164 .node
31165 .write_to(writer)
31166 .map_err(SerializeError::from)?;
31167 }
31168 #[cfg(feature = "wml-settings")]
31169 if let Some(ref val) = self.body_div {
31170 val.write_element("w:bodyDiv", writer)?;
31171 }
31172 #[cfg(feature = "extra-children")]
31173 {
31174 emit_idx += 1;
31175 }
31176 #[cfg(feature = "extra-children")]
31177 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31178 extra_iter
31179 .next()
31180 .unwrap()
31181 .node
31182 .write_to(writer)
31183 .map_err(SerializeError::from)?;
31184 }
31185 #[cfg(feature = "wml-settings")]
31186 {
31187 let val = &self.mar_left;
31188 val.write_element("w:marLeft", writer)?;
31189 }
31190 #[cfg(feature = "extra-children")]
31191 {
31192 emit_idx += 1;
31193 }
31194 #[cfg(feature = "extra-children")]
31195 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31196 extra_iter
31197 .next()
31198 .unwrap()
31199 .node
31200 .write_to(writer)
31201 .map_err(SerializeError::from)?;
31202 }
31203 #[cfg(feature = "wml-settings")]
31204 {
31205 let val = &self.mar_right;
31206 val.write_element("w:marRight", writer)?;
31207 }
31208 #[cfg(feature = "extra-children")]
31209 {
31210 emit_idx += 1;
31211 }
31212 #[cfg(feature = "extra-children")]
31213 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31214 extra_iter
31215 .next()
31216 .unwrap()
31217 .node
31218 .write_to(writer)
31219 .map_err(SerializeError::from)?;
31220 }
31221 #[cfg(feature = "wml-settings")]
31222 {
31223 let val = &self.mar_top;
31224 val.write_element("w:marTop", writer)?;
31225 }
31226 #[cfg(feature = "extra-children")]
31227 {
31228 emit_idx += 1;
31229 }
31230 #[cfg(feature = "extra-children")]
31231 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31232 extra_iter
31233 .next()
31234 .unwrap()
31235 .node
31236 .write_to(writer)
31237 .map_err(SerializeError::from)?;
31238 }
31239 #[cfg(feature = "wml-settings")]
31240 {
31241 let val = &self.mar_bottom;
31242 val.write_element("w:marBottom", writer)?;
31243 }
31244 #[cfg(feature = "extra-children")]
31245 {
31246 emit_idx += 1;
31247 }
31248 #[cfg(feature = "extra-children")]
31249 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31250 extra_iter
31251 .next()
31252 .unwrap()
31253 .node
31254 .write_to(writer)
31255 .map_err(SerializeError::from)?;
31256 }
31257 #[cfg(feature = "wml-settings")]
31258 if let Some(ref val) = self.div_bdr {
31259 val.write_element("w:divBdr", writer)?;
31260 }
31261 #[cfg(feature = "extra-children")]
31262 {
31263 emit_idx += 1;
31264 }
31265 #[cfg(feature = "wml-settings")]
31266 for item in &self.divs_child {
31267 #[cfg(feature = "extra-children")]
31268 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31269 extra_iter
31270 .next()
31271 .unwrap()
31272 .node
31273 .write_to(writer)
31274 .map_err(SerializeError::from)?;
31275 }
31276 item.write_element("w:divsChild", writer)?;
31277 #[cfg(feature = "extra-children")]
31278 {
31279 emit_idx += 1;
31280 }
31281 }
31282 #[cfg(feature = "extra-children")]
31283 for extra in extra_iter {
31284 extra.node.write_to(writer).map_err(SerializeError::from)?;
31285 }
31286 Ok(())
31287 }
31288
31289 fn is_empty_element(&self) -> bool {
31290 #[cfg(feature = "wml-settings")]
31291 if self.block_quote.is_some() {
31292 return false;
31293 }
31294 #[cfg(feature = "wml-settings")]
31295 if self.body_div.is_some() {
31296 return false;
31297 }
31298 #[cfg(feature = "wml-settings")]
31299 return false;
31300 #[cfg(feature = "wml-settings")]
31301 return false;
31302 #[cfg(feature = "wml-settings")]
31303 return false;
31304 #[cfg(feature = "wml-settings")]
31305 return false;
31306 #[cfg(feature = "wml-settings")]
31307 if self.div_bdr.is_some() {
31308 return false;
31309 }
31310 #[cfg(feature = "wml-settings")]
31311 if !self.divs_child.is_empty() {
31312 return false;
31313 }
31314 #[cfg(feature = "extra-children")]
31315 if !self.extra_children.is_empty() {
31316 return false;
31317 }
31318 true
31319 }
31320}
31321
31322impl ToXml for CTDivs {
31323 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
31324 #[cfg(feature = "extra-children")]
31325 let mut extra_iter = self.extra_children.iter().peekable();
31326 #[cfg(feature = "extra-children")]
31327 let mut emit_idx: usize = 0;
31328 #[cfg(feature = "wml-settings")]
31329 for item in &self.div {
31330 #[cfg(feature = "extra-children")]
31331 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31332 extra_iter
31333 .next()
31334 .unwrap()
31335 .node
31336 .write_to(writer)
31337 .map_err(SerializeError::from)?;
31338 }
31339 item.write_element("w:div", writer)?;
31340 #[cfg(feature = "extra-children")]
31341 {
31342 emit_idx += 1;
31343 }
31344 }
31345 #[cfg(feature = "extra-children")]
31346 for extra in extra_iter {
31347 extra.node.write_to(writer).map_err(SerializeError::from)?;
31348 }
31349 Ok(())
31350 }
31351
31352 fn is_empty_element(&self) -> bool {
31353 #[cfg(feature = "wml-settings")]
31354 if !self.div.is_empty() {
31355 return false;
31356 }
31357 #[cfg(feature = "extra-children")]
31358 if !self.extra_children.is_empty() {
31359 return false;
31360 }
31361 true
31362 }
31363}
31364
31365impl ToXml for CTTxbxContent {
31366 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
31367 #[cfg(feature = "extra-children")]
31368 let mut extra_iter = self.extra_children.iter().peekable();
31369 #[cfg(feature = "extra-children")]
31370 let mut emit_idx: usize = 0;
31371 for item in &self.block_content {
31372 #[cfg(feature = "extra-children")]
31373 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31374 extra_iter
31375 .next()
31376 .unwrap()
31377 .node
31378 .write_to(writer)
31379 .map_err(SerializeError::from)?;
31380 }
31381 item.write_element("", writer)?;
31382 #[cfg(feature = "extra-children")]
31383 {
31384 emit_idx += 1;
31385 }
31386 }
31387 #[cfg(feature = "extra-children")]
31388 for extra in extra_iter {
31389 extra.node.write_to(writer).map_err(SerializeError::from)?;
31390 }
31391 Ok(())
31392 }
31393
31394 fn is_empty_element(&self) -> bool {
31395 if !self.block_content.is_empty() {
31396 return false;
31397 }
31398 #[cfg(feature = "extra-children")]
31399 if !self.extra_children.is_empty() {
31400 return false;
31401 }
31402 true
31403 }
31404}
31405
31406impl ToXml for EGMathContent {
31407 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
31408 #[cfg(feature = "extra-children")]
31409 for child in &self.extra_children {
31410 child.node.write_to(writer).map_err(SerializeError::from)?;
31411 }
31412 Ok(())
31413 }
31414
31415 fn is_empty_element(&self) -> bool {
31416 #[cfg(feature = "extra-children")]
31417 if !self.extra_children.is_empty() {
31418 return false;
31419 }
31420 true
31421 }
31422}
31423
31424impl ToXml for EGBlockLevelChunkElts {
31425 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
31426 #[cfg(feature = "extra-children")]
31427 let mut extra_iter = self.extra_children.iter().peekable();
31428 #[cfg(feature = "extra-children")]
31429 let mut emit_idx: usize = 0;
31430 for item in &self.block_content {
31431 #[cfg(feature = "extra-children")]
31432 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31433 extra_iter
31434 .next()
31435 .unwrap()
31436 .node
31437 .write_to(writer)
31438 .map_err(SerializeError::from)?;
31439 }
31440 item.write_element("", writer)?;
31441 #[cfg(feature = "extra-children")]
31442 {
31443 emit_idx += 1;
31444 }
31445 }
31446 #[cfg(feature = "extra-children")]
31447 for extra in extra_iter {
31448 extra.node.write_to(writer).map_err(SerializeError::from)?;
31449 }
31450 Ok(())
31451 }
31452
31453 fn is_empty_element(&self) -> bool {
31454 if !self.block_content.is_empty() {
31455 return false;
31456 }
31457 #[cfg(feature = "extra-children")]
31458 if !self.extra_children.is_empty() {
31459 return false;
31460 }
31461 true
31462 }
31463}
31464
31465impl ToXml for BlockContent {
31466 fn write_element<W: Write>(
31467 &self,
31468 _tag: &str,
31469 writer: &mut Writer<W>,
31470 ) -> Result<(), SerializeError> {
31471 match self {
31472 Self::CustomXml(inner) => inner.write_element("w:customXml", writer)?,
31473 Self::Sdt(inner) => inner.write_element("w:sdt", writer)?,
31474 Self::P(inner) => inner.write_element("w:p", writer)?,
31475 Self::Tbl(inner) => inner.write_element("w:tbl", writer)?,
31476 Self::ProofErr(inner) => inner.write_element("w:proofErr", writer)?,
31477 Self::PermStart(inner) => inner.write_element("w:permStart", writer)?,
31478 Self::PermEnd(inner) => inner.write_element("w:permEnd", writer)?,
31479 Self::BookmarkStart(inner) => inner.write_element("w:bookmarkStart", writer)?,
31480 Self::BookmarkEnd(inner) => inner.write_element("w:bookmarkEnd", writer)?,
31481 Self::MoveFromRangeStart(inner) => {
31482 inner.write_element("w:moveFromRangeStart", writer)?
31483 }
31484 Self::MoveFromRangeEnd(inner) => inner.write_element("w:moveFromRangeEnd", writer)?,
31485 Self::MoveToRangeStart(inner) => inner.write_element("w:moveToRangeStart", writer)?,
31486 Self::MoveToRangeEnd(inner) => inner.write_element("w:moveToRangeEnd", writer)?,
31487 Self::CommentRangeStart(inner) => inner.write_element("w:commentRangeStart", writer)?,
31488 Self::CommentRangeEnd(inner) => inner.write_element("w:commentRangeEnd", writer)?,
31489 Self::CustomXmlInsRangeStart(inner) => {
31490 inner.write_element("w:customXmlInsRangeStart", writer)?
31491 }
31492 Self::CustomXmlInsRangeEnd(inner) => {
31493 inner.write_element("w:customXmlInsRangeEnd", writer)?
31494 }
31495 Self::CustomXmlDelRangeStart(inner) => {
31496 inner.write_element("w:customXmlDelRangeStart", writer)?
31497 }
31498 Self::CustomXmlDelRangeEnd(inner) => {
31499 inner.write_element("w:customXmlDelRangeEnd", writer)?
31500 }
31501 Self::CustomXmlMoveFromRangeStart(inner) => {
31502 inner.write_element("w:customXmlMoveFromRangeStart", writer)?
31503 }
31504 Self::CustomXmlMoveFromRangeEnd(inner) => {
31505 inner.write_element("w:customXmlMoveFromRangeEnd", writer)?
31506 }
31507 Self::CustomXmlMoveToRangeStart(inner) => {
31508 inner.write_element("w:customXmlMoveToRangeStart", writer)?
31509 }
31510 Self::CustomXmlMoveToRangeEnd(inner) => {
31511 inner.write_element("w:customXmlMoveToRangeEnd", writer)?
31512 }
31513 Self::Ins(inner) => inner.write_element("w:ins", writer)?,
31514 Self::Del(inner) => inner.write_element("w:del", writer)?,
31515 Self::MoveFrom(inner) => inner.write_element("w:moveFrom", writer)?,
31516 Self::MoveTo(inner) => inner.write_element("w:moveTo", writer)?,
31517 Self::AltChunk(inner) => inner.write_element("w:altChunk", writer)?,
31518 }
31519 Ok(())
31520 }
31521}
31522
31523impl ToXml for RunLevelContent {
31524 fn write_element<W: Write>(
31525 &self,
31526 _tag: &str,
31527 writer: &mut Writer<W>,
31528 ) -> Result<(), SerializeError> {
31529 match self {
31530 Self::ProofErr(inner) => inner.write_element("w:proofErr", writer)?,
31531 Self::PermStart(inner) => inner.write_element("w:permStart", writer)?,
31532 Self::PermEnd(inner) => inner.write_element("w:permEnd", writer)?,
31533 Self::BookmarkStart(inner) => inner.write_element("w:bookmarkStart", writer)?,
31534 Self::BookmarkEnd(inner) => inner.write_element("w:bookmarkEnd", writer)?,
31535 Self::MoveFromRangeStart(inner) => {
31536 inner.write_element("w:moveFromRangeStart", writer)?
31537 }
31538 Self::MoveFromRangeEnd(inner) => inner.write_element("w:moveFromRangeEnd", writer)?,
31539 Self::MoveToRangeStart(inner) => inner.write_element("w:moveToRangeStart", writer)?,
31540 Self::MoveToRangeEnd(inner) => inner.write_element("w:moveToRangeEnd", writer)?,
31541 Self::CommentRangeStart(inner) => inner.write_element("w:commentRangeStart", writer)?,
31542 Self::CommentRangeEnd(inner) => inner.write_element("w:commentRangeEnd", writer)?,
31543 Self::CustomXmlInsRangeStart(inner) => {
31544 inner.write_element("w:customXmlInsRangeStart", writer)?
31545 }
31546 Self::CustomXmlInsRangeEnd(inner) => {
31547 inner.write_element("w:customXmlInsRangeEnd", writer)?
31548 }
31549 Self::CustomXmlDelRangeStart(inner) => {
31550 inner.write_element("w:customXmlDelRangeStart", writer)?
31551 }
31552 Self::CustomXmlDelRangeEnd(inner) => {
31553 inner.write_element("w:customXmlDelRangeEnd", writer)?
31554 }
31555 Self::CustomXmlMoveFromRangeStart(inner) => {
31556 inner.write_element("w:customXmlMoveFromRangeStart", writer)?
31557 }
31558 Self::CustomXmlMoveFromRangeEnd(inner) => {
31559 inner.write_element("w:customXmlMoveFromRangeEnd", writer)?
31560 }
31561 Self::CustomXmlMoveToRangeStart(inner) => {
31562 inner.write_element("w:customXmlMoveToRangeStart", writer)?
31563 }
31564 Self::CustomXmlMoveToRangeEnd(inner) => {
31565 inner.write_element("w:customXmlMoveToRangeEnd", writer)?
31566 }
31567 Self::Ins(inner) => inner.write_element("w:ins", writer)?,
31568 Self::Del(inner) => inner.write_element("w:del", writer)?,
31569 Self::MoveFrom(inner) => inner.write_element("w:moveFrom", writer)?,
31570 Self::MoveTo(inner) => inner.write_element("w:moveTo", writer)?,
31571 }
31572 Ok(())
31573 }
31574}
31575
31576impl ToXml for Body {
31577 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
31578 #[cfg(feature = "extra-children")]
31579 let mut extra_iter = self.extra_children.iter().peekable();
31580 #[cfg(feature = "extra-children")]
31581 let mut emit_idx: usize = 0;
31582 for item in &self.block_content {
31583 #[cfg(feature = "extra-children")]
31584 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31585 extra_iter
31586 .next()
31587 .unwrap()
31588 .node
31589 .write_to(writer)
31590 .map_err(SerializeError::from)?;
31591 }
31592 item.write_element("", writer)?;
31593 #[cfg(feature = "extra-children")]
31594 {
31595 emit_idx += 1;
31596 }
31597 }
31598 #[cfg(feature = "extra-children")]
31599 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31600 extra_iter
31601 .next()
31602 .unwrap()
31603 .node
31604 .write_to(writer)
31605 .map_err(SerializeError::from)?;
31606 }
31607 #[cfg(feature = "wml-layout")]
31608 if let Some(ref val) = self.sect_pr {
31609 val.write_element("w:sectPr", writer)?;
31610 }
31611 #[cfg(feature = "extra-children")]
31612 {
31613 emit_idx += 1;
31614 }
31615 #[cfg(feature = "extra-children")]
31616 for extra in extra_iter {
31617 extra.node.write_to(writer).map_err(SerializeError::from)?;
31618 }
31619 Ok(())
31620 }
31621
31622 fn is_empty_element(&self) -> bool {
31623 if !self.block_content.is_empty() {
31624 return false;
31625 }
31626 #[cfg(feature = "wml-layout")]
31627 if self.sect_pr.is_some() {
31628 return false;
31629 }
31630 #[cfg(feature = "extra-children")]
31631 if !self.extra_children.is_empty() {
31632 return false;
31633 }
31634 true
31635 }
31636}
31637
31638impl ToXml for CTShapeDefaults {
31639 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
31640 #[cfg(feature = "extra-children")]
31641 for child in &self.extra_children {
31642 child.node.write_to(writer).map_err(SerializeError::from)?;
31643 }
31644 Ok(())
31645 }
31646
31647 fn is_empty_element(&self) -> bool {
31648 #[cfg(feature = "extra-children")]
31649 if !self.extra_children.is_empty() {
31650 return false;
31651 }
31652 true
31653 }
31654}
31655
31656impl ToXml for Comments {
31657 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
31658 #[cfg(feature = "extra-children")]
31659 let mut extra_iter = self.extra_children.iter().peekable();
31660 #[cfg(feature = "extra-children")]
31661 let mut emit_idx: usize = 0;
31662 for item in &self.comment {
31663 #[cfg(feature = "extra-children")]
31664 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31665 extra_iter
31666 .next()
31667 .unwrap()
31668 .node
31669 .write_to(writer)
31670 .map_err(SerializeError::from)?;
31671 }
31672 item.write_element("w:comment", writer)?;
31673 #[cfg(feature = "extra-children")]
31674 {
31675 emit_idx += 1;
31676 }
31677 }
31678 #[cfg(feature = "extra-children")]
31679 for extra in extra_iter {
31680 extra.node.write_to(writer).map_err(SerializeError::from)?;
31681 }
31682 Ok(())
31683 }
31684
31685 fn is_empty_element(&self) -> bool {
31686 if !self.comment.is_empty() {
31687 return false;
31688 }
31689 #[cfg(feature = "extra-children")]
31690 if !self.extra_children.is_empty() {
31691 return false;
31692 }
31693 true
31694 }
31695}
31696
31697impl ToXml for Footnotes {
31698 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
31699 #[cfg(feature = "extra-children")]
31700 let mut extra_iter = self.extra_children.iter().peekable();
31701 #[cfg(feature = "extra-children")]
31702 let mut emit_idx: usize = 0;
31703 for item in &self.footnote {
31704 #[cfg(feature = "extra-children")]
31705 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31706 extra_iter
31707 .next()
31708 .unwrap()
31709 .node
31710 .write_to(writer)
31711 .map_err(SerializeError::from)?;
31712 }
31713 item.write_element("w:footnote", writer)?;
31714 #[cfg(feature = "extra-children")]
31715 {
31716 emit_idx += 1;
31717 }
31718 }
31719 #[cfg(feature = "extra-children")]
31720 for extra in extra_iter {
31721 extra.node.write_to(writer).map_err(SerializeError::from)?;
31722 }
31723 Ok(())
31724 }
31725
31726 fn is_empty_element(&self) -> bool {
31727 if !self.footnote.is_empty() {
31728 return false;
31729 }
31730 #[cfg(feature = "extra-children")]
31731 if !self.extra_children.is_empty() {
31732 return false;
31733 }
31734 true
31735 }
31736}
31737
31738impl ToXml for Endnotes {
31739 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
31740 #[cfg(feature = "extra-children")]
31741 let mut extra_iter = self.extra_children.iter().peekable();
31742 #[cfg(feature = "extra-children")]
31743 let mut emit_idx: usize = 0;
31744 for item in &self.endnote {
31745 #[cfg(feature = "extra-children")]
31746 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31747 extra_iter
31748 .next()
31749 .unwrap()
31750 .node
31751 .write_to(writer)
31752 .map_err(SerializeError::from)?;
31753 }
31754 item.write_element("w:endnote", writer)?;
31755 #[cfg(feature = "extra-children")]
31756 {
31757 emit_idx += 1;
31758 }
31759 }
31760 #[cfg(feature = "extra-children")]
31761 for extra in extra_iter {
31762 extra.node.write_to(writer).map_err(SerializeError::from)?;
31763 }
31764 Ok(())
31765 }
31766
31767 fn is_empty_element(&self) -> bool {
31768 if !self.endnote.is_empty() {
31769 return false;
31770 }
31771 #[cfg(feature = "extra-children")]
31772 if !self.extra_children.is_empty() {
31773 return false;
31774 }
31775 true
31776 }
31777}
31778
31779impl ToXml for CTSmartTagType {
31780 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
31781 #[allow(unused_mut)]
31782 let mut start = start;
31783 #[cfg(feature = "wml-settings")]
31784 if let Some(ref val) = self.namespaceuri {
31785 start.push_attribute(("w:namespaceuri", val.as_str()));
31786 }
31787 #[cfg(feature = "wml-settings")]
31788 if let Some(ref val) = self.name {
31789 start.push_attribute(("w:name", val.as_str()));
31790 }
31791 #[cfg(feature = "wml-settings")]
31792 if let Some(ref val) = self.url {
31793 start.push_attribute(("w:url", val.as_str()));
31794 }
31795 #[cfg(feature = "extra-attrs")]
31796 for (key, value) in &self.extra_attrs {
31797 start.push_attribute((key.as_str(), value.as_str()));
31798 }
31799 start
31800 }
31801
31802 fn is_empty_element(&self) -> bool {
31803 true
31804 }
31805}
31806
31807impl ToXml for CTDocPartBehavior {
31808 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
31809 #[allow(unused_mut)]
31810 let mut start = start;
31811 {
31812 let val = &self.value;
31813 {
31814 let s = val.to_string();
31815 start.push_attribute(("w:val", s.as_str()));
31816 }
31817 }
31818 #[cfg(feature = "extra-attrs")]
31819 for (key, value) in &self.extra_attrs {
31820 start.push_attribute((key.as_str(), value.as_str()));
31821 }
31822 start
31823 }
31824
31825 fn is_empty_element(&self) -> bool {
31826 true
31827 }
31828}
31829
31830impl ToXml for CTDocPartBehaviors {
31831 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
31832 #[cfg(feature = "extra-children")]
31833 let mut extra_iter = self.extra_children.iter().peekable();
31834 #[cfg(feature = "extra-children")]
31835 let mut emit_idx: usize = 0;
31836 #[cfg(feature = "wml-settings")]
31837 for item in &self.behavior {
31838 #[cfg(feature = "extra-children")]
31839 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31840 extra_iter
31841 .next()
31842 .unwrap()
31843 .node
31844 .write_to(writer)
31845 .map_err(SerializeError::from)?;
31846 }
31847 item.write_element("w:behavior", writer)?;
31848 #[cfg(feature = "extra-children")]
31849 {
31850 emit_idx += 1;
31851 }
31852 }
31853 #[cfg(feature = "extra-children")]
31854 for extra in extra_iter {
31855 extra.node.write_to(writer).map_err(SerializeError::from)?;
31856 }
31857 Ok(())
31858 }
31859
31860 fn is_empty_element(&self) -> bool {
31861 #[cfg(feature = "wml-settings")]
31862 if !self.behavior.is_empty() {
31863 return false;
31864 }
31865 #[cfg(feature = "extra-children")]
31866 if !self.extra_children.is_empty() {
31867 return false;
31868 }
31869 true
31870 }
31871}
31872
31873impl ToXml for CTDocPartType {
31874 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
31875 #[allow(unused_mut)]
31876 let mut start = start;
31877 {
31878 let val = &self.value;
31879 {
31880 let s = val.to_string();
31881 start.push_attribute(("w:val", s.as_str()));
31882 }
31883 }
31884 #[cfg(feature = "extra-attrs")]
31885 for (key, value) in &self.extra_attrs {
31886 start.push_attribute((key.as_str(), value.as_str()));
31887 }
31888 start
31889 }
31890
31891 fn is_empty_element(&self) -> bool {
31892 true
31893 }
31894}
31895
31896impl ToXml for CTDocPartTypes {
31897 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
31898 #[allow(unused_mut)]
31899 let mut start = start;
31900 #[cfg(feature = "wml-settings")]
31901 if let Some(ref val) = self.all {
31902 {
31903 let s = val.to_string();
31904 start.push_attribute(("w:all", s.as_str()));
31905 }
31906 }
31907 #[cfg(feature = "extra-attrs")]
31908 for (key, value) in &self.extra_attrs {
31909 start.push_attribute((key.as_str(), value.as_str()));
31910 }
31911 start
31912 }
31913
31914 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
31915 #[cfg(feature = "extra-children")]
31916 let mut extra_iter = self.extra_children.iter().peekable();
31917 #[cfg(feature = "extra-children")]
31918 let mut emit_idx: usize = 0;
31919 #[cfg(feature = "wml-settings")]
31920 for item in &self.r#type {
31921 #[cfg(feature = "extra-children")]
31922 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31923 extra_iter
31924 .next()
31925 .unwrap()
31926 .node
31927 .write_to(writer)
31928 .map_err(SerializeError::from)?;
31929 }
31930 item.write_element("w:type", writer)?;
31931 #[cfg(feature = "extra-children")]
31932 {
31933 emit_idx += 1;
31934 }
31935 }
31936 #[cfg(feature = "extra-children")]
31937 for extra in extra_iter {
31938 extra.node.write_to(writer).map_err(SerializeError::from)?;
31939 }
31940 Ok(())
31941 }
31942
31943 fn is_empty_element(&self) -> bool {
31944 #[cfg(feature = "wml-settings")]
31945 if !self.r#type.is_empty() {
31946 return false;
31947 }
31948 #[cfg(feature = "extra-children")]
31949 if !self.extra_children.is_empty() {
31950 return false;
31951 }
31952 true
31953 }
31954}
31955
31956impl ToXml for CTDocPartGallery {
31957 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
31958 #[allow(unused_mut)]
31959 let mut start = start;
31960 {
31961 let val = &self.value;
31962 {
31963 let s = val.to_string();
31964 start.push_attribute(("w:val", s.as_str()));
31965 }
31966 }
31967 #[cfg(feature = "extra-attrs")]
31968 for (key, value) in &self.extra_attrs {
31969 start.push_attribute((key.as_str(), value.as_str()));
31970 }
31971 start
31972 }
31973
31974 fn is_empty_element(&self) -> bool {
31975 true
31976 }
31977}
31978
31979impl ToXml for CTDocPartCategory {
31980 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
31981 #[cfg(feature = "extra-children")]
31982 let mut extra_iter = self.extra_children.iter().peekable();
31983 #[cfg(feature = "extra-children")]
31984 let mut emit_idx: usize = 0;
31985 #[cfg(feature = "extra-children")]
31986 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
31987 extra_iter
31988 .next()
31989 .unwrap()
31990 .node
31991 .write_to(writer)
31992 .map_err(SerializeError::from)?;
31993 }
31994 {
31995 let val = &self.name;
31996 val.write_element("w:name", writer)?;
31997 }
31998 #[cfg(feature = "extra-children")]
31999 {
32000 emit_idx += 1;
32001 }
32002 #[cfg(feature = "extra-children")]
32003 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32004 extra_iter
32005 .next()
32006 .unwrap()
32007 .node
32008 .write_to(writer)
32009 .map_err(SerializeError::from)?;
32010 }
32011 #[cfg(feature = "wml-settings")]
32012 {
32013 let val = &self.gallery;
32014 val.write_element("w:gallery", writer)?;
32015 }
32016 #[cfg(feature = "extra-children")]
32017 {
32018 emit_idx += 1;
32019 }
32020 #[cfg(feature = "extra-children")]
32021 for extra in extra_iter {
32022 extra.node.write_to(writer).map_err(SerializeError::from)?;
32023 }
32024 Ok(())
32025 }
32026
32027 fn is_empty_element(&self) -> bool {
32028 false
32029 }
32030}
32031
32032impl ToXml for CTDocPartName {
32033 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
32034 #[allow(unused_mut)]
32035 let mut start = start;
32036 {
32037 let val = &self.value;
32038 start.push_attribute(("w:val", val.as_str()));
32039 }
32040 #[cfg(feature = "wml-settings")]
32041 if let Some(ref val) = self.decorated {
32042 {
32043 let s = val.to_string();
32044 start.push_attribute(("w:decorated", s.as_str()));
32045 }
32046 }
32047 #[cfg(feature = "extra-attrs")]
32048 for (key, value) in &self.extra_attrs {
32049 start.push_attribute((key.as_str(), value.as_str()));
32050 }
32051 start
32052 }
32053
32054 fn is_empty_element(&self) -> bool {
32055 true
32056 }
32057}
32058
32059impl ToXml for CTDocPartPr {
32060 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
32061 #[cfg(feature = "extra-children")]
32062 let mut extra_iter = self.extra_children.iter().peekable();
32063 #[cfg(feature = "extra-children")]
32064 let mut emit_idx: usize = 0;
32065 #[cfg(feature = "extra-children")]
32066 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32067 extra_iter
32068 .next()
32069 .unwrap()
32070 .node
32071 .write_to(writer)
32072 .map_err(SerializeError::from)?;
32073 }
32074 #[cfg(feature = "wml-settings")]
32075 {
32076 let val = &self.name;
32077 val.write_element("w:name", writer)?;
32078 }
32079 #[cfg(feature = "extra-children")]
32080 {
32081 emit_idx += 1;
32082 }
32083 #[cfg(feature = "extra-children")]
32084 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32085 extra_iter
32086 .next()
32087 .unwrap()
32088 .node
32089 .write_to(writer)
32090 .map_err(SerializeError::from)?;
32091 }
32092 #[cfg(feature = "wml-settings")]
32093 if let Some(ref val) = self.style {
32094 val.write_element("w:style", writer)?;
32095 }
32096 #[cfg(feature = "extra-children")]
32097 {
32098 emit_idx += 1;
32099 }
32100 #[cfg(feature = "extra-children")]
32101 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32102 extra_iter
32103 .next()
32104 .unwrap()
32105 .node
32106 .write_to(writer)
32107 .map_err(SerializeError::from)?;
32108 }
32109 #[cfg(feature = "wml-settings")]
32110 if let Some(ref val) = self.category {
32111 val.write_element("w:category", writer)?;
32112 }
32113 #[cfg(feature = "extra-children")]
32114 {
32115 emit_idx += 1;
32116 }
32117 #[cfg(feature = "extra-children")]
32118 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32119 extra_iter
32120 .next()
32121 .unwrap()
32122 .node
32123 .write_to(writer)
32124 .map_err(SerializeError::from)?;
32125 }
32126 #[cfg(feature = "wml-settings")]
32127 if let Some(ref val) = self.types {
32128 val.write_element("w:types", writer)?;
32129 }
32130 #[cfg(feature = "extra-children")]
32131 {
32132 emit_idx += 1;
32133 }
32134 #[cfg(feature = "extra-children")]
32135 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32136 extra_iter
32137 .next()
32138 .unwrap()
32139 .node
32140 .write_to(writer)
32141 .map_err(SerializeError::from)?;
32142 }
32143 #[cfg(feature = "wml-settings")]
32144 if let Some(ref val) = self.behaviors {
32145 val.write_element("w:behaviors", writer)?;
32146 }
32147 #[cfg(feature = "extra-children")]
32148 {
32149 emit_idx += 1;
32150 }
32151 #[cfg(feature = "extra-children")]
32152 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32153 extra_iter
32154 .next()
32155 .unwrap()
32156 .node
32157 .write_to(writer)
32158 .map_err(SerializeError::from)?;
32159 }
32160 #[cfg(feature = "wml-settings")]
32161 if let Some(ref val) = self.description {
32162 val.write_element("w:description", writer)?;
32163 }
32164 #[cfg(feature = "extra-children")]
32165 {
32166 emit_idx += 1;
32167 }
32168 #[cfg(feature = "extra-children")]
32169 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32170 extra_iter
32171 .next()
32172 .unwrap()
32173 .node
32174 .write_to(writer)
32175 .map_err(SerializeError::from)?;
32176 }
32177 #[cfg(feature = "wml-settings")]
32178 if let Some(ref val) = self.guid {
32179 val.write_element("w:guid", writer)?;
32180 }
32181 #[cfg(feature = "extra-children")]
32182 {
32183 emit_idx += 1;
32184 }
32185 #[cfg(feature = "extra-children")]
32186 for extra in extra_iter {
32187 extra.node.write_to(writer).map_err(SerializeError::from)?;
32188 }
32189 Ok(())
32190 }
32191
32192 fn is_empty_element(&self) -> bool {
32193 #[cfg(feature = "wml-settings")]
32194 return false;
32195 #[cfg(feature = "wml-settings")]
32196 if self.style.is_some() {
32197 return false;
32198 }
32199 #[cfg(feature = "wml-settings")]
32200 if self.category.is_some() {
32201 return false;
32202 }
32203 #[cfg(feature = "wml-settings")]
32204 if self.types.is_some() {
32205 return false;
32206 }
32207 #[cfg(feature = "wml-settings")]
32208 if self.behaviors.is_some() {
32209 return false;
32210 }
32211 #[cfg(feature = "wml-settings")]
32212 if self.description.is_some() {
32213 return false;
32214 }
32215 #[cfg(feature = "wml-settings")]
32216 if self.guid.is_some() {
32217 return false;
32218 }
32219 #[cfg(feature = "extra-children")]
32220 if !self.extra_children.is_empty() {
32221 return false;
32222 }
32223 true
32224 }
32225}
32226
32227impl ToXml for CTDocPart {
32228 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
32229 #[cfg(feature = "extra-children")]
32230 let mut extra_iter = self.extra_children.iter().peekable();
32231 #[cfg(feature = "extra-children")]
32232 let mut emit_idx: usize = 0;
32233 #[cfg(feature = "extra-children")]
32234 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32235 extra_iter
32236 .next()
32237 .unwrap()
32238 .node
32239 .write_to(writer)
32240 .map_err(SerializeError::from)?;
32241 }
32242 #[cfg(feature = "wml-settings")]
32243 if let Some(ref val) = self.doc_part_pr {
32244 val.write_element("w:docPartPr", writer)?;
32245 }
32246 #[cfg(feature = "extra-children")]
32247 {
32248 emit_idx += 1;
32249 }
32250 #[cfg(feature = "extra-children")]
32251 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32252 extra_iter
32253 .next()
32254 .unwrap()
32255 .node
32256 .write_to(writer)
32257 .map_err(SerializeError::from)?;
32258 }
32259 #[cfg(feature = "wml-settings")]
32260 if let Some(ref val) = self.doc_part_body {
32261 val.write_element("w:docPartBody", writer)?;
32262 }
32263 #[cfg(feature = "extra-children")]
32264 {
32265 emit_idx += 1;
32266 }
32267 #[cfg(feature = "extra-children")]
32268 for extra in extra_iter {
32269 extra.node.write_to(writer).map_err(SerializeError::from)?;
32270 }
32271 Ok(())
32272 }
32273
32274 fn is_empty_element(&self) -> bool {
32275 #[cfg(feature = "wml-settings")]
32276 if self.doc_part_pr.is_some() {
32277 return false;
32278 }
32279 #[cfg(feature = "wml-settings")]
32280 if self.doc_part_body.is_some() {
32281 return false;
32282 }
32283 #[cfg(feature = "extra-children")]
32284 if !self.extra_children.is_empty() {
32285 return false;
32286 }
32287 true
32288 }
32289}
32290
32291impl ToXml for CTDocParts {
32292 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
32293 #[cfg(feature = "extra-children")]
32294 let mut extra_iter = self.extra_children.iter().peekable();
32295 #[cfg(feature = "extra-children")]
32296 let mut emit_idx: usize = 0;
32297 #[cfg(feature = "wml-settings")]
32298 for item in &self.doc_part {
32299 #[cfg(feature = "extra-children")]
32300 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32301 extra_iter
32302 .next()
32303 .unwrap()
32304 .node
32305 .write_to(writer)
32306 .map_err(SerializeError::from)?;
32307 }
32308 item.write_element("w:docPart", writer)?;
32309 #[cfg(feature = "extra-children")]
32310 {
32311 emit_idx += 1;
32312 }
32313 }
32314 #[cfg(feature = "extra-children")]
32315 for extra in extra_iter {
32316 extra.node.write_to(writer).map_err(SerializeError::from)?;
32317 }
32318 Ok(())
32319 }
32320
32321 fn is_empty_element(&self) -> bool {
32322 #[cfg(feature = "wml-settings")]
32323 if !self.doc_part.is_empty() {
32324 return false;
32325 }
32326 #[cfg(feature = "extra-children")]
32327 if !self.extra_children.is_empty() {
32328 return false;
32329 }
32330 true
32331 }
32332}
32333
32334impl ToXml for CTCaption {
32335 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
32336 #[allow(unused_mut)]
32337 let mut start = start;
32338 #[cfg(feature = "wml-settings")]
32339 {
32340 let val = &self.name;
32341 start.push_attribute(("w:name", val.as_str()));
32342 }
32343 #[cfg(feature = "wml-settings")]
32344 if let Some(ref val) = self.pos {
32345 {
32346 let s = val.to_string();
32347 start.push_attribute(("w:pos", s.as_str()));
32348 }
32349 }
32350 #[cfg(feature = "wml-settings")]
32351 if let Some(ref val) = self.chap_num {
32352 {
32353 let s = val.to_string();
32354 start.push_attribute(("w:chapNum", s.as_str()));
32355 }
32356 }
32357 #[cfg(feature = "wml-settings")]
32358 if let Some(ref val) = self.heading {
32359 {
32360 let s = val.to_string();
32361 start.push_attribute(("w:heading", s.as_str()));
32362 }
32363 }
32364 #[cfg(feature = "wml-settings")]
32365 if let Some(ref val) = self.no_label {
32366 {
32367 let s = val.to_string();
32368 start.push_attribute(("w:noLabel", s.as_str()));
32369 }
32370 }
32371 #[cfg(feature = "wml-settings")]
32372 if let Some(ref val) = self.num_fmt {
32373 {
32374 let s = val.to_string();
32375 start.push_attribute(("w:numFmt", s.as_str()));
32376 }
32377 }
32378 #[cfg(feature = "wml-settings")]
32379 if let Some(ref val) = self.sep {
32380 {
32381 let s = val.to_string();
32382 start.push_attribute(("w:sep", s.as_str()));
32383 }
32384 }
32385 #[cfg(feature = "extra-attrs")]
32386 for (key, value) in &self.extra_attrs {
32387 start.push_attribute((key.as_str(), value.as_str()));
32388 }
32389 start
32390 }
32391
32392 fn is_empty_element(&self) -> bool {
32393 true
32394 }
32395}
32396
32397impl ToXml for CTAutoCaption {
32398 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
32399 #[allow(unused_mut)]
32400 let mut start = start;
32401 #[cfg(feature = "wml-settings")]
32402 {
32403 let val = &self.name;
32404 start.push_attribute(("w:name", val.as_str()));
32405 }
32406 #[cfg(feature = "wml-settings")]
32407 {
32408 let val = &self.caption;
32409 start.push_attribute(("w:caption", val.as_str()));
32410 }
32411 #[cfg(feature = "extra-attrs")]
32412 for (key, value) in &self.extra_attrs {
32413 start.push_attribute((key.as_str(), value.as_str()));
32414 }
32415 start
32416 }
32417
32418 fn is_empty_element(&self) -> bool {
32419 true
32420 }
32421}
32422
32423impl ToXml for CTAutoCaptions {
32424 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
32425 #[cfg(feature = "extra-children")]
32426 let mut extra_iter = self.extra_children.iter().peekable();
32427 #[cfg(feature = "extra-children")]
32428 let mut emit_idx: usize = 0;
32429 #[cfg(feature = "wml-settings")]
32430 for item in &self.auto_caption {
32431 #[cfg(feature = "extra-children")]
32432 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32433 extra_iter
32434 .next()
32435 .unwrap()
32436 .node
32437 .write_to(writer)
32438 .map_err(SerializeError::from)?;
32439 }
32440 item.write_element("w:autoCaption", writer)?;
32441 #[cfg(feature = "extra-children")]
32442 {
32443 emit_idx += 1;
32444 }
32445 }
32446 #[cfg(feature = "extra-children")]
32447 for extra in extra_iter {
32448 extra.node.write_to(writer).map_err(SerializeError::from)?;
32449 }
32450 Ok(())
32451 }
32452
32453 fn is_empty_element(&self) -> bool {
32454 #[cfg(feature = "wml-settings")]
32455 if !self.auto_caption.is_empty() {
32456 return false;
32457 }
32458 #[cfg(feature = "extra-children")]
32459 if !self.extra_children.is_empty() {
32460 return false;
32461 }
32462 true
32463 }
32464}
32465
32466impl ToXml for CTCaptions {
32467 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
32468 #[cfg(feature = "extra-children")]
32469 let mut extra_iter = self.extra_children.iter().peekable();
32470 #[cfg(feature = "extra-children")]
32471 let mut emit_idx: usize = 0;
32472 #[cfg(feature = "wml-settings")]
32473 for item in &self.caption {
32474 #[cfg(feature = "extra-children")]
32475 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32476 extra_iter
32477 .next()
32478 .unwrap()
32479 .node
32480 .write_to(writer)
32481 .map_err(SerializeError::from)?;
32482 }
32483 item.write_element("w:caption", writer)?;
32484 #[cfg(feature = "extra-children")]
32485 {
32486 emit_idx += 1;
32487 }
32488 }
32489 #[cfg(feature = "extra-children")]
32490 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32491 extra_iter
32492 .next()
32493 .unwrap()
32494 .node
32495 .write_to(writer)
32496 .map_err(SerializeError::from)?;
32497 }
32498 #[cfg(feature = "wml-settings")]
32499 if let Some(ref val) = self.auto_captions {
32500 val.write_element("w:autoCaptions", writer)?;
32501 }
32502 #[cfg(feature = "extra-children")]
32503 {
32504 emit_idx += 1;
32505 }
32506 #[cfg(feature = "extra-children")]
32507 for extra in extra_iter {
32508 extra.node.write_to(writer).map_err(SerializeError::from)?;
32509 }
32510 Ok(())
32511 }
32512
32513 fn is_empty_element(&self) -> bool {
32514 #[cfg(feature = "wml-settings")]
32515 if !self.caption.is_empty() {
32516 return false;
32517 }
32518 #[cfg(feature = "wml-settings")]
32519 if self.auto_captions.is_some() {
32520 return false;
32521 }
32522 #[cfg(feature = "extra-children")]
32523 if !self.extra_children.is_empty() {
32524 return false;
32525 }
32526 true
32527 }
32528}
32529
32530impl ToXml for CTDocumentBase {
32531 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
32532 #[cfg(feature = "extra-children")]
32533 let mut extra_iter = self.extra_children.iter().peekable();
32534 #[cfg(feature = "extra-children")]
32535 let mut emit_idx: usize = 0;
32536 #[cfg(feature = "extra-children")]
32537 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32538 extra_iter
32539 .next()
32540 .unwrap()
32541 .node
32542 .write_to(writer)
32543 .map_err(SerializeError::from)?;
32544 }
32545 #[cfg(feature = "wml-styling")]
32546 if let Some(ref val) = self.background {
32547 val.write_element("w:background", writer)?;
32548 }
32549 #[cfg(feature = "extra-children")]
32550 {
32551 emit_idx += 1;
32552 }
32553 #[cfg(feature = "extra-children")]
32554 for extra in extra_iter {
32555 extra.node.write_to(writer).map_err(SerializeError::from)?;
32556 }
32557 Ok(())
32558 }
32559
32560 fn is_empty_element(&self) -> bool {
32561 #[cfg(feature = "wml-styling")]
32562 if self.background.is_some() {
32563 return false;
32564 }
32565 #[cfg(feature = "extra-children")]
32566 if !self.extra_children.is_empty() {
32567 return false;
32568 }
32569 true
32570 }
32571}
32572
32573impl ToXml for Document {
32574 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
32575 #[allow(unused_mut)]
32576 let mut start = start;
32577 if let Some(ref val) = self.conformance {
32578 {
32579 let s = val.to_string();
32580 start.push_attribute(("w:conformance", s.as_str()));
32581 }
32582 }
32583 #[cfg(feature = "extra-attrs")]
32584 for (key, value) in &self.extra_attrs {
32585 start.push_attribute((key.as_str(), value.as_str()));
32586 }
32587 start
32588 }
32589
32590 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
32591 #[cfg(feature = "extra-children")]
32592 let mut extra_iter = self.extra_children.iter().peekable();
32593 #[cfg(feature = "extra-children")]
32594 let mut emit_idx: usize = 0;
32595 #[cfg(feature = "extra-children")]
32596 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32597 extra_iter
32598 .next()
32599 .unwrap()
32600 .node
32601 .write_to(writer)
32602 .map_err(SerializeError::from)?;
32603 }
32604 #[cfg(feature = "wml-styling")]
32605 if let Some(ref val) = self.background {
32606 val.write_element("w:background", writer)?;
32607 }
32608 #[cfg(feature = "extra-children")]
32609 {
32610 emit_idx += 1;
32611 }
32612 #[cfg(feature = "extra-children")]
32613 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32614 extra_iter
32615 .next()
32616 .unwrap()
32617 .node
32618 .write_to(writer)
32619 .map_err(SerializeError::from)?;
32620 }
32621 if let Some(ref val) = self.body {
32622 val.write_element("w:body", writer)?;
32623 }
32624 #[cfg(feature = "extra-children")]
32625 {
32626 emit_idx += 1;
32627 }
32628 #[cfg(feature = "extra-children")]
32629 for extra in extra_iter {
32630 extra.node.write_to(writer).map_err(SerializeError::from)?;
32631 }
32632 Ok(())
32633 }
32634
32635 fn is_empty_element(&self) -> bool {
32636 #[cfg(feature = "wml-styling")]
32637 if self.background.is_some() {
32638 return false;
32639 }
32640 if self.body.is_some() {
32641 return false;
32642 }
32643 #[cfg(feature = "extra-children")]
32644 if !self.extra_children.is_empty() {
32645 return false;
32646 }
32647 true
32648 }
32649}
32650
32651impl ToXml for CTGlossaryDocument {
32652 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
32653 #[cfg(feature = "extra-children")]
32654 let mut extra_iter = self.extra_children.iter().peekable();
32655 #[cfg(feature = "extra-children")]
32656 let mut emit_idx: usize = 0;
32657 #[cfg(feature = "extra-children")]
32658 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32659 extra_iter
32660 .next()
32661 .unwrap()
32662 .node
32663 .write_to(writer)
32664 .map_err(SerializeError::from)?;
32665 }
32666 if let Some(ref val) = self.background {
32667 val.write_element("w:background", writer)?;
32668 }
32669 #[cfg(feature = "extra-children")]
32670 {
32671 emit_idx += 1;
32672 }
32673 #[cfg(feature = "extra-children")]
32674 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
32675 extra_iter
32676 .next()
32677 .unwrap()
32678 .node
32679 .write_to(writer)
32680 .map_err(SerializeError::from)?;
32681 }
32682 #[cfg(feature = "wml-settings")]
32683 if let Some(ref val) = self.doc_parts {
32684 val.write_element("w:docParts", writer)?;
32685 }
32686 #[cfg(feature = "extra-children")]
32687 {
32688 emit_idx += 1;
32689 }
32690 #[cfg(feature = "extra-children")]
32691 for extra in extra_iter {
32692 extra.node.write_to(writer).map_err(SerializeError::from)?;
32693 }
32694 Ok(())
32695 }
32696
32697 fn is_empty_element(&self) -> bool {
32698 if self.background.is_some() {
32699 return false;
32700 }
32701 #[cfg(feature = "wml-settings")]
32702 if self.doc_parts.is_some() {
32703 return false;
32704 }
32705 #[cfg(feature = "extra-children")]
32706 if !self.extra_children.is_empty() {
32707 return false;
32708 }
32709 true
32710 }
32711}
32712
32713impl ToXml for WAnyVmlOffice {
32714 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
32715 #[cfg(feature = "extra-children")]
32716 for child in &self.extra_children {
32717 child.node.write_to(writer).map_err(SerializeError::from)?;
32718 }
32719 Ok(())
32720 }
32721
32722 fn is_empty_element(&self) -> bool {
32723 #[cfg(feature = "extra-children")]
32724 if !self.extra_children.is_empty() {
32725 return false;
32726 }
32727 true
32728 }
32729}
32730
32731impl ToXml for WAnyVmlVml {
32732 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
32733 #[cfg(feature = "extra-children")]
32734 for child in &self.extra_children {
32735 child.node.write_to(writer).map_err(SerializeError::from)?;
32736 }
32737 Ok(())
32738 }
32739
32740 fn is_empty_element(&self) -> bool {
32741 #[cfg(feature = "extra-children")]
32742 if !self.extra_children.is_empty() {
32743 return false;
32744 }
32745 true
32746 }
32747}