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 AutoFilter {
29 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
30 #[allow(unused_mut)]
31 let mut start = start;
32 #[cfg(feature = "sml-filtering")]
33 if let Some(ref val) = self.reference {
34 start.push_attribute(("ref", val.as_str()));
35 }
36 #[cfg(feature = "extra-attrs")]
37 for (key, value) in &self.extra_attrs {
38 start.push_attribute((key.as_str(), value.as_str()));
39 }
40 start
41 }
42
43 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
44 #[cfg(feature = "extra-children")]
45 let mut extra_iter = self.extra_children.iter().peekable();
46 #[cfg(feature = "extra-children")]
47 let mut emit_idx: usize = 0;
48 #[cfg(feature = "sml-filtering")]
49 for item in &self.filter_column {
50 #[cfg(feature = "extra-children")]
51 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
52 extra_iter
53 .next()
54 .unwrap()
55 .node
56 .write_to(writer)
57 .map_err(SerializeError::from)?;
58 }
59 item.write_element("filterColumn", writer)?;
60 #[cfg(feature = "extra-children")]
61 {
62 emit_idx += 1;
63 }
64 }
65 #[cfg(feature = "extra-children")]
66 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
67 extra_iter
68 .next()
69 .unwrap()
70 .node
71 .write_to(writer)
72 .map_err(SerializeError::from)?;
73 }
74 #[cfg(feature = "sml-filtering")]
75 if let Some(ref val) = self.sort_state {
76 val.write_element("sortState", writer)?;
77 }
78 #[cfg(feature = "extra-children")]
79 {
80 emit_idx += 1;
81 }
82 #[cfg(feature = "extra-children")]
83 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
84 extra_iter
85 .next()
86 .unwrap()
87 .node
88 .write_to(writer)
89 .map_err(SerializeError::from)?;
90 }
91 #[cfg(feature = "sml-extensions")]
92 if let Some(ref val) = self.extension_list {
93 val.write_element("extLst", writer)?;
94 }
95 #[cfg(feature = "extra-children")]
96 {
97 emit_idx += 1;
98 }
99 #[cfg(feature = "extra-children")]
100 for extra in extra_iter {
101 extra.node.write_to(writer).map_err(SerializeError::from)?;
102 }
103 Ok(())
104 }
105
106 fn is_empty_element(&self) -> bool {
107 #[cfg(feature = "sml-filtering")]
108 if !self.filter_column.is_empty() {
109 return false;
110 }
111 #[cfg(feature = "sml-filtering")]
112 if self.sort_state.is_some() {
113 return false;
114 }
115 #[cfg(feature = "sml-extensions")]
116 if self.extension_list.is_some() {
117 return false;
118 }
119 #[cfg(feature = "extra-children")]
120 if !self.extra_children.is_empty() {
121 return false;
122 }
123 true
124 }
125}
126
127impl ToXml for FilterColumn {
128 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
129 #[allow(unused_mut)]
130 let mut start = start;
131 #[cfg(feature = "sml-filtering")]
132 {
133 let val = &self.column_id;
134 {
135 let s = val.to_string();
136 start.push_attribute(("colId", s.as_str()));
137 }
138 }
139 #[cfg(feature = "sml-filtering")]
140 if let Some(ref val) = self.hidden_button {
141 start.push_attribute(("hiddenButton", if *val { "1" } else { "0" }));
142 }
143 #[cfg(feature = "sml-filtering")]
144 if let Some(ref val) = self.show_button {
145 start.push_attribute(("showButton", if *val { "1" } else { "0" }));
146 }
147 #[cfg(feature = "extra-attrs")]
148 for (key, value) in &self.extra_attrs {
149 start.push_attribute((key.as_str(), value.as_str()));
150 }
151 start
152 }
153
154 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
155 #[cfg(feature = "extra-children")]
156 let mut extra_iter = self.extra_children.iter().peekable();
157 #[cfg(feature = "extra-children")]
158 let mut emit_idx: usize = 0;
159 #[cfg(feature = "extra-children")]
160 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
161 extra_iter
162 .next()
163 .unwrap()
164 .node
165 .write_to(writer)
166 .map_err(SerializeError::from)?;
167 }
168 #[cfg(feature = "sml-filtering")]
169 if let Some(ref val) = self.filters {
170 val.write_element("filters", writer)?;
171 }
172 #[cfg(feature = "extra-children")]
173 {
174 emit_idx += 1;
175 }
176 #[cfg(feature = "extra-children")]
177 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
178 extra_iter
179 .next()
180 .unwrap()
181 .node
182 .write_to(writer)
183 .map_err(SerializeError::from)?;
184 }
185 #[cfg(feature = "sml-filtering")]
186 if let Some(ref val) = self.top10 {
187 val.write_element("top10", writer)?;
188 }
189 #[cfg(feature = "extra-children")]
190 {
191 emit_idx += 1;
192 }
193 #[cfg(feature = "extra-children")]
194 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
195 extra_iter
196 .next()
197 .unwrap()
198 .node
199 .write_to(writer)
200 .map_err(SerializeError::from)?;
201 }
202 #[cfg(feature = "sml-filtering")]
203 if let Some(ref val) = self.custom_filters {
204 val.write_element("customFilters", writer)?;
205 }
206 #[cfg(feature = "extra-children")]
207 {
208 emit_idx += 1;
209 }
210 #[cfg(feature = "extra-children")]
211 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
212 extra_iter
213 .next()
214 .unwrap()
215 .node
216 .write_to(writer)
217 .map_err(SerializeError::from)?;
218 }
219 #[cfg(feature = "sml-filtering")]
220 if let Some(ref val) = self.dynamic_filter {
221 val.write_element("dynamicFilter", writer)?;
222 }
223 #[cfg(feature = "extra-children")]
224 {
225 emit_idx += 1;
226 }
227 #[cfg(feature = "extra-children")]
228 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
229 extra_iter
230 .next()
231 .unwrap()
232 .node
233 .write_to(writer)
234 .map_err(SerializeError::from)?;
235 }
236 #[cfg(feature = "sml-filtering")]
237 if let Some(ref val) = self.color_filter {
238 val.write_element("colorFilter", writer)?;
239 }
240 #[cfg(feature = "extra-children")]
241 {
242 emit_idx += 1;
243 }
244 #[cfg(feature = "extra-children")]
245 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
246 extra_iter
247 .next()
248 .unwrap()
249 .node
250 .write_to(writer)
251 .map_err(SerializeError::from)?;
252 }
253 #[cfg(feature = "sml-filtering")]
254 if let Some(ref val) = self.icon_filter {
255 val.write_element("iconFilter", writer)?;
256 }
257 #[cfg(feature = "extra-children")]
258 {
259 emit_idx += 1;
260 }
261 #[cfg(feature = "extra-children")]
262 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
263 extra_iter
264 .next()
265 .unwrap()
266 .node
267 .write_to(writer)
268 .map_err(SerializeError::from)?;
269 }
270 #[cfg(feature = "sml-extensions")]
271 if let Some(ref val) = self.extension_list {
272 val.write_element("extLst", writer)?;
273 }
274 #[cfg(feature = "extra-children")]
275 {
276 emit_idx += 1;
277 }
278 #[cfg(feature = "extra-children")]
279 for extra in extra_iter {
280 extra.node.write_to(writer).map_err(SerializeError::from)?;
281 }
282 Ok(())
283 }
284
285 fn is_empty_element(&self) -> bool {
286 #[cfg(feature = "sml-filtering")]
287 if self.filters.is_some() {
288 return false;
289 }
290 #[cfg(feature = "sml-filtering")]
291 if self.top10.is_some() {
292 return false;
293 }
294 #[cfg(feature = "sml-filtering")]
295 if self.custom_filters.is_some() {
296 return false;
297 }
298 #[cfg(feature = "sml-filtering")]
299 if self.dynamic_filter.is_some() {
300 return false;
301 }
302 #[cfg(feature = "sml-filtering")]
303 if self.color_filter.is_some() {
304 return false;
305 }
306 #[cfg(feature = "sml-filtering")]
307 if self.icon_filter.is_some() {
308 return false;
309 }
310 #[cfg(feature = "sml-extensions")]
311 if self.extension_list.is_some() {
312 return false;
313 }
314 #[cfg(feature = "extra-children")]
315 if !self.extra_children.is_empty() {
316 return false;
317 }
318 true
319 }
320}
321
322impl ToXml for Filters {
323 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
324 #[allow(unused_mut)]
325 let mut start = start;
326 if let Some(ref val) = self.blank {
327 start.push_attribute(("blank", if *val { "1" } else { "0" }));
328 }
329 if let Some(ref val) = self.calendar_type {
330 {
331 let s = val.to_string();
332 start.push_attribute(("calendarType", s.as_str()));
333 }
334 }
335 #[cfg(feature = "extra-attrs")]
336 for (key, value) in &self.extra_attrs {
337 start.push_attribute((key.as_str(), value.as_str()));
338 }
339 start
340 }
341
342 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
343 #[cfg(feature = "extra-children")]
344 let mut extra_iter = self.extra_children.iter().peekable();
345 #[cfg(feature = "extra-children")]
346 let mut emit_idx: usize = 0;
347 for item in &self.filter {
348 #[cfg(feature = "extra-children")]
349 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
350 extra_iter
351 .next()
352 .unwrap()
353 .node
354 .write_to(writer)
355 .map_err(SerializeError::from)?;
356 }
357 item.write_element("filter", writer)?;
358 #[cfg(feature = "extra-children")]
359 {
360 emit_idx += 1;
361 }
362 }
363 for item in &self.date_group_item {
364 #[cfg(feature = "extra-children")]
365 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
366 extra_iter
367 .next()
368 .unwrap()
369 .node
370 .write_to(writer)
371 .map_err(SerializeError::from)?;
372 }
373 item.write_element("dateGroupItem", writer)?;
374 #[cfg(feature = "extra-children")]
375 {
376 emit_idx += 1;
377 }
378 }
379 #[cfg(feature = "extra-children")]
380 for extra in extra_iter {
381 extra.node.write_to(writer).map_err(SerializeError::from)?;
382 }
383 Ok(())
384 }
385
386 fn is_empty_element(&self) -> bool {
387 if !self.filter.is_empty() {
388 return false;
389 }
390 if !self.date_group_item.is_empty() {
391 return false;
392 }
393 #[cfg(feature = "extra-children")]
394 if !self.extra_children.is_empty() {
395 return false;
396 }
397 true
398 }
399}
400
401impl ToXml for Filter {
402 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
403 #[allow(unused_mut)]
404 let mut start = start;
405 if let Some(ref val) = self.value {
406 start.push_attribute(("val", val.as_str()));
407 }
408 #[cfg(feature = "extra-attrs")]
409 for (key, value) in &self.extra_attrs {
410 start.push_attribute((key.as_str(), value.as_str()));
411 }
412 start
413 }
414
415 fn is_empty_element(&self) -> bool {
416 true
417 }
418}
419
420impl ToXml for CustomFilters {
421 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
422 #[allow(unused_mut)]
423 let mut start = start;
424 if let Some(ref val) = self.and {
425 start.push_attribute(("and", if *val { "1" } else { "0" }));
426 }
427 #[cfg(feature = "extra-attrs")]
428 for (key, value) in &self.extra_attrs {
429 start.push_attribute((key.as_str(), value.as_str()));
430 }
431 start
432 }
433
434 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
435 #[cfg(feature = "extra-children")]
436 let mut extra_iter = self.extra_children.iter().peekable();
437 #[cfg(feature = "extra-children")]
438 let mut emit_idx: usize = 0;
439 for item in &self.custom_filter {
440 #[cfg(feature = "extra-children")]
441 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
442 extra_iter
443 .next()
444 .unwrap()
445 .node
446 .write_to(writer)
447 .map_err(SerializeError::from)?;
448 }
449 item.write_element("customFilter", writer)?;
450 #[cfg(feature = "extra-children")]
451 {
452 emit_idx += 1;
453 }
454 }
455 #[cfg(feature = "extra-children")]
456 for extra in extra_iter {
457 extra.node.write_to(writer).map_err(SerializeError::from)?;
458 }
459 Ok(())
460 }
461
462 fn is_empty_element(&self) -> bool {
463 if !self.custom_filter.is_empty() {
464 return false;
465 }
466 #[cfg(feature = "extra-children")]
467 if !self.extra_children.is_empty() {
468 return false;
469 }
470 true
471 }
472}
473
474impl ToXml for CustomFilter {
475 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
476 #[allow(unused_mut)]
477 let mut start = start;
478 if let Some(ref val) = self.operator {
479 {
480 let s = val.to_string();
481 start.push_attribute(("operator", s.as_str()));
482 }
483 }
484 if let Some(ref val) = self.value {
485 start.push_attribute(("val", val.as_str()));
486 }
487 #[cfg(feature = "extra-attrs")]
488 for (key, value) in &self.extra_attrs {
489 start.push_attribute((key.as_str(), value.as_str()));
490 }
491 start
492 }
493
494 fn is_empty_element(&self) -> bool {
495 true
496 }
497}
498
499impl ToXml for Top10Filter {
500 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
501 #[allow(unused_mut)]
502 let mut start = start;
503 if let Some(ref val) = self.top {
504 start.push_attribute(("top", if *val { "1" } else { "0" }));
505 }
506 if let Some(ref val) = self.percent {
507 start.push_attribute(("percent", if *val { "1" } else { "0" }));
508 }
509 {
510 let val = &self.value;
511 {
512 let s = val.to_string();
513 start.push_attribute(("val", s.as_str()));
514 }
515 }
516 if let Some(ref val) = self.filter_val {
517 {
518 let s = val.to_string();
519 start.push_attribute(("filterVal", s.as_str()));
520 }
521 }
522 #[cfg(feature = "extra-attrs")]
523 for (key, value) in &self.extra_attrs {
524 start.push_attribute((key.as_str(), value.as_str()));
525 }
526 start
527 }
528
529 fn is_empty_element(&self) -> bool {
530 true
531 }
532}
533
534impl ToXml for ColorFilter {
535 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
536 #[allow(unused_mut)]
537 let mut start = start;
538 if let Some(ref val) = self.dxf_id {
539 {
540 let s = val.to_string();
541 start.push_attribute(("dxfId", s.as_str()));
542 }
543 }
544 if let Some(ref val) = self.cell_color {
545 start.push_attribute(("cellColor", if *val { "1" } else { "0" }));
546 }
547 #[cfg(feature = "extra-attrs")]
548 for (key, value) in &self.extra_attrs {
549 start.push_attribute((key.as_str(), value.as_str()));
550 }
551 start
552 }
553
554 fn is_empty_element(&self) -> bool {
555 true
556 }
557}
558
559impl ToXml for IconFilter {
560 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
561 #[allow(unused_mut)]
562 let mut start = start;
563 {
564 let val = &self.icon_set;
565 {
566 let s = val.to_string();
567 start.push_attribute(("iconSet", s.as_str()));
568 }
569 }
570 if let Some(ref val) = self.icon_id {
571 {
572 let s = val.to_string();
573 start.push_attribute(("iconId", s.as_str()));
574 }
575 }
576 #[cfg(feature = "extra-attrs")]
577 for (key, value) in &self.extra_attrs {
578 start.push_attribute((key.as_str(), value.as_str()));
579 }
580 start
581 }
582
583 fn is_empty_element(&self) -> bool {
584 true
585 }
586}
587
588impl ToXml for DynamicFilter {
589 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
590 #[allow(unused_mut)]
591 let mut start = start;
592 {
593 let val = &self.r#type;
594 {
595 let s = val.to_string();
596 start.push_attribute(("type", s.as_str()));
597 }
598 }
599 if let Some(ref val) = self.value {
600 {
601 let s = val.to_string();
602 start.push_attribute(("val", s.as_str()));
603 }
604 }
605 if let Some(ref val) = self.val_iso {
606 start.push_attribute(("valIso", val.as_str()));
607 }
608 if let Some(ref val) = self.max_val {
609 {
610 let s = val.to_string();
611 start.push_attribute(("maxVal", s.as_str()));
612 }
613 }
614 if let Some(ref val) = self.max_val_iso {
615 start.push_attribute(("maxValIso", val.as_str()));
616 }
617 #[cfg(feature = "extra-attrs")]
618 for (key, value) in &self.extra_attrs {
619 start.push_attribute((key.as_str(), value.as_str()));
620 }
621 start
622 }
623
624 fn is_empty_element(&self) -> bool {
625 true
626 }
627}
628
629impl ToXml for SortState {
630 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
631 #[allow(unused_mut)]
632 let mut start = start;
633 if let Some(ref val) = self.column_sort {
634 start.push_attribute(("columnSort", if *val { "1" } else { "0" }));
635 }
636 if let Some(ref val) = self.case_sensitive {
637 start.push_attribute(("caseSensitive", if *val { "1" } else { "0" }));
638 }
639 if let Some(ref val) = self.sort_method {
640 {
641 let s = val.to_string();
642 start.push_attribute(("sortMethod", s.as_str()));
643 }
644 }
645 {
646 let val = &self.reference;
647 start.push_attribute(("ref", val.as_str()));
648 }
649 #[cfg(feature = "extra-attrs")]
650 for (key, value) in &self.extra_attrs {
651 start.push_attribute((key.as_str(), value.as_str()));
652 }
653 start
654 }
655
656 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
657 #[cfg(feature = "extra-children")]
658 let mut extra_iter = self.extra_children.iter().peekable();
659 #[cfg(feature = "extra-children")]
660 let mut emit_idx: usize = 0;
661 for item in &self.sort_condition {
662 #[cfg(feature = "extra-children")]
663 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
664 extra_iter
665 .next()
666 .unwrap()
667 .node
668 .write_to(writer)
669 .map_err(SerializeError::from)?;
670 }
671 item.write_element("sortCondition", writer)?;
672 #[cfg(feature = "extra-children")]
673 {
674 emit_idx += 1;
675 }
676 }
677 #[cfg(feature = "extra-children")]
678 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
679 extra_iter
680 .next()
681 .unwrap()
682 .node
683 .write_to(writer)
684 .map_err(SerializeError::from)?;
685 }
686 if let Some(ref val) = self.extension_list {
687 val.write_element("extLst", writer)?;
688 }
689 #[cfg(feature = "extra-children")]
690 {
691 emit_idx += 1;
692 }
693 #[cfg(feature = "extra-children")]
694 for extra in extra_iter {
695 extra.node.write_to(writer).map_err(SerializeError::from)?;
696 }
697 Ok(())
698 }
699
700 fn is_empty_element(&self) -> bool {
701 if !self.sort_condition.is_empty() {
702 return false;
703 }
704 if self.extension_list.is_some() {
705 return false;
706 }
707 #[cfg(feature = "extra-children")]
708 if !self.extra_children.is_empty() {
709 return false;
710 }
711 true
712 }
713}
714
715impl ToXml for SortCondition {
716 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
717 #[allow(unused_mut)]
718 let mut start = start;
719 if let Some(ref val) = self.descending {
720 start.push_attribute(("descending", if *val { "1" } else { "0" }));
721 }
722 if let Some(ref val) = self.sort_by {
723 {
724 let s = val.to_string();
725 start.push_attribute(("sortBy", s.as_str()));
726 }
727 }
728 {
729 let val = &self.reference;
730 start.push_attribute(("ref", val.as_str()));
731 }
732 if let Some(ref val) = self.custom_list {
733 start.push_attribute(("customList", val.as_str()));
734 }
735 if let Some(ref val) = self.dxf_id {
736 {
737 let s = val.to_string();
738 start.push_attribute(("dxfId", s.as_str()));
739 }
740 }
741 if let Some(ref val) = self.icon_set {
742 {
743 let s = val.to_string();
744 start.push_attribute(("iconSet", s.as_str()));
745 }
746 }
747 if let Some(ref val) = self.icon_id {
748 {
749 let s = val.to_string();
750 start.push_attribute(("iconId", 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 DateGroupItem {
766 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
767 #[allow(unused_mut)]
768 let mut start = start;
769 {
770 let val = &self.year;
771 {
772 let s = val.to_string();
773 start.push_attribute(("year", s.as_str()));
774 }
775 }
776 if let Some(ref val) = self.month {
777 {
778 let s = val.to_string();
779 start.push_attribute(("month", s.as_str()));
780 }
781 }
782 if let Some(ref val) = self.day {
783 {
784 let s = val.to_string();
785 start.push_attribute(("day", s.as_str()));
786 }
787 }
788 if let Some(ref val) = self.hour {
789 {
790 let s = val.to_string();
791 start.push_attribute(("hour", s.as_str()));
792 }
793 }
794 if let Some(ref val) = self.minute {
795 {
796 let s = val.to_string();
797 start.push_attribute(("minute", s.as_str()));
798 }
799 }
800 if let Some(ref val) = self.second {
801 {
802 let s = val.to_string();
803 start.push_attribute(("second", s.as_str()));
804 }
805 }
806 {
807 let val = &self.date_time_grouping;
808 {
809 let s = val.to_string();
810 start.push_attribute(("dateTimeGrouping", s.as_str()));
811 }
812 }
813 #[cfg(feature = "extra-attrs")]
814 for (key, value) in &self.extra_attrs {
815 start.push_attribute((key.as_str(), value.as_str()));
816 }
817 start
818 }
819
820 fn is_empty_element(&self) -> bool {
821 true
822 }
823}
824
825impl ToXml for CTXStringElement {
826 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
827 #[allow(unused_mut)]
828 let mut start = start;
829 {
830 let val = &self.value;
831 start.push_attribute(("v", val.as_str()));
832 }
833 #[cfg(feature = "extra-attrs")]
834 for (key, value) in &self.extra_attrs {
835 start.push_attribute((key.as_str(), value.as_str()));
836 }
837 start
838 }
839
840 fn is_empty_element(&self) -> bool {
841 true
842 }
843}
844
845impl ToXml for Extension {
846 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
847 #[allow(unused_mut)]
848 let mut start = start;
849 if let Some(ref val) = self.uri {
850 start.push_attribute(("uri", val.as_str()));
851 }
852 #[cfg(feature = "extra-attrs")]
853 for (key, value) in &self.extra_attrs {
854 start.push_attribute((key.as_str(), value.as_str()));
855 }
856 start
857 }
858
859 fn is_empty_element(&self) -> bool {
860 true
861 }
862}
863
864impl ToXml for ObjectAnchor {
865 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
866 #[allow(unused_mut)]
867 let mut start = start;
868 if let Some(ref val) = self.move_with_cells {
869 start.push_attribute(("moveWithCells", if *val { "1" } else { "0" }));
870 }
871 if let Some(ref val) = self.size_with_cells {
872 start.push_attribute(("sizeWithCells", if *val { "1" } else { "0" }));
873 }
874 #[cfg(feature = "extra-attrs")]
875 for (key, value) in &self.extra_attrs {
876 start.push_attribute((key.as_str(), value.as_str()));
877 }
878 start
879 }
880
881 fn is_empty_element(&self) -> bool {
882 true
883 }
884}
885
886impl ToXml for EGExtensionList {
887 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
888 #[cfg(feature = "extra-children")]
889 let mut extra_iter = self.extra_children.iter().peekable();
890 #[cfg(feature = "extra-children")]
891 let mut emit_idx: usize = 0;
892 for item in &self.ext {
893 #[cfg(feature = "extra-children")]
894 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
895 extra_iter
896 .next()
897 .unwrap()
898 .node
899 .write_to(writer)
900 .map_err(SerializeError::from)?;
901 }
902 item.write_element("ext", writer)?;
903 #[cfg(feature = "extra-children")]
904 {
905 emit_idx += 1;
906 }
907 }
908 #[cfg(feature = "extra-children")]
909 for extra in extra_iter {
910 extra.node.write_to(writer).map_err(SerializeError::from)?;
911 }
912 Ok(())
913 }
914
915 fn is_empty_element(&self) -> bool {
916 if !self.ext.is_empty() {
917 return false;
918 }
919 #[cfg(feature = "extra-children")]
920 if !self.extra_children.is_empty() {
921 return false;
922 }
923 true
924 }
925}
926
927impl ToXml for ExtensionList {
928 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
929 #[cfg(feature = "extra-children")]
930 let mut extra_iter = self.extra_children.iter().peekable();
931 #[cfg(feature = "extra-children")]
932 let mut emit_idx: usize = 0;
933 for item in &self.ext {
934 #[cfg(feature = "extra-children")]
935 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
936 extra_iter
937 .next()
938 .unwrap()
939 .node
940 .write_to(writer)
941 .map_err(SerializeError::from)?;
942 }
943 item.write_element("ext", writer)?;
944 #[cfg(feature = "extra-children")]
945 {
946 emit_idx += 1;
947 }
948 }
949 #[cfg(feature = "extra-children")]
950 for extra in extra_iter {
951 extra.node.write_to(writer).map_err(SerializeError::from)?;
952 }
953 Ok(())
954 }
955
956 fn is_empty_element(&self) -> bool {
957 if !self.ext.is_empty() {
958 return false;
959 }
960 #[cfg(feature = "extra-children")]
961 if !self.extra_children.is_empty() {
962 return false;
963 }
964 true
965 }
966}
967
968impl ToXml for CalcChain {
969 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
970 #[cfg(feature = "extra-children")]
971 let mut extra_iter = self.extra_children.iter().peekable();
972 #[cfg(feature = "extra-children")]
973 let mut emit_idx: usize = 0;
974 #[cfg(feature = "sml-formulas")]
975 for item in &self.cells {
976 #[cfg(feature = "extra-children")]
977 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
978 extra_iter
979 .next()
980 .unwrap()
981 .node
982 .write_to(writer)
983 .map_err(SerializeError::from)?;
984 }
985 item.write_element("c", writer)?;
986 #[cfg(feature = "extra-children")]
987 {
988 emit_idx += 1;
989 }
990 }
991 #[cfg(feature = "extra-children")]
992 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
993 extra_iter
994 .next()
995 .unwrap()
996 .node
997 .write_to(writer)
998 .map_err(SerializeError::from)?;
999 }
1000 #[cfg(feature = "sml-extensions")]
1001 if let Some(ref val) = self.extension_list {
1002 val.write_element("extLst", writer)?;
1003 }
1004 #[cfg(feature = "extra-children")]
1005 {
1006 emit_idx += 1;
1007 }
1008 #[cfg(feature = "extra-children")]
1009 for extra in extra_iter {
1010 extra.node.write_to(writer).map_err(SerializeError::from)?;
1011 }
1012 Ok(())
1013 }
1014
1015 fn is_empty_element(&self) -> bool {
1016 #[cfg(feature = "sml-formulas")]
1017 if !self.cells.is_empty() {
1018 return false;
1019 }
1020 #[cfg(feature = "sml-extensions")]
1021 if self.extension_list.is_some() {
1022 return false;
1023 }
1024 #[cfg(feature = "extra-children")]
1025 if !self.extra_children.is_empty() {
1026 return false;
1027 }
1028 true
1029 }
1030}
1031
1032impl ToXml for CalcCell {
1033 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1034 #[allow(unused_mut)]
1035 let mut start = start;
1036 {
1037 let val = &self._any;
1038 start.push_attribute(("_any", val.as_str()));
1039 }
1040 #[cfg(feature = "sml-formulas")]
1041 if let Some(ref val) = self.i {
1042 {
1043 let s = val.to_string();
1044 start.push_attribute(("i", s.as_str()));
1045 }
1046 }
1047 #[cfg(feature = "sml-formulas")]
1048 if let Some(ref val) = self.style_index {
1049 start.push_attribute(("s", if *val { "1" } else { "0" }));
1050 }
1051 #[cfg(feature = "sml-formulas")]
1052 if let Some(ref val) = self.l {
1053 start.push_attribute(("l", if *val { "1" } else { "0" }));
1054 }
1055 #[cfg(feature = "sml-formulas")]
1056 if let Some(ref val) = self.cell_type {
1057 start.push_attribute(("t", if *val { "1" } else { "0" }));
1058 }
1059 #[cfg(feature = "sml-formulas")]
1060 if let Some(ref val) = self.a {
1061 start.push_attribute(("a", if *val { "1" } else { "0" }));
1062 }
1063 #[cfg(feature = "extra-attrs")]
1064 for (key, value) in &self.extra_attrs {
1065 start.push_attribute((key.as_str(), value.as_str()));
1066 }
1067 start
1068 }
1069
1070 fn is_empty_element(&self) -> bool {
1071 true
1072 }
1073}
1074
1075impl ToXml for Comments {
1076 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
1077 #[cfg(feature = "extra-children")]
1078 let mut extra_iter = self.extra_children.iter().peekable();
1079 #[cfg(feature = "extra-children")]
1080 let mut emit_idx: usize = 0;
1081 #[cfg(feature = "extra-children")]
1082 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1083 extra_iter
1084 .next()
1085 .unwrap()
1086 .node
1087 .write_to(writer)
1088 .map_err(SerializeError::from)?;
1089 }
1090 {
1091 let val = &self.authors;
1092 val.write_element("authors", writer)?;
1093 }
1094 #[cfg(feature = "extra-children")]
1095 {
1096 emit_idx += 1;
1097 }
1098 #[cfg(feature = "extra-children")]
1099 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1100 extra_iter
1101 .next()
1102 .unwrap()
1103 .node
1104 .write_to(writer)
1105 .map_err(SerializeError::from)?;
1106 }
1107 {
1108 let val = &self.comment_list;
1109 val.write_element("commentList", writer)?;
1110 }
1111 #[cfg(feature = "extra-children")]
1112 {
1113 emit_idx += 1;
1114 }
1115 #[cfg(feature = "extra-children")]
1116 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1117 extra_iter
1118 .next()
1119 .unwrap()
1120 .node
1121 .write_to(writer)
1122 .map_err(SerializeError::from)?;
1123 }
1124 if let Some(ref val) = self.extension_list {
1125 val.write_element("extLst", writer)?;
1126 }
1127 #[cfg(feature = "extra-children")]
1128 {
1129 emit_idx += 1;
1130 }
1131 #[cfg(feature = "extra-children")]
1132 for extra in extra_iter {
1133 extra.node.write_to(writer).map_err(SerializeError::from)?;
1134 }
1135 Ok(())
1136 }
1137
1138 fn is_empty_element(&self) -> bool {
1139 false
1140 }
1141}
1142
1143impl ToXml for Authors {
1144 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
1145 #[cfg(feature = "extra-children")]
1146 let mut extra_iter = self.extra_children.iter().peekable();
1147 #[cfg(feature = "extra-children")]
1148 let mut emit_idx: usize = 0;
1149 for item in &self.author {
1150 #[cfg(feature = "extra-children")]
1151 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1152 extra_iter
1153 .next()
1154 .unwrap()
1155 .node
1156 .write_to(writer)
1157 .map_err(SerializeError::from)?;
1158 }
1159 {
1160 let start = BytesStart::new("author");
1161 writer.write_event(Event::Start(start))?;
1162 writer.write_event(Event::Text(BytesText::new(item.as_str())))?;
1163 writer.write_event(Event::End(BytesEnd::new("author")))?;
1164 }
1165 #[cfg(feature = "extra-children")]
1166 {
1167 emit_idx += 1;
1168 }
1169 }
1170 #[cfg(feature = "extra-children")]
1171 for extra in extra_iter {
1172 extra.node.write_to(writer).map_err(SerializeError::from)?;
1173 }
1174 Ok(())
1175 }
1176
1177 fn is_empty_element(&self) -> bool {
1178 if !self.author.is_empty() {
1179 return false;
1180 }
1181 #[cfg(feature = "extra-children")]
1182 if !self.extra_children.is_empty() {
1183 return false;
1184 }
1185 true
1186 }
1187}
1188
1189impl ToXml for CommentList {
1190 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
1191 #[cfg(feature = "extra-children")]
1192 let mut extra_iter = self.extra_children.iter().peekable();
1193 #[cfg(feature = "extra-children")]
1194 let mut emit_idx: usize = 0;
1195 for item in &self.comment {
1196 #[cfg(feature = "extra-children")]
1197 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1198 extra_iter
1199 .next()
1200 .unwrap()
1201 .node
1202 .write_to(writer)
1203 .map_err(SerializeError::from)?;
1204 }
1205 item.write_element("comment", writer)?;
1206 #[cfg(feature = "extra-children")]
1207 {
1208 emit_idx += 1;
1209 }
1210 }
1211 #[cfg(feature = "extra-children")]
1212 for extra in extra_iter {
1213 extra.node.write_to(writer).map_err(SerializeError::from)?;
1214 }
1215 Ok(())
1216 }
1217
1218 fn is_empty_element(&self) -> bool {
1219 if !self.comment.is_empty() {
1220 return false;
1221 }
1222 #[cfg(feature = "extra-children")]
1223 if !self.extra_children.is_empty() {
1224 return false;
1225 }
1226 true
1227 }
1228}
1229
1230impl ToXml for Comment {
1231 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1232 #[allow(unused_mut)]
1233 let mut start = start;
1234 #[cfg(feature = "sml-comments")]
1235 {
1236 let val = &self.reference;
1237 start.push_attribute(("ref", val.as_str()));
1238 }
1239 #[cfg(feature = "sml-comments")]
1240 {
1241 let val = &self.author_id;
1242 {
1243 let s = val.to_string();
1244 start.push_attribute(("authorId", s.as_str()));
1245 }
1246 }
1247 #[cfg(feature = "sml-comments")]
1248 if let Some(ref val) = self.guid {
1249 start.push_attribute(("guid", val.as_str()));
1250 }
1251 #[cfg(feature = "sml-comments")]
1252 if let Some(ref val) = self.shape_id {
1253 {
1254 let s = val.to_string();
1255 start.push_attribute(("shapeId", 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 write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
1266 #[cfg(feature = "extra-children")]
1267 let mut extra_iter = self.extra_children.iter().peekable();
1268 #[cfg(feature = "extra-children")]
1269 let mut emit_idx: usize = 0;
1270 #[cfg(feature = "extra-children")]
1271 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1272 extra_iter
1273 .next()
1274 .unwrap()
1275 .node
1276 .write_to(writer)
1277 .map_err(SerializeError::from)?;
1278 }
1279 #[cfg(feature = "sml-comments")]
1280 {
1281 let val = &self.text;
1282 val.write_element("text", writer)?;
1283 }
1284 #[cfg(feature = "extra-children")]
1285 {
1286 emit_idx += 1;
1287 }
1288 #[cfg(feature = "extra-children")]
1289 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1290 extra_iter
1291 .next()
1292 .unwrap()
1293 .node
1294 .write_to(writer)
1295 .map_err(SerializeError::from)?;
1296 }
1297 if let Some(ref val) = self.comment_pr {
1298 val.write_element("commentPr", writer)?;
1299 }
1300 #[cfg(feature = "extra-children")]
1301 {
1302 emit_idx += 1;
1303 }
1304 #[cfg(feature = "extra-children")]
1305 for extra in extra_iter {
1306 extra.node.write_to(writer).map_err(SerializeError::from)?;
1307 }
1308 Ok(())
1309 }
1310
1311 fn is_empty_element(&self) -> bool {
1312 #[cfg(feature = "sml-comments")]
1313 return false;
1314 if self.comment_pr.is_some() {
1315 return false;
1316 }
1317 #[cfg(feature = "extra-children")]
1318 if !self.extra_children.is_empty() {
1319 return false;
1320 }
1321 true
1322 }
1323}
1324
1325impl ToXml for CTCommentPr {
1326 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1327 #[allow(unused_mut)]
1328 let mut start = start;
1329 if let Some(ref val) = self.locked {
1330 start.push_attribute(("locked", if *val { "1" } else { "0" }));
1331 }
1332 if let Some(ref val) = self.default_size {
1333 start.push_attribute(("defaultSize", if *val { "1" } else { "0" }));
1334 }
1335 if let Some(ref val) = self.print {
1336 start.push_attribute(("print", if *val { "1" } else { "0" }));
1337 }
1338 if let Some(ref val) = self.disabled {
1339 start.push_attribute(("disabled", if *val { "1" } else { "0" }));
1340 }
1341 if let Some(ref val) = self.auto_fill {
1342 start.push_attribute(("autoFill", if *val { "1" } else { "0" }));
1343 }
1344 if let Some(ref val) = self.auto_line {
1345 start.push_attribute(("autoLine", if *val { "1" } else { "0" }));
1346 }
1347 if let Some(ref val) = self.alt_text {
1348 start.push_attribute(("altText", val.as_str()));
1349 }
1350 if let Some(ref val) = self.text_h_align {
1351 {
1352 let s = val.to_string();
1353 start.push_attribute(("textHAlign", s.as_str()));
1354 }
1355 }
1356 if let Some(ref val) = self.text_v_align {
1357 {
1358 let s = val.to_string();
1359 start.push_attribute(("textVAlign", s.as_str()));
1360 }
1361 }
1362 if let Some(ref val) = self.lock_text {
1363 start.push_attribute(("lockText", if *val { "1" } else { "0" }));
1364 }
1365 if let Some(ref val) = self.just_last_x {
1366 start.push_attribute(("justLastX", if *val { "1" } else { "0" }));
1367 }
1368 if let Some(ref val) = self.auto_scale {
1369 start.push_attribute(("autoScale", if *val { "1" } else { "0" }));
1370 }
1371 #[cfg(feature = "extra-attrs")]
1372 for (key, value) in &self.extra_attrs {
1373 start.push_attribute((key.as_str(), value.as_str()));
1374 }
1375 start
1376 }
1377
1378 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
1379 #[cfg(feature = "extra-children")]
1380 let mut extra_iter = self.extra_children.iter().peekable();
1381 #[cfg(feature = "extra-children")]
1382 let mut emit_idx: usize = 0;
1383 #[cfg(feature = "extra-children")]
1384 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1385 extra_iter
1386 .next()
1387 .unwrap()
1388 .node
1389 .write_to(writer)
1390 .map_err(SerializeError::from)?;
1391 }
1392 {
1393 let val = &self.anchor;
1394 val.write_element("anchor", writer)?;
1395 }
1396 #[cfg(feature = "extra-children")]
1397 {
1398 emit_idx += 1;
1399 }
1400 #[cfg(feature = "extra-children")]
1401 for extra in extra_iter {
1402 extra.node.write_to(writer).map_err(SerializeError::from)?;
1403 }
1404 Ok(())
1405 }
1406
1407 fn is_empty_element(&self) -> bool {
1408 false
1409 }
1410}
1411
1412impl ToXml for MapInfo {
1413 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1414 #[allow(unused_mut)]
1415 let mut start = start;
1416 {
1417 let val = &self.selection_namespaces;
1418 start.push_attribute(("SelectionNamespaces", val.as_str()));
1419 }
1420 #[cfg(feature = "extra-attrs")]
1421 for (key, value) in &self.extra_attrs {
1422 start.push_attribute((key.as_str(), value.as_str()));
1423 }
1424 start
1425 }
1426
1427 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
1428 #[cfg(feature = "extra-children")]
1429 let mut extra_iter = self.extra_children.iter().peekable();
1430 #[cfg(feature = "extra-children")]
1431 let mut emit_idx: usize = 0;
1432 for item in &self.schema {
1433 #[cfg(feature = "extra-children")]
1434 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1435 extra_iter
1436 .next()
1437 .unwrap()
1438 .node
1439 .write_to(writer)
1440 .map_err(SerializeError::from)?;
1441 }
1442 item.write_element("Schema", writer)?;
1443 #[cfg(feature = "extra-children")]
1444 {
1445 emit_idx += 1;
1446 }
1447 }
1448 for item in &self.map {
1449 #[cfg(feature = "extra-children")]
1450 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1451 extra_iter
1452 .next()
1453 .unwrap()
1454 .node
1455 .write_to(writer)
1456 .map_err(SerializeError::from)?;
1457 }
1458 item.write_element("Map", writer)?;
1459 #[cfg(feature = "extra-children")]
1460 {
1461 emit_idx += 1;
1462 }
1463 }
1464 #[cfg(feature = "extra-children")]
1465 for extra in extra_iter {
1466 extra.node.write_to(writer).map_err(SerializeError::from)?;
1467 }
1468 Ok(())
1469 }
1470
1471 fn is_empty_element(&self) -> bool {
1472 if !self.schema.is_empty() {
1473 return false;
1474 }
1475 if !self.map.is_empty() {
1476 return false;
1477 }
1478 #[cfg(feature = "extra-children")]
1479 if !self.extra_children.is_empty() {
1480 return false;
1481 }
1482 true
1483 }
1484}
1485
1486impl ToXml for XmlSchema {
1487 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
1488 #[cfg(feature = "extra-children")]
1489 for child in &self.extra_children {
1490 child.node.write_to(writer).map_err(SerializeError::from)?;
1491 }
1492 Ok(())
1493 }
1494
1495 fn is_empty_element(&self) -> bool {
1496 #[cfg(feature = "extra-children")]
1497 if !self.extra_children.is_empty() {
1498 return false;
1499 }
1500 true
1501 }
1502}
1503
1504impl ToXml for XmlMap {
1505 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1506 #[allow(unused_mut)]
1507 let mut start = start;
1508 {
1509 let val = &self.i_d;
1510 {
1511 let s = val.to_string();
1512 start.push_attribute(("ID", s.as_str()));
1513 }
1514 }
1515 {
1516 let val = &self.name;
1517 start.push_attribute(("Name", val.as_str()));
1518 }
1519 {
1520 let val = &self.root_element;
1521 start.push_attribute(("RootElement", val.as_str()));
1522 }
1523 {
1524 let val = &self.schema_i_d;
1525 start.push_attribute(("SchemaID", val.as_str()));
1526 }
1527 {
1528 let val = &self.show_import_export_validation_errors;
1529 start.push_attribute((
1530 "ShowImportExportValidationErrors",
1531 if *val { "1" } else { "0" },
1532 ));
1533 }
1534 {
1535 let val = &self.auto_fit;
1536 start.push_attribute(("AutoFit", if *val { "1" } else { "0" }));
1537 }
1538 {
1539 let val = &self.append;
1540 start.push_attribute(("Append", if *val { "1" } else { "0" }));
1541 }
1542 {
1543 let val = &self.preserve_sort_a_f_layout;
1544 start.push_attribute(("PreserveSortAFLayout", if *val { "1" } else { "0" }));
1545 }
1546 {
1547 let val = &self.preserve_format;
1548 start.push_attribute(("PreserveFormat", if *val { "1" } else { "0" }));
1549 }
1550 #[cfg(feature = "extra-attrs")]
1551 for (key, value) in &self.extra_attrs {
1552 start.push_attribute((key.as_str(), value.as_str()));
1553 }
1554 start
1555 }
1556
1557 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
1558 #[cfg(feature = "extra-children")]
1559 let mut extra_iter = self.extra_children.iter().peekable();
1560 #[cfg(feature = "extra-children")]
1561 let mut emit_idx: usize = 0;
1562 #[cfg(feature = "extra-children")]
1563 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1564 extra_iter
1565 .next()
1566 .unwrap()
1567 .node
1568 .write_to(writer)
1569 .map_err(SerializeError::from)?;
1570 }
1571 if let Some(ref val) = self.data_binding {
1572 val.write_element("DataBinding", writer)?;
1573 }
1574 #[cfg(feature = "extra-children")]
1575 {
1576 emit_idx += 1;
1577 }
1578 #[cfg(feature = "extra-children")]
1579 for extra in extra_iter {
1580 extra.node.write_to(writer).map_err(SerializeError::from)?;
1581 }
1582 Ok(())
1583 }
1584
1585 fn is_empty_element(&self) -> bool {
1586 if self.data_binding.is_some() {
1587 return false;
1588 }
1589 #[cfg(feature = "extra-children")]
1590 if !self.extra_children.is_empty() {
1591 return false;
1592 }
1593 true
1594 }
1595}
1596
1597impl ToXml for DataBinding {
1598 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1599 #[allow(unused_mut)]
1600 let mut start = start;
1601 if let Some(ref val) = self.data_binding_name {
1602 start.push_attribute(("DataBindingName", val.as_str()));
1603 }
1604 if let Some(ref val) = self.file_binding {
1605 start.push_attribute(("FileBinding", if *val { "1" } else { "0" }));
1606 }
1607 if let Some(ref val) = self.connection_i_d {
1608 {
1609 let s = val.to_string();
1610 start.push_attribute(("ConnectionID", s.as_str()));
1611 }
1612 }
1613 if let Some(ref val) = self.file_binding_name {
1614 start.push_attribute(("FileBindingName", val.as_str()));
1615 }
1616 {
1617 let val = &self.data_binding_load_mode;
1618 {
1619 let s = val.to_string();
1620 start.push_attribute(("DataBindingLoadMode", s.as_str()));
1621 }
1622 }
1623 #[cfg(feature = "extra-attrs")]
1624 for (key, value) in &self.extra_attrs {
1625 start.push_attribute((key.as_str(), value.as_str()));
1626 }
1627 start
1628 }
1629
1630 fn is_empty_element(&self) -> bool {
1631 true
1632 }
1633}
1634
1635impl ToXml for Connections {
1636 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
1637 #[cfg(feature = "extra-children")]
1638 let mut extra_iter = self.extra_children.iter().peekable();
1639 #[cfg(feature = "extra-children")]
1640 let mut emit_idx: usize = 0;
1641 for item in &self.connection {
1642 #[cfg(feature = "extra-children")]
1643 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1644 extra_iter
1645 .next()
1646 .unwrap()
1647 .node
1648 .write_to(writer)
1649 .map_err(SerializeError::from)?;
1650 }
1651 item.write_element("connection", writer)?;
1652 #[cfg(feature = "extra-children")]
1653 {
1654 emit_idx += 1;
1655 }
1656 }
1657 #[cfg(feature = "extra-children")]
1658 for extra in extra_iter {
1659 extra.node.write_to(writer).map_err(SerializeError::from)?;
1660 }
1661 Ok(())
1662 }
1663
1664 fn is_empty_element(&self) -> bool {
1665 if !self.connection.is_empty() {
1666 return false;
1667 }
1668 #[cfg(feature = "extra-children")]
1669 if !self.extra_children.is_empty() {
1670 return false;
1671 }
1672 true
1673 }
1674}
1675
1676impl ToXml for Connection {
1677 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1678 #[allow(unused_mut)]
1679 let mut start = start;
1680 {
1681 let val = &self.id;
1682 {
1683 let s = val.to_string();
1684 start.push_attribute(("id", s.as_str()));
1685 }
1686 }
1687 if let Some(ref val) = self.source_file {
1688 start.push_attribute(("sourceFile", val.as_str()));
1689 }
1690 if let Some(ref val) = self.odc_file {
1691 start.push_attribute(("odcFile", val.as_str()));
1692 }
1693 if let Some(ref val) = self.keep_alive {
1694 start.push_attribute(("keepAlive", if *val { "1" } else { "0" }));
1695 }
1696 if let Some(ref val) = self.interval {
1697 {
1698 let s = val.to_string();
1699 start.push_attribute(("interval", s.as_str()));
1700 }
1701 }
1702 if let Some(ref val) = self.name {
1703 start.push_attribute(("name", val.as_str()));
1704 }
1705 if let Some(ref val) = self.description {
1706 start.push_attribute(("description", val.as_str()));
1707 }
1708 if let Some(ref val) = self.r#type {
1709 {
1710 let s = val.to_string();
1711 start.push_attribute(("type", s.as_str()));
1712 }
1713 }
1714 if let Some(ref val) = self.reconnection_method {
1715 {
1716 let s = val.to_string();
1717 start.push_attribute(("reconnectionMethod", s.as_str()));
1718 }
1719 }
1720 {
1721 let val = &self.refreshed_version;
1722 {
1723 let s = val.to_string();
1724 start.push_attribute(("refreshedVersion", s.as_str()));
1725 }
1726 }
1727 if let Some(ref val) = self.min_refreshable_version {
1728 {
1729 let s = val.to_string();
1730 start.push_attribute(("minRefreshableVersion", s.as_str()));
1731 }
1732 }
1733 if let Some(ref val) = self.save_password {
1734 start.push_attribute(("savePassword", if *val { "1" } else { "0" }));
1735 }
1736 if let Some(ref val) = self.new {
1737 start.push_attribute(("new", if *val { "1" } else { "0" }));
1738 }
1739 if let Some(ref val) = self.deleted {
1740 start.push_attribute(("deleted", if *val { "1" } else { "0" }));
1741 }
1742 if let Some(ref val) = self.only_use_connection_file {
1743 start.push_attribute(("onlyUseConnectionFile", if *val { "1" } else { "0" }));
1744 }
1745 if let Some(ref val) = self.background {
1746 start.push_attribute(("background", if *val { "1" } else { "0" }));
1747 }
1748 if let Some(ref val) = self.refresh_on_load {
1749 start.push_attribute(("refreshOnLoad", if *val { "1" } else { "0" }));
1750 }
1751 if let Some(ref val) = self.save_data {
1752 start.push_attribute(("saveData", if *val { "1" } else { "0" }));
1753 }
1754 if let Some(ref val) = self.credentials {
1755 {
1756 let s = val.to_string();
1757 start.push_attribute(("credentials", s.as_str()));
1758 }
1759 }
1760 if let Some(ref val) = self.single_sign_on_id {
1761 start.push_attribute(("singleSignOnId", val.as_str()));
1762 }
1763 #[cfg(feature = "extra-attrs")]
1764 for (key, value) in &self.extra_attrs {
1765 start.push_attribute((key.as_str(), value.as_str()));
1766 }
1767 start
1768 }
1769
1770 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
1771 #[cfg(feature = "extra-children")]
1772 let mut extra_iter = self.extra_children.iter().peekable();
1773 #[cfg(feature = "extra-children")]
1774 let mut emit_idx: usize = 0;
1775 #[cfg(feature = "extra-children")]
1776 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1777 extra_iter
1778 .next()
1779 .unwrap()
1780 .node
1781 .write_to(writer)
1782 .map_err(SerializeError::from)?;
1783 }
1784 if let Some(ref val) = self.db_pr {
1785 val.write_element("dbPr", writer)?;
1786 }
1787 #[cfg(feature = "extra-children")]
1788 {
1789 emit_idx += 1;
1790 }
1791 #[cfg(feature = "extra-children")]
1792 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1793 extra_iter
1794 .next()
1795 .unwrap()
1796 .node
1797 .write_to(writer)
1798 .map_err(SerializeError::from)?;
1799 }
1800 if let Some(ref val) = self.olap_pr {
1801 val.write_element("olapPr", writer)?;
1802 }
1803 #[cfg(feature = "extra-children")]
1804 {
1805 emit_idx += 1;
1806 }
1807 #[cfg(feature = "extra-children")]
1808 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1809 extra_iter
1810 .next()
1811 .unwrap()
1812 .node
1813 .write_to(writer)
1814 .map_err(SerializeError::from)?;
1815 }
1816 if let Some(ref val) = self.web_pr {
1817 val.write_element("webPr", writer)?;
1818 }
1819 #[cfg(feature = "extra-children")]
1820 {
1821 emit_idx += 1;
1822 }
1823 #[cfg(feature = "extra-children")]
1824 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1825 extra_iter
1826 .next()
1827 .unwrap()
1828 .node
1829 .write_to(writer)
1830 .map_err(SerializeError::from)?;
1831 }
1832 if let Some(ref val) = self.text_pr {
1833 val.write_element("textPr", writer)?;
1834 }
1835 #[cfg(feature = "extra-children")]
1836 {
1837 emit_idx += 1;
1838 }
1839 #[cfg(feature = "extra-children")]
1840 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1841 extra_iter
1842 .next()
1843 .unwrap()
1844 .node
1845 .write_to(writer)
1846 .map_err(SerializeError::from)?;
1847 }
1848 if let Some(ref val) = self.parameters {
1849 val.write_element("parameters", writer)?;
1850 }
1851 #[cfg(feature = "extra-children")]
1852 {
1853 emit_idx += 1;
1854 }
1855 #[cfg(feature = "extra-children")]
1856 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
1857 extra_iter
1858 .next()
1859 .unwrap()
1860 .node
1861 .write_to(writer)
1862 .map_err(SerializeError::from)?;
1863 }
1864 if let Some(ref val) = self.extension_list {
1865 val.write_element("extLst", writer)?;
1866 }
1867 #[cfg(feature = "extra-children")]
1868 {
1869 emit_idx += 1;
1870 }
1871 #[cfg(feature = "extra-children")]
1872 for extra in extra_iter {
1873 extra.node.write_to(writer).map_err(SerializeError::from)?;
1874 }
1875 Ok(())
1876 }
1877
1878 fn is_empty_element(&self) -> bool {
1879 if self.db_pr.is_some() {
1880 return false;
1881 }
1882 if self.olap_pr.is_some() {
1883 return false;
1884 }
1885 if self.web_pr.is_some() {
1886 return false;
1887 }
1888 if self.text_pr.is_some() {
1889 return false;
1890 }
1891 if self.parameters.is_some() {
1892 return false;
1893 }
1894 if self.extension_list.is_some() {
1895 return false;
1896 }
1897 #[cfg(feature = "extra-children")]
1898 if !self.extra_children.is_empty() {
1899 return false;
1900 }
1901 true
1902 }
1903}
1904
1905impl ToXml for DatabaseProperties {
1906 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1907 #[allow(unused_mut)]
1908 let mut start = start;
1909 {
1910 let val = &self.connection;
1911 start.push_attribute(("connection", val.as_str()));
1912 }
1913 if let Some(ref val) = self.command {
1914 start.push_attribute(("command", val.as_str()));
1915 }
1916 if let Some(ref val) = self.server_command {
1917 start.push_attribute(("serverCommand", val.as_str()));
1918 }
1919 if let Some(ref val) = self.command_type {
1920 {
1921 let s = val.to_string();
1922 start.push_attribute(("commandType", s.as_str()));
1923 }
1924 }
1925 #[cfg(feature = "extra-attrs")]
1926 for (key, value) in &self.extra_attrs {
1927 start.push_attribute((key.as_str(), value.as_str()));
1928 }
1929 start
1930 }
1931
1932 fn is_empty_element(&self) -> bool {
1933 true
1934 }
1935}
1936
1937impl ToXml for OlapProperties {
1938 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1939 #[allow(unused_mut)]
1940 let mut start = start;
1941 if let Some(ref val) = self.local {
1942 start.push_attribute(("local", if *val { "1" } else { "0" }));
1943 }
1944 if let Some(ref val) = self.local_connection {
1945 start.push_attribute(("localConnection", val.as_str()));
1946 }
1947 if let Some(ref val) = self.local_refresh {
1948 start.push_attribute(("localRefresh", if *val { "1" } else { "0" }));
1949 }
1950 if let Some(ref val) = self.send_locale {
1951 start.push_attribute(("sendLocale", if *val { "1" } else { "0" }));
1952 }
1953 if let Some(ref val) = self.row_drill_count {
1954 {
1955 let s = val.to_string();
1956 start.push_attribute(("rowDrillCount", s.as_str()));
1957 }
1958 }
1959 if let Some(ref val) = self.server_fill {
1960 start.push_attribute(("serverFill", if *val { "1" } else { "0" }));
1961 }
1962 if let Some(ref val) = self.server_number_format {
1963 start.push_attribute(("serverNumberFormat", if *val { "1" } else { "0" }));
1964 }
1965 if let Some(ref val) = self.server_font {
1966 start.push_attribute(("serverFont", if *val { "1" } else { "0" }));
1967 }
1968 if let Some(ref val) = self.server_font_color {
1969 start.push_attribute(("serverFontColor", if *val { "1" } else { "0" }));
1970 }
1971 #[cfg(feature = "extra-attrs")]
1972 for (key, value) in &self.extra_attrs {
1973 start.push_attribute((key.as_str(), value.as_str()));
1974 }
1975 start
1976 }
1977
1978 fn is_empty_element(&self) -> bool {
1979 true
1980 }
1981}
1982
1983impl ToXml for WebQueryProperties {
1984 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
1985 #[allow(unused_mut)]
1986 let mut start = start;
1987 if let Some(ref val) = self.xml {
1988 start.push_attribute(("xml", if *val { "1" } else { "0" }));
1989 }
1990 if let Some(ref val) = self.source_data {
1991 start.push_attribute(("sourceData", if *val { "1" } else { "0" }));
1992 }
1993 if let Some(ref val) = self.parse_pre {
1994 start.push_attribute(("parsePre", if *val { "1" } else { "0" }));
1995 }
1996 if let Some(ref val) = self.consecutive {
1997 start.push_attribute(("consecutive", if *val { "1" } else { "0" }));
1998 }
1999 if let Some(ref val) = self.first_row {
2000 start.push_attribute(("firstRow", if *val { "1" } else { "0" }));
2001 }
2002 if let Some(ref val) = self.xl97 {
2003 start.push_attribute(("xl97", if *val { "1" } else { "0" }));
2004 }
2005 if let Some(ref val) = self.text_dates {
2006 start.push_attribute(("textDates", if *val { "1" } else { "0" }));
2007 }
2008 if let Some(ref val) = self.xl2000 {
2009 start.push_attribute(("xl2000", if *val { "1" } else { "0" }));
2010 }
2011 if let Some(ref val) = self.url {
2012 start.push_attribute(("url", val.as_str()));
2013 }
2014 if let Some(ref val) = self.post {
2015 start.push_attribute(("post", val.as_str()));
2016 }
2017 if let Some(ref val) = self.html_tables {
2018 start.push_attribute(("htmlTables", if *val { "1" } else { "0" }));
2019 }
2020 if let Some(ref val) = self.html_format {
2021 {
2022 let s = val.to_string();
2023 start.push_attribute(("htmlFormat", s.as_str()));
2024 }
2025 }
2026 if let Some(ref val) = self.edit_page {
2027 start.push_attribute(("editPage", val.as_str()));
2028 }
2029 #[cfg(feature = "extra-attrs")]
2030 for (key, value) in &self.extra_attrs {
2031 start.push_attribute((key.as_str(), value.as_str()));
2032 }
2033 start
2034 }
2035
2036 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2037 #[cfg(feature = "extra-children")]
2038 let mut extra_iter = self.extra_children.iter().peekable();
2039 #[cfg(feature = "extra-children")]
2040 let mut emit_idx: usize = 0;
2041 #[cfg(feature = "extra-children")]
2042 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2043 extra_iter
2044 .next()
2045 .unwrap()
2046 .node
2047 .write_to(writer)
2048 .map_err(SerializeError::from)?;
2049 }
2050 if let Some(ref val) = self.tables {
2051 val.write_element("tables", writer)?;
2052 }
2053 #[cfg(feature = "extra-children")]
2054 {
2055 emit_idx += 1;
2056 }
2057 #[cfg(feature = "extra-children")]
2058 for extra in extra_iter {
2059 extra.node.write_to(writer).map_err(SerializeError::from)?;
2060 }
2061 Ok(())
2062 }
2063
2064 fn is_empty_element(&self) -> bool {
2065 if self.tables.is_some() {
2066 return false;
2067 }
2068 #[cfg(feature = "extra-children")]
2069 if !self.extra_children.is_empty() {
2070 return false;
2071 }
2072 true
2073 }
2074}
2075
2076impl ToXml for Parameters {
2077 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2078 #[allow(unused_mut)]
2079 let mut start = start;
2080 if let Some(ref val) = self.count {
2081 {
2082 let s = val.to_string();
2083 start.push_attribute(("count", s.as_str()));
2084 }
2085 }
2086 #[cfg(feature = "extra-attrs")]
2087 for (key, value) in &self.extra_attrs {
2088 start.push_attribute((key.as_str(), value.as_str()));
2089 }
2090 start
2091 }
2092
2093 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2094 #[cfg(feature = "extra-children")]
2095 let mut extra_iter = self.extra_children.iter().peekable();
2096 #[cfg(feature = "extra-children")]
2097 let mut emit_idx: usize = 0;
2098 for item in &self.parameter {
2099 #[cfg(feature = "extra-children")]
2100 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2101 extra_iter
2102 .next()
2103 .unwrap()
2104 .node
2105 .write_to(writer)
2106 .map_err(SerializeError::from)?;
2107 }
2108 item.write_element("parameter", writer)?;
2109 #[cfg(feature = "extra-children")]
2110 {
2111 emit_idx += 1;
2112 }
2113 }
2114 #[cfg(feature = "extra-children")]
2115 for extra in extra_iter {
2116 extra.node.write_to(writer).map_err(SerializeError::from)?;
2117 }
2118 Ok(())
2119 }
2120
2121 fn is_empty_element(&self) -> bool {
2122 if !self.parameter.is_empty() {
2123 return false;
2124 }
2125 #[cfg(feature = "extra-children")]
2126 if !self.extra_children.is_empty() {
2127 return false;
2128 }
2129 true
2130 }
2131}
2132
2133impl ToXml for Parameter {
2134 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2135 #[allow(unused_mut)]
2136 let mut start = start;
2137 if let Some(ref val) = self.name {
2138 start.push_attribute(("name", val.as_str()));
2139 }
2140 if let Some(ref val) = self.sql_type {
2141 {
2142 let s = val.to_string();
2143 start.push_attribute(("sqlType", s.as_str()));
2144 }
2145 }
2146 if let Some(ref val) = self.parameter_type {
2147 {
2148 let s = val.to_string();
2149 start.push_attribute(("parameterType", s.as_str()));
2150 }
2151 }
2152 if let Some(ref val) = self.refresh_on_change {
2153 start.push_attribute(("refreshOnChange", if *val { "1" } else { "0" }));
2154 }
2155 if let Some(ref val) = self.prompt {
2156 start.push_attribute(("prompt", val.as_str()));
2157 }
2158 if let Some(ref val) = self.boolean {
2159 start.push_attribute(("boolean", if *val { "1" } else { "0" }));
2160 }
2161 if let Some(ref val) = self.double {
2162 {
2163 let s = val.to_string();
2164 start.push_attribute(("double", s.as_str()));
2165 }
2166 }
2167 if let Some(ref val) = self.integer {
2168 {
2169 let s = val.to_string();
2170 start.push_attribute(("integer", s.as_str()));
2171 }
2172 }
2173 if let Some(ref val) = self.string {
2174 start.push_attribute(("string", val.as_str()));
2175 }
2176 if let Some(ref val) = self.cell {
2177 start.push_attribute(("cell", val.as_str()));
2178 }
2179 #[cfg(feature = "extra-attrs")]
2180 for (key, value) in &self.extra_attrs {
2181 start.push_attribute((key.as_str(), value.as_str()));
2182 }
2183 start
2184 }
2185
2186 fn is_empty_element(&self) -> bool {
2187 true
2188 }
2189}
2190
2191impl ToXml for DataTables {
2192 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2193 #[allow(unused_mut)]
2194 let mut start = start;
2195 if let Some(ref val) = self.count {
2196 {
2197 let s = val.to_string();
2198 start.push_attribute(("count", s.as_str()));
2199 }
2200 }
2201 #[cfg(feature = "extra-attrs")]
2202 for (key, value) in &self.extra_attrs {
2203 start.push_attribute((key.as_str(), value.as_str()));
2204 }
2205 start
2206 }
2207
2208 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2209 #[cfg(feature = "extra-children")]
2210 let mut extra_iter = self.extra_children.iter().peekable();
2211 #[cfg(feature = "extra-children")]
2212 let mut emit_idx: usize = 0;
2213 for item in &self.m {
2214 #[cfg(feature = "extra-children")]
2215 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2216 extra_iter
2217 .next()
2218 .unwrap()
2219 .node
2220 .write_to(writer)
2221 .map_err(SerializeError::from)?;
2222 }
2223 item.write_element("m", writer)?;
2224 #[cfg(feature = "extra-children")]
2225 {
2226 emit_idx += 1;
2227 }
2228 }
2229 for item in &self.style_index {
2230 #[cfg(feature = "extra-children")]
2231 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2232 extra_iter
2233 .next()
2234 .unwrap()
2235 .node
2236 .write_to(writer)
2237 .map_err(SerializeError::from)?;
2238 }
2239 item.write_element("s", writer)?;
2240 #[cfg(feature = "extra-children")]
2241 {
2242 emit_idx += 1;
2243 }
2244 }
2245 for item in &self.x {
2246 #[cfg(feature = "extra-children")]
2247 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2248 extra_iter
2249 .next()
2250 .unwrap()
2251 .node
2252 .write_to(writer)
2253 .map_err(SerializeError::from)?;
2254 }
2255 item.write_element("x", writer)?;
2256 #[cfg(feature = "extra-children")]
2257 {
2258 emit_idx += 1;
2259 }
2260 }
2261 #[cfg(feature = "extra-children")]
2262 for extra in extra_iter {
2263 extra.node.write_to(writer).map_err(SerializeError::from)?;
2264 }
2265 Ok(())
2266 }
2267
2268 fn is_empty_element(&self) -> bool {
2269 if !self.m.is_empty() {
2270 return false;
2271 }
2272 if !self.style_index.is_empty() {
2273 return false;
2274 }
2275 if !self.x.is_empty() {
2276 return false;
2277 }
2278 #[cfg(feature = "extra-children")]
2279 if !self.extra_children.is_empty() {
2280 return false;
2281 }
2282 true
2283 }
2284}
2285
2286impl ToXml for TableMissing {
2287 fn is_empty_element(&self) -> bool {
2288 true
2289 }
2290}
2291
2292impl ToXml for TextImportProperties {
2293 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2294 #[allow(unused_mut)]
2295 let mut start = start;
2296 if let Some(ref val) = self.prompt {
2297 start.push_attribute(("prompt", if *val { "1" } else { "0" }));
2298 }
2299 if let Some(ref val) = self.file_type {
2300 {
2301 let s = val.to_string();
2302 start.push_attribute(("fileType", s.as_str()));
2303 }
2304 }
2305 if let Some(ref val) = self.code_page {
2306 {
2307 let s = val.to_string();
2308 start.push_attribute(("codePage", s.as_str()));
2309 }
2310 }
2311 if let Some(ref val) = self.character_set {
2312 start.push_attribute(("characterSet", val.as_str()));
2313 }
2314 if let Some(ref val) = self.first_row {
2315 {
2316 let s = val.to_string();
2317 start.push_attribute(("firstRow", s.as_str()));
2318 }
2319 }
2320 if let Some(ref val) = self.source_file {
2321 start.push_attribute(("sourceFile", val.as_str()));
2322 }
2323 if let Some(ref val) = self.delimited {
2324 start.push_attribute(("delimited", if *val { "1" } else { "0" }));
2325 }
2326 if let Some(ref val) = self.decimal {
2327 start.push_attribute(("decimal", val.as_str()));
2328 }
2329 if let Some(ref val) = self.thousands {
2330 start.push_attribute(("thousands", val.as_str()));
2331 }
2332 if let Some(ref val) = self.tab {
2333 start.push_attribute(("tab", if *val { "1" } else { "0" }));
2334 }
2335 if let Some(ref val) = self.space {
2336 start.push_attribute(("space", if *val { "1" } else { "0" }));
2337 }
2338 if let Some(ref val) = self.comma {
2339 start.push_attribute(("comma", if *val { "1" } else { "0" }));
2340 }
2341 if let Some(ref val) = self.semicolon {
2342 start.push_attribute(("semicolon", if *val { "1" } else { "0" }));
2343 }
2344 if let Some(ref val) = self.consecutive {
2345 start.push_attribute(("consecutive", if *val { "1" } else { "0" }));
2346 }
2347 if let Some(ref val) = self.qualifier {
2348 {
2349 let s = val.to_string();
2350 start.push_attribute(("qualifier", s.as_str()));
2351 }
2352 }
2353 if let Some(ref val) = self.delimiter {
2354 start.push_attribute(("delimiter", val.as_str()));
2355 }
2356 #[cfg(feature = "extra-attrs")]
2357 for (key, value) in &self.extra_attrs {
2358 start.push_attribute((key.as_str(), value.as_str()));
2359 }
2360 start
2361 }
2362
2363 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2364 #[cfg(feature = "extra-children")]
2365 let mut extra_iter = self.extra_children.iter().peekable();
2366 #[cfg(feature = "extra-children")]
2367 let mut emit_idx: usize = 0;
2368 #[cfg(feature = "extra-children")]
2369 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2370 extra_iter
2371 .next()
2372 .unwrap()
2373 .node
2374 .write_to(writer)
2375 .map_err(SerializeError::from)?;
2376 }
2377 if let Some(ref val) = self.text_fields {
2378 val.write_element("textFields", writer)?;
2379 }
2380 #[cfg(feature = "extra-children")]
2381 {
2382 emit_idx += 1;
2383 }
2384 #[cfg(feature = "extra-children")]
2385 for extra in extra_iter {
2386 extra.node.write_to(writer).map_err(SerializeError::from)?;
2387 }
2388 Ok(())
2389 }
2390
2391 fn is_empty_element(&self) -> bool {
2392 if self.text_fields.is_some() {
2393 return false;
2394 }
2395 #[cfg(feature = "extra-children")]
2396 if !self.extra_children.is_empty() {
2397 return false;
2398 }
2399 true
2400 }
2401}
2402
2403impl ToXml for TextFields {
2404 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2405 #[allow(unused_mut)]
2406 let mut start = start;
2407 if let Some(ref val) = self.count {
2408 {
2409 let s = val.to_string();
2410 start.push_attribute(("count", s.as_str()));
2411 }
2412 }
2413 #[cfg(feature = "extra-attrs")]
2414 for (key, value) in &self.extra_attrs {
2415 start.push_attribute((key.as_str(), value.as_str()));
2416 }
2417 start
2418 }
2419
2420 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2421 #[cfg(feature = "extra-children")]
2422 let mut extra_iter = self.extra_children.iter().peekable();
2423 #[cfg(feature = "extra-children")]
2424 let mut emit_idx: usize = 0;
2425 for item in &self.text_field {
2426 #[cfg(feature = "extra-children")]
2427 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2428 extra_iter
2429 .next()
2430 .unwrap()
2431 .node
2432 .write_to(writer)
2433 .map_err(SerializeError::from)?;
2434 }
2435 item.write_element("textField", writer)?;
2436 #[cfg(feature = "extra-children")]
2437 {
2438 emit_idx += 1;
2439 }
2440 }
2441 #[cfg(feature = "extra-children")]
2442 for extra in extra_iter {
2443 extra.node.write_to(writer).map_err(SerializeError::from)?;
2444 }
2445 Ok(())
2446 }
2447
2448 fn is_empty_element(&self) -> bool {
2449 if !self.text_field.is_empty() {
2450 return false;
2451 }
2452 #[cfg(feature = "extra-children")]
2453 if !self.extra_children.is_empty() {
2454 return false;
2455 }
2456 true
2457 }
2458}
2459
2460impl ToXml for TextField {
2461 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2462 #[allow(unused_mut)]
2463 let mut start = start;
2464 if let Some(ref val) = self.r#type {
2465 {
2466 let s = val.to_string();
2467 start.push_attribute(("type", s.as_str()));
2468 }
2469 }
2470 if let Some(ref val) = self.position {
2471 {
2472 let s = val.to_string();
2473 start.push_attribute(("position", s.as_str()));
2474 }
2475 }
2476 #[cfg(feature = "extra-attrs")]
2477 for (key, value) in &self.extra_attrs {
2478 start.push_attribute((key.as_str(), value.as_str()));
2479 }
2480 start
2481 }
2482
2483 fn is_empty_element(&self) -> bool {
2484 true
2485 }
2486}
2487
2488impl ToXml for PivotCacheDefinition {
2489 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2490 #[allow(unused_mut)]
2491 let mut start = start;
2492 if let Some(ref val) = self.id {
2493 start.push_attribute(("r:id", val.as_str()));
2494 }
2495 if let Some(ref val) = self.invalid {
2496 start.push_attribute(("invalid", if *val { "1" } else { "0" }));
2497 }
2498 if let Some(ref val) = self.save_data {
2499 start.push_attribute(("saveData", if *val { "1" } else { "0" }));
2500 }
2501 if let Some(ref val) = self.refresh_on_load {
2502 start.push_attribute(("refreshOnLoad", if *val { "1" } else { "0" }));
2503 }
2504 if let Some(ref val) = self.optimize_memory {
2505 start.push_attribute(("optimizeMemory", if *val { "1" } else { "0" }));
2506 }
2507 if let Some(ref val) = self.enable_refresh {
2508 start.push_attribute(("enableRefresh", if *val { "1" } else { "0" }));
2509 }
2510 if let Some(ref val) = self.refreshed_by {
2511 start.push_attribute(("refreshedBy", val.as_str()));
2512 }
2513 if let Some(ref val) = self.refreshed_date {
2514 {
2515 let s = val.to_string();
2516 start.push_attribute(("refreshedDate", s.as_str()));
2517 }
2518 }
2519 if let Some(ref val) = self.refreshed_date_iso {
2520 start.push_attribute(("refreshedDateIso", val.as_str()));
2521 }
2522 if let Some(ref val) = self.background_query {
2523 start.push_attribute(("backgroundQuery", if *val { "1" } else { "0" }));
2524 }
2525 if let Some(ref val) = self.missing_items_limit {
2526 {
2527 let s = val.to_string();
2528 start.push_attribute(("missingItemsLimit", s.as_str()));
2529 }
2530 }
2531 if let Some(ref val) = self.created_version {
2532 {
2533 let s = val.to_string();
2534 start.push_attribute(("createdVersion", s.as_str()));
2535 }
2536 }
2537 if let Some(ref val) = self.refreshed_version {
2538 {
2539 let s = val.to_string();
2540 start.push_attribute(("refreshedVersion", s.as_str()));
2541 }
2542 }
2543 if let Some(ref val) = self.min_refreshable_version {
2544 {
2545 let s = val.to_string();
2546 start.push_attribute(("minRefreshableVersion", s.as_str()));
2547 }
2548 }
2549 if let Some(ref val) = self.record_count {
2550 {
2551 let s = val.to_string();
2552 start.push_attribute(("recordCount", s.as_str()));
2553 }
2554 }
2555 if let Some(ref val) = self.upgrade_on_refresh {
2556 start.push_attribute(("upgradeOnRefresh", if *val { "1" } else { "0" }));
2557 }
2558 if let Some(ref val) = self.tuple_cache {
2559 start.push_attribute(("tupleCache", if *val { "1" } else { "0" }));
2560 }
2561 if let Some(ref val) = self.support_subquery {
2562 start.push_attribute(("supportSubquery", if *val { "1" } else { "0" }));
2563 }
2564 if let Some(ref val) = self.support_advanced_drill {
2565 start.push_attribute(("supportAdvancedDrill", if *val { "1" } else { "0" }));
2566 }
2567 #[cfg(feature = "extra-attrs")]
2568 for (key, value) in &self.extra_attrs {
2569 start.push_attribute((key.as_str(), value.as_str()));
2570 }
2571 start
2572 }
2573
2574 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2575 #[cfg(feature = "extra-children")]
2576 let mut extra_iter = self.extra_children.iter().peekable();
2577 #[cfg(feature = "extra-children")]
2578 let mut emit_idx: usize = 0;
2579 #[cfg(feature = "extra-children")]
2580 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2581 extra_iter
2582 .next()
2583 .unwrap()
2584 .node
2585 .write_to(writer)
2586 .map_err(SerializeError::from)?;
2587 }
2588 {
2589 let val = &self.cache_source;
2590 val.write_element("cacheSource", writer)?;
2591 }
2592 #[cfg(feature = "extra-children")]
2593 {
2594 emit_idx += 1;
2595 }
2596 #[cfg(feature = "extra-children")]
2597 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2598 extra_iter
2599 .next()
2600 .unwrap()
2601 .node
2602 .write_to(writer)
2603 .map_err(SerializeError::from)?;
2604 }
2605 {
2606 let val = &self.cache_fields;
2607 val.write_element("cacheFields", writer)?;
2608 }
2609 #[cfg(feature = "extra-children")]
2610 {
2611 emit_idx += 1;
2612 }
2613 #[cfg(feature = "extra-children")]
2614 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2615 extra_iter
2616 .next()
2617 .unwrap()
2618 .node
2619 .write_to(writer)
2620 .map_err(SerializeError::from)?;
2621 }
2622 if let Some(ref val) = self.cache_hierarchies {
2623 val.write_element("cacheHierarchies", writer)?;
2624 }
2625 #[cfg(feature = "extra-children")]
2626 {
2627 emit_idx += 1;
2628 }
2629 #[cfg(feature = "extra-children")]
2630 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2631 extra_iter
2632 .next()
2633 .unwrap()
2634 .node
2635 .write_to(writer)
2636 .map_err(SerializeError::from)?;
2637 }
2638 if let Some(ref val) = self.kpis {
2639 val.write_element("kpis", writer)?;
2640 }
2641 #[cfg(feature = "extra-children")]
2642 {
2643 emit_idx += 1;
2644 }
2645 #[cfg(feature = "extra-children")]
2646 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2647 extra_iter
2648 .next()
2649 .unwrap()
2650 .node
2651 .write_to(writer)
2652 .map_err(SerializeError::from)?;
2653 }
2654 if let Some(ref val) = self.calculated_items {
2655 val.write_element("calculatedItems", writer)?;
2656 }
2657 #[cfg(feature = "extra-children")]
2658 {
2659 emit_idx += 1;
2660 }
2661 #[cfg(feature = "extra-children")]
2662 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2663 extra_iter
2664 .next()
2665 .unwrap()
2666 .node
2667 .write_to(writer)
2668 .map_err(SerializeError::from)?;
2669 }
2670 if let Some(ref val) = self.calculated_members {
2671 val.write_element("calculatedMembers", writer)?;
2672 }
2673 #[cfg(feature = "extra-children")]
2674 {
2675 emit_idx += 1;
2676 }
2677 #[cfg(feature = "extra-children")]
2678 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2679 extra_iter
2680 .next()
2681 .unwrap()
2682 .node
2683 .write_to(writer)
2684 .map_err(SerializeError::from)?;
2685 }
2686 if let Some(ref val) = self.dimensions {
2687 val.write_element("dimensions", writer)?;
2688 }
2689 #[cfg(feature = "extra-children")]
2690 {
2691 emit_idx += 1;
2692 }
2693 #[cfg(feature = "extra-children")]
2694 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2695 extra_iter
2696 .next()
2697 .unwrap()
2698 .node
2699 .write_to(writer)
2700 .map_err(SerializeError::from)?;
2701 }
2702 if let Some(ref val) = self.measure_groups {
2703 val.write_element("measureGroups", writer)?;
2704 }
2705 #[cfg(feature = "extra-children")]
2706 {
2707 emit_idx += 1;
2708 }
2709 #[cfg(feature = "extra-children")]
2710 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2711 extra_iter
2712 .next()
2713 .unwrap()
2714 .node
2715 .write_to(writer)
2716 .map_err(SerializeError::from)?;
2717 }
2718 if let Some(ref val) = self.maps {
2719 val.write_element("maps", writer)?;
2720 }
2721 #[cfg(feature = "extra-children")]
2722 {
2723 emit_idx += 1;
2724 }
2725 #[cfg(feature = "extra-children")]
2726 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2727 extra_iter
2728 .next()
2729 .unwrap()
2730 .node
2731 .write_to(writer)
2732 .map_err(SerializeError::from)?;
2733 }
2734 if let Some(ref val) = self.extension_list {
2735 val.write_element("extLst", writer)?;
2736 }
2737 #[cfg(feature = "extra-children")]
2738 {
2739 emit_idx += 1;
2740 }
2741 #[cfg(feature = "extra-children")]
2742 for extra in extra_iter {
2743 extra.node.write_to(writer).map_err(SerializeError::from)?;
2744 }
2745 Ok(())
2746 }
2747
2748 fn is_empty_element(&self) -> bool {
2749 false
2750 }
2751}
2752
2753impl ToXml for CacheFields {
2754 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2755 #[allow(unused_mut)]
2756 let mut start = start;
2757 if let Some(ref val) = self.count {
2758 {
2759 let s = val.to_string();
2760 start.push_attribute(("count", s.as_str()));
2761 }
2762 }
2763 #[cfg(feature = "extra-attrs")]
2764 for (key, value) in &self.extra_attrs {
2765 start.push_attribute((key.as_str(), value.as_str()));
2766 }
2767 start
2768 }
2769
2770 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2771 #[cfg(feature = "extra-children")]
2772 let mut extra_iter = self.extra_children.iter().peekable();
2773 #[cfg(feature = "extra-children")]
2774 let mut emit_idx: usize = 0;
2775 for item in &self.cache_field {
2776 #[cfg(feature = "extra-children")]
2777 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2778 extra_iter
2779 .next()
2780 .unwrap()
2781 .node
2782 .write_to(writer)
2783 .map_err(SerializeError::from)?;
2784 }
2785 item.write_element("cacheField", writer)?;
2786 #[cfg(feature = "extra-children")]
2787 {
2788 emit_idx += 1;
2789 }
2790 }
2791 #[cfg(feature = "extra-children")]
2792 for extra in extra_iter {
2793 extra.node.write_to(writer).map_err(SerializeError::from)?;
2794 }
2795 Ok(())
2796 }
2797
2798 fn is_empty_element(&self) -> bool {
2799 if !self.cache_field.is_empty() {
2800 return false;
2801 }
2802 #[cfg(feature = "extra-children")]
2803 if !self.extra_children.is_empty() {
2804 return false;
2805 }
2806 true
2807 }
2808}
2809
2810impl ToXml for CacheField {
2811 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2812 #[allow(unused_mut)]
2813 let mut start = start;
2814 {
2815 let val = &self.name;
2816 start.push_attribute(("name", val.as_str()));
2817 }
2818 if let Some(ref val) = self.caption {
2819 start.push_attribute(("caption", val.as_str()));
2820 }
2821 if let Some(ref val) = self.property_name {
2822 start.push_attribute(("propertyName", val.as_str()));
2823 }
2824 if let Some(ref val) = self.server_field {
2825 start.push_attribute(("serverField", if *val { "1" } else { "0" }));
2826 }
2827 if let Some(ref val) = self.unique_list {
2828 start.push_attribute(("uniqueList", if *val { "1" } else { "0" }));
2829 }
2830 if let Some(ref val) = self.number_format_id {
2831 {
2832 let s = val.to_string();
2833 start.push_attribute(("numFmtId", s.as_str()));
2834 }
2835 }
2836 if let Some(ref val) = self.formula {
2837 start.push_attribute(("formula", val.as_str()));
2838 }
2839 if let Some(ref val) = self.sql_type {
2840 {
2841 let s = val.to_string();
2842 start.push_attribute(("sqlType", s.as_str()));
2843 }
2844 }
2845 if let Some(ref val) = self.hierarchy {
2846 {
2847 let s = val.to_string();
2848 start.push_attribute(("hierarchy", s.as_str()));
2849 }
2850 }
2851 if let Some(ref val) = self.level {
2852 {
2853 let s = val.to_string();
2854 start.push_attribute(("level", s.as_str()));
2855 }
2856 }
2857 if let Some(ref val) = self.database_field {
2858 start.push_attribute(("databaseField", if *val { "1" } else { "0" }));
2859 }
2860 if let Some(ref val) = self.mapping_count {
2861 {
2862 let s = val.to_string();
2863 start.push_attribute(("mappingCount", s.as_str()));
2864 }
2865 }
2866 if let Some(ref val) = self.member_property_field {
2867 start.push_attribute(("memberPropertyField", if *val { "1" } else { "0" }));
2868 }
2869 #[cfg(feature = "extra-attrs")]
2870 for (key, value) in &self.extra_attrs {
2871 start.push_attribute((key.as_str(), value.as_str()));
2872 }
2873 start
2874 }
2875
2876 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2877 #[cfg(feature = "extra-children")]
2878 let mut extra_iter = self.extra_children.iter().peekable();
2879 #[cfg(feature = "extra-children")]
2880 let mut emit_idx: usize = 0;
2881 #[cfg(feature = "extra-children")]
2882 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2883 extra_iter
2884 .next()
2885 .unwrap()
2886 .node
2887 .write_to(writer)
2888 .map_err(SerializeError::from)?;
2889 }
2890 if let Some(ref val) = self.shared_items {
2891 val.write_element("sharedItems", writer)?;
2892 }
2893 #[cfg(feature = "extra-children")]
2894 {
2895 emit_idx += 1;
2896 }
2897 #[cfg(feature = "extra-children")]
2898 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2899 extra_iter
2900 .next()
2901 .unwrap()
2902 .node
2903 .write_to(writer)
2904 .map_err(SerializeError::from)?;
2905 }
2906 if let Some(ref val) = self.field_group {
2907 val.write_element("fieldGroup", writer)?;
2908 }
2909 #[cfg(feature = "extra-children")]
2910 {
2911 emit_idx += 1;
2912 }
2913 for item in &self.mp_map {
2914 #[cfg(feature = "extra-children")]
2915 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2916 extra_iter
2917 .next()
2918 .unwrap()
2919 .node
2920 .write_to(writer)
2921 .map_err(SerializeError::from)?;
2922 }
2923 item.write_element("mpMap", writer)?;
2924 #[cfg(feature = "extra-children")]
2925 {
2926 emit_idx += 1;
2927 }
2928 }
2929 #[cfg(feature = "extra-children")]
2930 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
2931 extra_iter
2932 .next()
2933 .unwrap()
2934 .node
2935 .write_to(writer)
2936 .map_err(SerializeError::from)?;
2937 }
2938 if let Some(ref val) = self.extension_list {
2939 val.write_element("extLst", writer)?;
2940 }
2941 #[cfg(feature = "extra-children")]
2942 {
2943 emit_idx += 1;
2944 }
2945 #[cfg(feature = "extra-children")]
2946 for extra in extra_iter {
2947 extra.node.write_to(writer).map_err(SerializeError::from)?;
2948 }
2949 Ok(())
2950 }
2951
2952 fn is_empty_element(&self) -> bool {
2953 if self.shared_items.is_some() {
2954 return false;
2955 }
2956 if self.field_group.is_some() {
2957 return false;
2958 }
2959 if !self.mp_map.is_empty() {
2960 return false;
2961 }
2962 if self.extension_list.is_some() {
2963 return false;
2964 }
2965 #[cfg(feature = "extra-children")]
2966 if !self.extra_children.is_empty() {
2967 return false;
2968 }
2969 true
2970 }
2971}
2972
2973impl ToXml for CacheSource {
2974 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
2975 #[allow(unused_mut)]
2976 let mut start = start;
2977 {
2978 let val = &self.r#type;
2979 {
2980 let s = val.to_string();
2981 start.push_attribute(("type", s.as_str()));
2982 }
2983 }
2984 if let Some(ref val) = self.connection_id {
2985 {
2986 let s = val.to_string();
2987 start.push_attribute(("connectionId", s.as_str()));
2988 }
2989 }
2990 #[cfg(feature = "extra-attrs")]
2991 for (key, value) in &self.extra_attrs {
2992 start.push_attribute((key.as_str(), value.as_str()));
2993 }
2994 start
2995 }
2996
2997 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
2998 #[cfg(feature = "extra-children")]
2999 let mut extra_iter = self.extra_children.iter().peekable();
3000 #[cfg(feature = "extra-children")]
3001 let mut emit_idx: usize = 0;
3002 #[cfg(feature = "extra-children")]
3003 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3004 extra_iter
3005 .next()
3006 .unwrap()
3007 .node
3008 .write_to(writer)
3009 .map_err(SerializeError::from)?;
3010 }
3011 if let Some(ref val) = self.worksheet_source {
3012 val.write_element("worksheetSource", writer)?;
3013 }
3014 #[cfg(feature = "extra-children")]
3015 {
3016 emit_idx += 1;
3017 }
3018 #[cfg(feature = "extra-children")]
3019 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3020 extra_iter
3021 .next()
3022 .unwrap()
3023 .node
3024 .write_to(writer)
3025 .map_err(SerializeError::from)?;
3026 }
3027 if let Some(ref val) = self.consolidation {
3028 val.write_element("consolidation", writer)?;
3029 }
3030 #[cfg(feature = "extra-children")]
3031 {
3032 emit_idx += 1;
3033 }
3034 #[cfg(feature = "extra-children")]
3035 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3036 extra_iter
3037 .next()
3038 .unwrap()
3039 .node
3040 .write_to(writer)
3041 .map_err(SerializeError::from)?;
3042 }
3043 if let Some(ref val) = self.extension_list {
3044 val.write_element("extLst", writer)?;
3045 }
3046 #[cfg(feature = "extra-children")]
3047 {
3048 emit_idx += 1;
3049 }
3050 #[cfg(feature = "extra-children")]
3051 for extra in extra_iter {
3052 extra.node.write_to(writer).map_err(SerializeError::from)?;
3053 }
3054 Ok(())
3055 }
3056
3057 fn is_empty_element(&self) -> bool {
3058 if self.worksheet_source.is_some() {
3059 return false;
3060 }
3061 if self.consolidation.is_some() {
3062 return false;
3063 }
3064 if self.extension_list.is_some() {
3065 return false;
3066 }
3067 #[cfg(feature = "extra-children")]
3068 if !self.extra_children.is_empty() {
3069 return false;
3070 }
3071 true
3072 }
3073}
3074
3075impl ToXml for WorksheetSource {
3076 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
3077 #[allow(unused_mut)]
3078 let mut start = start;
3079 if let Some(ref val) = self.reference {
3080 start.push_attribute(("ref", val.as_str()));
3081 }
3082 if let Some(ref val) = self.name {
3083 start.push_attribute(("name", val.as_str()));
3084 }
3085 if let Some(ref val) = self.sheet {
3086 start.push_attribute(("sheet", val.as_str()));
3087 }
3088 if let Some(ref val) = self.id {
3089 start.push_attribute(("r:id", val.as_str()));
3090 }
3091 #[cfg(feature = "extra-attrs")]
3092 for (key, value) in &self.extra_attrs {
3093 start.push_attribute((key.as_str(), value.as_str()));
3094 }
3095 start
3096 }
3097
3098 fn is_empty_element(&self) -> bool {
3099 true
3100 }
3101}
3102
3103impl ToXml for Consolidation {
3104 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
3105 #[allow(unused_mut)]
3106 let mut start = start;
3107 if let Some(ref val) = self.auto_page {
3108 start.push_attribute(("autoPage", if *val { "1" } else { "0" }));
3109 }
3110 #[cfg(feature = "extra-attrs")]
3111 for (key, value) in &self.extra_attrs {
3112 start.push_attribute((key.as_str(), value.as_str()));
3113 }
3114 start
3115 }
3116
3117 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
3118 #[cfg(feature = "extra-children")]
3119 let mut extra_iter = self.extra_children.iter().peekable();
3120 #[cfg(feature = "extra-children")]
3121 let mut emit_idx: usize = 0;
3122 #[cfg(feature = "extra-children")]
3123 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3124 extra_iter
3125 .next()
3126 .unwrap()
3127 .node
3128 .write_to(writer)
3129 .map_err(SerializeError::from)?;
3130 }
3131 if let Some(ref val) = self.pages {
3132 val.write_element("pages", writer)?;
3133 }
3134 #[cfg(feature = "extra-children")]
3135 {
3136 emit_idx += 1;
3137 }
3138 #[cfg(feature = "extra-children")]
3139 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3140 extra_iter
3141 .next()
3142 .unwrap()
3143 .node
3144 .write_to(writer)
3145 .map_err(SerializeError::from)?;
3146 }
3147 {
3148 let val = &self.range_sets;
3149 val.write_element("rangeSets", writer)?;
3150 }
3151 #[cfg(feature = "extra-children")]
3152 {
3153 emit_idx += 1;
3154 }
3155 #[cfg(feature = "extra-children")]
3156 for extra in extra_iter {
3157 extra.node.write_to(writer).map_err(SerializeError::from)?;
3158 }
3159 Ok(())
3160 }
3161
3162 fn is_empty_element(&self) -> bool {
3163 if self.pages.is_some() {
3164 return false;
3165 }
3166 false
3167 }
3168}
3169
3170impl ToXml for CTPages {
3171 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
3172 #[allow(unused_mut)]
3173 let mut start = start;
3174 if let Some(ref val) = self.count {
3175 {
3176 let s = val.to_string();
3177 start.push_attribute(("count", s.as_str()));
3178 }
3179 }
3180 #[cfg(feature = "extra-attrs")]
3181 for (key, value) in &self.extra_attrs {
3182 start.push_attribute((key.as_str(), value.as_str()));
3183 }
3184 start
3185 }
3186
3187 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
3188 #[cfg(feature = "extra-children")]
3189 let mut extra_iter = self.extra_children.iter().peekable();
3190 #[cfg(feature = "extra-children")]
3191 let mut emit_idx: usize = 0;
3192 for item in &self.page {
3193 #[cfg(feature = "extra-children")]
3194 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3195 extra_iter
3196 .next()
3197 .unwrap()
3198 .node
3199 .write_to(writer)
3200 .map_err(SerializeError::from)?;
3201 }
3202 item.write_element("page", writer)?;
3203 #[cfg(feature = "extra-children")]
3204 {
3205 emit_idx += 1;
3206 }
3207 }
3208 #[cfg(feature = "extra-children")]
3209 for extra in extra_iter {
3210 extra.node.write_to(writer).map_err(SerializeError::from)?;
3211 }
3212 Ok(())
3213 }
3214
3215 fn is_empty_element(&self) -> bool {
3216 if !self.page.is_empty() {
3217 return false;
3218 }
3219 #[cfg(feature = "extra-children")]
3220 if !self.extra_children.is_empty() {
3221 return false;
3222 }
3223 true
3224 }
3225}
3226
3227impl ToXml for CTPCDSCPage {
3228 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
3229 #[allow(unused_mut)]
3230 let mut start = start;
3231 if let Some(ref val) = self.count {
3232 {
3233 let s = val.to_string();
3234 start.push_attribute(("count", s.as_str()));
3235 }
3236 }
3237 #[cfg(feature = "extra-attrs")]
3238 for (key, value) in &self.extra_attrs {
3239 start.push_attribute((key.as_str(), value.as_str()));
3240 }
3241 start
3242 }
3243
3244 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
3245 #[cfg(feature = "extra-children")]
3246 let mut extra_iter = self.extra_children.iter().peekable();
3247 #[cfg(feature = "extra-children")]
3248 let mut emit_idx: usize = 0;
3249 for item in &self.page_item {
3250 #[cfg(feature = "extra-children")]
3251 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3252 extra_iter
3253 .next()
3254 .unwrap()
3255 .node
3256 .write_to(writer)
3257 .map_err(SerializeError::from)?;
3258 }
3259 item.write_element("pageItem", writer)?;
3260 #[cfg(feature = "extra-children")]
3261 {
3262 emit_idx += 1;
3263 }
3264 }
3265 #[cfg(feature = "extra-children")]
3266 for extra in extra_iter {
3267 extra.node.write_to(writer).map_err(SerializeError::from)?;
3268 }
3269 Ok(())
3270 }
3271
3272 fn is_empty_element(&self) -> bool {
3273 if !self.page_item.is_empty() {
3274 return false;
3275 }
3276 #[cfg(feature = "extra-children")]
3277 if !self.extra_children.is_empty() {
3278 return false;
3279 }
3280 true
3281 }
3282}
3283
3284impl ToXml for CTPageItem {
3285 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
3286 #[allow(unused_mut)]
3287 let mut start = start;
3288 {
3289 let val = &self.name;
3290 start.push_attribute(("name", val.as_str()));
3291 }
3292 #[cfg(feature = "extra-attrs")]
3293 for (key, value) in &self.extra_attrs {
3294 start.push_attribute((key.as_str(), value.as_str()));
3295 }
3296 start
3297 }
3298
3299 fn is_empty_element(&self) -> bool {
3300 true
3301 }
3302}
3303
3304impl ToXml for CTRangeSets {
3305 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
3306 #[allow(unused_mut)]
3307 let mut start = start;
3308 if let Some(ref val) = self.count {
3309 {
3310 let s = val.to_string();
3311 start.push_attribute(("count", s.as_str()));
3312 }
3313 }
3314 #[cfg(feature = "extra-attrs")]
3315 for (key, value) in &self.extra_attrs {
3316 start.push_attribute((key.as_str(), value.as_str()));
3317 }
3318 start
3319 }
3320
3321 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
3322 #[cfg(feature = "extra-children")]
3323 let mut extra_iter = self.extra_children.iter().peekable();
3324 #[cfg(feature = "extra-children")]
3325 let mut emit_idx: usize = 0;
3326 for item in &self.range_set {
3327 #[cfg(feature = "extra-children")]
3328 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3329 extra_iter
3330 .next()
3331 .unwrap()
3332 .node
3333 .write_to(writer)
3334 .map_err(SerializeError::from)?;
3335 }
3336 item.write_element("rangeSet", writer)?;
3337 #[cfg(feature = "extra-children")]
3338 {
3339 emit_idx += 1;
3340 }
3341 }
3342 #[cfg(feature = "extra-children")]
3343 for extra in extra_iter {
3344 extra.node.write_to(writer).map_err(SerializeError::from)?;
3345 }
3346 Ok(())
3347 }
3348
3349 fn is_empty_element(&self) -> bool {
3350 if !self.range_set.is_empty() {
3351 return false;
3352 }
3353 #[cfg(feature = "extra-children")]
3354 if !self.extra_children.is_empty() {
3355 return false;
3356 }
3357 true
3358 }
3359}
3360
3361impl ToXml for CTRangeSet {
3362 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
3363 #[allow(unused_mut)]
3364 let mut start = start;
3365 if let Some(ref val) = self.i1 {
3366 {
3367 let s = val.to_string();
3368 start.push_attribute(("i1", s.as_str()));
3369 }
3370 }
3371 if let Some(ref val) = self.i2 {
3372 {
3373 let s = val.to_string();
3374 start.push_attribute(("i2", s.as_str()));
3375 }
3376 }
3377 if let Some(ref val) = self.i3 {
3378 {
3379 let s = val.to_string();
3380 start.push_attribute(("i3", s.as_str()));
3381 }
3382 }
3383 if let Some(ref val) = self.i4 {
3384 {
3385 let s = val.to_string();
3386 start.push_attribute(("i4", s.as_str()));
3387 }
3388 }
3389 if let Some(ref val) = self.reference {
3390 start.push_attribute(("ref", val.as_str()));
3391 }
3392 if let Some(ref val) = self.name {
3393 start.push_attribute(("name", val.as_str()));
3394 }
3395 if let Some(ref val) = self.sheet {
3396 start.push_attribute(("sheet", val.as_str()));
3397 }
3398 if let Some(ref val) = self.id {
3399 start.push_attribute(("r:id", val.as_str()));
3400 }
3401 #[cfg(feature = "extra-attrs")]
3402 for (key, value) in &self.extra_attrs {
3403 start.push_attribute((key.as_str(), value.as_str()));
3404 }
3405 start
3406 }
3407
3408 fn is_empty_element(&self) -> bool {
3409 true
3410 }
3411}
3412
3413impl ToXml for SharedItems {
3414 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
3415 #[allow(unused_mut)]
3416 let mut start = start;
3417 if let Some(ref val) = self.contains_semi_mixed_types {
3418 start.push_attribute(("containsSemiMixedTypes", if *val { "1" } else { "0" }));
3419 }
3420 if let Some(ref val) = self.contains_non_date {
3421 start.push_attribute(("containsNonDate", if *val { "1" } else { "0" }));
3422 }
3423 if let Some(ref val) = self.contains_date {
3424 start.push_attribute(("containsDate", if *val { "1" } else { "0" }));
3425 }
3426 if let Some(ref val) = self.contains_string {
3427 start.push_attribute(("containsString", if *val { "1" } else { "0" }));
3428 }
3429 if let Some(ref val) = self.contains_blank {
3430 start.push_attribute(("containsBlank", if *val { "1" } else { "0" }));
3431 }
3432 if let Some(ref val) = self.contains_mixed_types {
3433 start.push_attribute(("containsMixedTypes", if *val { "1" } else { "0" }));
3434 }
3435 if let Some(ref val) = self.contains_number {
3436 start.push_attribute(("containsNumber", if *val { "1" } else { "0" }));
3437 }
3438 if let Some(ref val) = self.contains_integer {
3439 start.push_attribute(("containsInteger", if *val { "1" } else { "0" }));
3440 }
3441 if let Some(ref val) = self.min_value {
3442 {
3443 let s = val.to_string();
3444 start.push_attribute(("minValue", s.as_str()));
3445 }
3446 }
3447 if let Some(ref val) = self.max_value {
3448 {
3449 let s = val.to_string();
3450 start.push_attribute(("maxValue", s.as_str()));
3451 }
3452 }
3453 if let Some(ref val) = self.min_date {
3454 start.push_attribute(("minDate", val.as_str()));
3455 }
3456 if let Some(ref val) = self.max_date {
3457 start.push_attribute(("maxDate", val.as_str()));
3458 }
3459 if let Some(ref val) = self.count {
3460 {
3461 let s = val.to_string();
3462 start.push_attribute(("count", s.as_str()));
3463 }
3464 }
3465 if let Some(ref val) = self.long_text {
3466 start.push_attribute(("longText", if *val { "1" } else { "0" }));
3467 }
3468 #[cfg(feature = "extra-attrs")]
3469 for (key, value) in &self.extra_attrs {
3470 start.push_attribute((key.as_str(), value.as_str()));
3471 }
3472 start
3473 }
3474
3475 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
3476 #[cfg(feature = "extra-children")]
3477 let mut extra_iter = self.extra_children.iter().peekable();
3478 #[cfg(feature = "extra-children")]
3479 let mut emit_idx: usize = 0;
3480 for item in &self.m {
3481 #[cfg(feature = "extra-children")]
3482 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3483 extra_iter
3484 .next()
3485 .unwrap()
3486 .node
3487 .write_to(writer)
3488 .map_err(SerializeError::from)?;
3489 }
3490 item.write_element("m", writer)?;
3491 #[cfg(feature = "extra-children")]
3492 {
3493 emit_idx += 1;
3494 }
3495 }
3496 for item in &self.n {
3497 #[cfg(feature = "extra-children")]
3498 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3499 extra_iter
3500 .next()
3501 .unwrap()
3502 .node
3503 .write_to(writer)
3504 .map_err(SerializeError::from)?;
3505 }
3506 item.write_element("n", writer)?;
3507 #[cfg(feature = "extra-children")]
3508 {
3509 emit_idx += 1;
3510 }
3511 }
3512 for item in &self.b {
3513 #[cfg(feature = "extra-children")]
3514 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3515 extra_iter
3516 .next()
3517 .unwrap()
3518 .node
3519 .write_to(writer)
3520 .map_err(SerializeError::from)?;
3521 }
3522 item.write_element("b", writer)?;
3523 #[cfg(feature = "extra-children")]
3524 {
3525 emit_idx += 1;
3526 }
3527 }
3528 for item in &self.e {
3529 #[cfg(feature = "extra-children")]
3530 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3531 extra_iter
3532 .next()
3533 .unwrap()
3534 .node
3535 .write_to(writer)
3536 .map_err(SerializeError::from)?;
3537 }
3538 item.write_element("e", writer)?;
3539 #[cfg(feature = "extra-children")]
3540 {
3541 emit_idx += 1;
3542 }
3543 }
3544 for item in &self.style_index {
3545 #[cfg(feature = "extra-children")]
3546 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3547 extra_iter
3548 .next()
3549 .unwrap()
3550 .node
3551 .write_to(writer)
3552 .map_err(SerializeError::from)?;
3553 }
3554 item.write_element("s", writer)?;
3555 #[cfg(feature = "extra-children")]
3556 {
3557 emit_idx += 1;
3558 }
3559 }
3560 for item in &self.d {
3561 #[cfg(feature = "extra-children")]
3562 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3563 extra_iter
3564 .next()
3565 .unwrap()
3566 .node
3567 .write_to(writer)
3568 .map_err(SerializeError::from)?;
3569 }
3570 item.write_element("d", writer)?;
3571 #[cfg(feature = "extra-children")]
3572 {
3573 emit_idx += 1;
3574 }
3575 }
3576 #[cfg(feature = "extra-children")]
3577 for extra in extra_iter {
3578 extra.node.write_to(writer).map_err(SerializeError::from)?;
3579 }
3580 Ok(())
3581 }
3582
3583 fn is_empty_element(&self) -> bool {
3584 if !self.m.is_empty() {
3585 return false;
3586 }
3587 if !self.n.is_empty() {
3588 return false;
3589 }
3590 if !self.b.is_empty() {
3591 return false;
3592 }
3593 if !self.e.is_empty() {
3594 return false;
3595 }
3596 if !self.style_index.is_empty() {
3597 return false;
3598 }
3599 if !self.d.is_empty() {
3600 return false;
3601 }
3602 #[cfg(feature = "extra-children")]
3603 if !self.extra_children.is_empty() {
3604 return false;
3605 }
3606 true
3607 }
3608}
3609
3610impl ToXml for CTMissing {
3611 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
3612 #[allow(unused_mut)]
3613 let mut start = start;
3614 if let Some(ref val) = self.u {
3615 start.push_attribute(("u", if *val { "1" } else { "0" }));
3616 }
3617 if let Some(ref val) = self.formula {
3618 start.push_attribute(("f", if *val { "1" } else { "0" }));
3619 }
3620 if let Some(ref val) = self.cells {
3621 start.push_attribute(("c", val.as_str()));
3622 }
3623 if let Some(ref val) = self.cp {
3624 {
3625 let s = val.to_string();
3626 start.push_attribute(("cp", s.as_str()));
3627 }
3628 }
3629 if let Some(ref val) = self.r#in {
3630 {
3631 let s = val.to_string();
3632 start.push_attribute(("in", s.as_str()));
3633 }
3634 }
3635 if let Some(ref val) = self.bc {
3636 {
3637 let hex = encode_hex(val);
3638 start.push_attribute(("bc", hex.as_str()));
3639 }
3640 }
3641 if let Some(ref val) = self.fc {
3642 {
3643 let hex = encode_hex(val);
3644 start.push_attribute(("fc", hex.as_str()));
3645 }
3646 }
3647 if let Some(ref val) = self.i {
3648 start.push_attribute(("i", if *val { "1" } else { "0" }));
3649 }
3650 if let Some(ref val) = self.un {
3651 start.push_attribute(("un", if *val { "1" } else { "0" }));
3652 }
3653 if let Some(ref val) = self.st {
3654 start.push_attribute(("st", if *val { "1" } else { "0" }));
3655 }
3656 if let Some(ref val) = self.b {
3657 start.push_attribute(("b", if *val { "1" } else { "0" }));
3658 }
3659 #[cfg(feature = "extra-attrs")]
3660 for (key, value) in &self.extra_attrs {
3661 start.push_attribute((key.as_str(), value.as_str()));
3662 }
3663 start
3664 }
3665
3666 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
3667 #[cfg(feature = "extra-children")]
3668 let mut extra_iter = self.extra_children.iter().peekable();
3669 #[cfg(feature = "extra-children")]
3670 let mut emit_idx: usize = 0;
3671 for item in &self.tpls {
3672 #[cfg(feature = "extra-children")]
3673 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3674 extra_iter
3675 .next()
3676 .unwrap()
3677 .node
3678 .write_to(writer)
3679 .map_err(SerializeError::from)?;
3680 }
3681 item.write_element("tpls", writer)?;
3682 #[cfg(feature = "extra-children")]
3683 {
3684 emit_idx += 1;
3685 }
3686 }
3687 for item in &self.x {
3688 #[cfg(feature = "extra-children")]
3689 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3690 extra_iter
3691 .next()
3692 .unwrap()
3693 .node
3694 .write_to(writer)
3695 .map_err(SerializeError::from)?;
3696 }
3697 item.write_element("x", writer)?;
3698 #[cfg(feature = "extra-children")]
3699 {
3700 emit_idx += 1;
3701 }
3702 }
3703 #[cfg(feature = "extra-children")]
3704 for extra in extra_iter {
3705 extra.node.write_to(writer).map_err(SerializeError::from)?;
3706 }
3707 Ok(())
3708 }
3709
3710 fn is_empty_element(&self) -> bool {
3711 if !self.tpls.is_empty() {
3712 return false;
3713 }
3714 if !self.x.is_empty() {
3715 return false;
3716 }
3717 #[cfg(feature = "extra-children")]
3718 if !self.extra_children.is_empty() {
3719 return false;
3720 }
3721 true
3722 }
3723}
3724
3725impl ToXml for CTNumber {
3726 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
3727 #[allow(unused_mut)]
3728 let mut start = start;
3729 {
3730 let val = &self.value;
3731 {
3732 let s = val.to_string();
3733 start.push_attribute(("v", s.as_str()));
3734 }
3735 }
3736 if let Some(ref val) = self.u {
3737 start.push_attribute(("u", if *val { "1" } else { "0" }));
3738 }
3739 if let Some(ref val) = self.formula {
3740 start.push_attribute(("f", if *val { "1" } else { "0" }));
3741 }
3742 if let Some(ref val) = self.cells {
3743 start.push_attribute(("c", val.as_str()));
3744 }
3745 if let Some(ref val) = self.cp {
3746 {
3747 let s = val.to_string();
3748 start.push_attribute(("cp", s.as_str()));
3749 }
3750 }
3751 if let Some(ref val) = self.r#in {
3752 {
3753 let s = val.to_string();
3754 start.push_attribute(("in", s.as_str()));
3755 }
3756 }
3757 if let Some(ref val) = self.bc {
3758 {
3759 let hex = encode_hex(val);
3760 start.push_attribute(("bc", hex.as_str()));
3761 }
3762 }
3763 if let Some(ref val) = self.fc {
3764 {
3765 let hex = encode_hex(val);
3766 start.push_attribute(("fc", hex.as_str()));
3767 }
3768 }
3769 if let Some(ref val) = self.i {
3770 start.push_attribute(("i", if *val { "1" } else { "0" }));
3771 }
3772 if let Some(ref val) = self.un {
3773 start.push_attribute(("un", if *val { "1" } else { "0" }));
3774 }
3775 if let Some(ref val) = self.st {
3776 start.push_attribute(("st", if *val { "1" } else { "0" }));
3777 }
3778 if let Some(ref val) = self.b {
3779 start.push_attribute(("b", if *val { "1" } else { "0" }));
3780 }
3781 #[cfg(feature = "extra-attrs")]
3782 for (key, value) in &self.extra_attrs {
3783 start.push_attribute((key.as_str(), value.as_str()));
3784 }
3785 start
3786 }
3787
3788 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
3789 #[cfg(feature = "extra-children")]
3790 let mut extra_iter = self.extra_children.iter().peekable();
3791 #[cfg(feature = "extra-children")]
3792 let mut emit_idx: usize = 0;
3793 for item in &self.tpls {
3794 #[cfg(feature = "extra-children")]
3795 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3796 extra_iter
3797 .next()
3798 .unwrap()
3799 .node
3800 .write_to(writer)
3801 .map_err(SerializeError::from)?;
3802 }
3803 item.write_element("tpls", writer)?;
3804 #[cfg(feature = "extra-children")]
3805 {
3806 emit_idx += 1;
3807 }
3808 }
3809 for item in &self.x {
3810 #[cfg(feature = "extra-children")]
3811 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3812 extra_iter
3813 .next()
3814 .unwrap()
3815 .node
3816 .write_to(writer)
3817 .map_err(SerializeError::from)?;
3818 }
3819 item.write_element("x", writer)?;
3820 #[cfg(feature = "extra-children")]
3821 {
3822 emit_idx += 1;
3823 }
3824 }
3825 #[cfg(feature = "extra-children")]
3826 for extra in extra_iter {
3827 extra.node.write_to(writer).map_err(SerializeError::from)?;
3828 }
3829 Ok(())
3830 }
3831
3832 fn is_empty_element(&self) -> bool {
3833 if !self.tpls.is_empty() {
3834 return false;
3835 }
3836 if !self.x.is_empty() {
3837 return false;
3838 }
3839 #[cfg(feature = "extra-children")]
3840 if !self.extra_children.is_empty() {
3841 return false;
3842 }
3843 true
3844 }
3845}
3846
3847impl ToXml for CTBoolean {
3848 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
3849 #[allow(unused_mut)]
3850 let mut start = start;
3851 {
3852 let val = &self.value;
3853 start.push_attribute(("v", if *val { "1" } else { "0" }));
3854 }
3855 if let Some(ref val) = self.u {
3856 start.push_attribute(("u", if *val { "1" } else { "0" }));
3857 }
3858 if let Some(ref val) = self.formula {
3859 start.push_attribute(("f", if *val { "1" } else { "0" }));
3860 }
3861 if let Some(ref val) = self.cells {
3862 start.push_attribute(("c", val.as_str()));
3863 }
3864 if let Some(ref val) = self.cp {
3865 {
3866 let s = val.to_string();
3867 start.push_attribute(("cp", s.as_str()));
3868 }
3869 }
3870 #[cfg(feature = "extra-attrs")]
3871 for (key, value) in &self.extra_attrs {
3872 start.push_attribute((key.as_str(), value.as_str()));
3873 }
3874 start
3875 }
3876
3877 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
3878 #[cfg(feature = "extra-children")]
3879 let mut extra_iter = self.extra_children.iter().peekable();
3880 #[cfg(feature = "extra-children")]
3881 let mut emit_idx: usize = 0;
3882 for item in &self.x {
3883 #[cfg(feature = "extra-children")]
3884 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3885 extra_iter
3886 .next()
3887 .unwrap()
3888 .node
3889 .write_to(writer)
3890 .map_err(SerializeError::from)?;
3891 }
3892 item.write_element("x", writer)?;
3893 #[cfg(feature = "extra-children")]
3894 {
3895 emit_idx += 1;
3896 }
3897 }
3898 #[cfg(feature = "extra-children")]
3899 for extra in extra_iter {
3900 extra.node.write_to(writer).map_err(SerializeError::from)?;
3901 }
3902 Ok(())
3903 }
3904
3905 fn is_empty_element(&self) -> bool {
3906 if !self.x.is_empty() {
3907 return false;
3908 }
3909 #[cfg(feature = "extra-children")]
3910 if !self.extra_children.is_empty() {
3911 return false;
3912 }
3913 true
3914 }
3915}
3916
3917impl ToXml for CTError {
3918 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
3919 #[allow(unused_mut)]
3920 let mut start = start;
3921 {
3922 let val = &self.value;
3923 start.push_attribute(("v", val.as_str()));
3924 }
3925 if let Some(ref val) = self.u {
3926 start.push_attribute(("u", if *val { "1" } else { "0" }));
3927 }
3928 if let Some(ref val) = self.formula {
3929 start.push_attribute(("f", if *val { "1" } else { "0" }));
3930 }
3931 if let Some(ref val) = self.cells {
3932 start.push_attribute(("c", val.as_str()));
3933 }
3934 if let Some(ref val) = self.cp {
3935 {
3936 let s = val.to_string();
3937 start.push_attribute(("cp", s.as_str()));
3938 }
3939 }
3940 if let Some(ref val) = self.r#in {
3941 {
3942 let s = val.to_string();
3943 start.push_attribute(("in", s.as_str()));
3944 }
3945 }
3946 if let Some(ref val) = self.bc {
3947 {
3948 let hex = encode_hex(val);
3949 start.push_attribute(("bc", hex.as_str()));
3950 }
3951 }
3952 if let Some(ref val) = self.fc {
3953 {
3954 let hex = encode_hex(val);
3955 start.push_attribute(("fc", hex.as_str()));
3956 }
3957 }
3958 if let Some(ref val) = self.i {
3959 start.push_attribute(("i", if *val { "1" } else { "0" }));
3960 }
3961 if let Some(ref val) = self.un {
3962 start.push_attribute(("un", if *val { "1" } else { "0" }));
3963 }
3964 if let Some(ref val) = self.st {
3965 start.push_attribute(("st", if *val { "1" } else { "0" }));
3966 }
3967 if let Some(ref val) = self.b {
3968 start.push_attribute(("b", if *val { "1" } else { "0" }));
3969 }
3970 #[cfg(feature = "extra-attrs")]
3971 for (key, value) in &self.extra_attrs {
3972 start.push_attribute((key.as_str(), value.as_str()));
3973 }
3974 start
3975 }
3976
3977 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
3978 #[cfg(feature = "extra-children")]
3979 let mut extra_iter = self.extra_children.iter().peekable();
3980 #[cfg(feature = "extra-children")]
3981 let mut emit_idx: usize = 0;
3982 #[cfg(feature = "extra-children")]
3983 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
3984 extra_iter
3985 .next()
3986 .unwrap()
3987 .node
3988 .write_to(writer)
3989 .map_err(SerializeError::from)?;
3990 }
3991 if let Some(ref val) = self.tpls {
3992 val.write_element("tpls", writer)?;
3993 }
3994 #[cfg(feature = "extra-children")]
3995 {
3996 emit_idx += 1;
3997 }
3998 for item in &self.x {
3999 #[cfg(feature = "extra-children")]
4000 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4001 extra_iter
4002 .next()
4003 .unwrap()
4004 .node
4005 .write_to(writer)
4006 .map_err(SerializeError::from)?;
4007 }
4008 item.write_element("x", writer)?;
4009 #[cfg(feature = "extra-children")]
4010 {
4011 emit_idx += 1;
4012 }
4013 }
4014 #[cfg(feature = "extra-children")]
4015 for extra in extra_iter {
4016 extra.node.write_to(writer).map_err(SerializeError::from)?;
4017 }
4018 Ok(())
4019 }
4020
4021 fn is_empty_element(&self) -> bool {
4022 if self.tpls.is_some() {
4023 return false;
4024 }
4025 if !self.x.is_empty() {
4026 return false;
4027 }
4028 #[cfg(feature = "extra-children")]
4029 if !self.extra_children.is_empty() {
4030 return false;
4031 }
4032 true
4033 }
4034}
4035
4036impl ToXml for CTString {
4037 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
4038 #[allow(unused_mut)]
4039 let mut start = start;
4040 {
4041 let val = &self.value;
4042 start.push_attribute(("v", val.as_str()));
4043 }
4044 if let Some(ref val) = self.u {
4045 start.push_attribute(("u", if *val { "1" } else { "0" }));
4046 }
4047 if let Some(ref val) = self.formula {
4048 start.push_attribute(("f", if *val { "1" } else { "0" }));
4049 }
4050 if let Some(ref val) = self.cells {
4051 start.push_attribute(("c", val.as_str()));
4052 }
4053 if let Some(ref val) = self.cp {
4054 {
4055 let s = val.to_string();
4056 start.push_attribute(("cp", s.as_str()));
4057 }
4058 }
4059 if let Some(ref val) = self.r#in {
4060 {
4061 let s = val.to_string();
4062 start.push_attribute(("in", s.as_str()));
4063 }
4064 }
4065 if let Some(ref val) = self.bc {
4066 {
4067 let hex = encode_hex(val);
4068 start.push_attribute(("bc", hex.as_str()));
4069 }
4070 }
4071 if let Some(ref val) = self.fc {
4072 {
4073 let hex = encode_hex(val);
4074 start.push_attribute(("fc", hex.as_str()));
4075 }
4076 }
4077 if let Some(ref val) = self.i {
4078 start.push_attribute(("i", if *val { "1" } else { "0" }));
4079 }
4080 if let Some(ref val) = self.un {
4081 start.push_attribute(("un", if *val { "1" } else { "0" }));
4082 }
4083 if let Some(ref val) = self.st {
4084 start.push_attribute(("st", if *val { "1" } else { "0" }));
4085 }
4086 if let Some(ref val) = self.b {
4087 start.push_attribute(("b", if *val { "1" } else { "0" }));
4088 }
4089 #[cfg(feature = "extra-attrs")]
4090 for (key, value) in &self.extra_attrs {
4091 start.push_attribute((key.as_str(), value.as_str()));
4092 }
4093 start
4094 }
4095
4096 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
4097 #[cfg(feature = "extra-children")]
4098 let mut extra_iter = self.extra_children.iter().peekable();
4099 #[cfg(feature = "extra-children")]
4100 let mut emit_idx: usize = 0;
4101 for item in &self.tpls {
4102 #[cfg(feature = "extra-children")]
4103 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4104 extra_iter
4105 .next()
4106 .unwrap()
4107 .node
4108 .write_to(writer)
4109 .map_err(SerializeError::from)?;
4110 }
4111 item.write_element("tpls", writer)?;
4112 #[cfg(feature = "extra-children")]
4113 {
4114 emit_idx += 1;
4115 }
4116 }
4117 for item in &self.x {
4118 #[cfg(feature = "extra-children")]
4119 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4120 extra_iter
4121 .next()
4122 .unwrap()
4123 .node
4124 .write_to(writer)
4125 .map_err(SerializeError::from)?;
4126 }
4127 item.write_element("x", writer)?;
4128 #[cfg(feature = "extra-children")]
4129 {
4130 emit_idx += 1;
4131 }
4132 }
4133 #[cfg(feature = "extra-children")]
4134 for extra in extra_iter {
4135 extra.node.write_to(writer).map_err(SerializeError::from)?;
4136 }
4137 Ok(())
4138 }
4139
4140 fn is_empty_element(&self) -> bool {
4141 if !self.tpls.is_empty() {
4142 return false;
4143 }
4144 if !self.x.is_empty() {
4145 return false;
4146 }
4147 #[cfg(feature = "extra-children")]
4148 if !self.extra_children.is_empty() {
4149 return false;
4150 }
4151 true
4152 }
4153}
4154
4155impl ToXml for CTDateTime {
4156 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
4157 #[allow(unused_mut)]
4158 let mut start = start;
4159 {
4160 let val = &self.value;
4161 start.push_attribute(("v", val.as_str()));
4162 }
4163 if let Some(ref val) = self.u {
4164 start.push_attribute(("u", if *val { "1" } else { "0" }));
4165 }
4166 if let Some(ref val) = self.formula {
4167 start.push_attribute(("f", if *val { "1" } else { "0" }));
4168 }
4169 if let Some(ref val) = self.cells {
4170 start.push_attribute(("c", val.as_str()));
4171 }
4172 if let Some(ref val) = self.cp {
4173 {
4174 let s = val.to_string();
4175 start.push_attribute(("cp", s.as_str()));
4176 }
4177 }
4178 #[cfg(feature = "extra-attrs")]
4179 for (key, value) in &self.extra_attrs {
4180 start.push_attribute((key.as_str(), value.as_str()));
4181 }
4182 start
4183 }
4184
4185 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
4186 #[cfg(feature = "extra-children")]
4187 let mut extra_iter = self.extra_children.iter().peekable();
4188 #[cfg(feature = "extra-children")]
4189 let mut emit_idx: usize = 0;
4190 for item in &self.x {
4191 #[cfg(feature = "extra-children")]
4192 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4193 extra_iter
4194 .next()
4195 .unwrap()
4196 .node
4197 .write_to(writer)
4198 .map_err(SerializeError::from)?;
4199 }
4200 item.write_element("x", writer)?;
4201 #[cfg(feature = "extra-children")]
4202 {
4203 emit_idx += 1;
4204 }
4205 }
4206 #[cfg(feature = "extra-children")]
4207 for extra in extra_iter {
4208 extra.node.write_to(writer).map_err(SerializeError::from)?;
4209 }
4210 Ok(())
4211 }
4212
4213 fn is_empty_element(&self) -> bool {
4214 if !self.x.is_empty() {
4215 return false;
4216 }
4217 #[cfg(feature = "extra-children")]
4218 if !self.extra_children.is_empty() {
4219 return false;
4220 }
4221 true
4222 }
4223}
4224
4225impl ToXml for FieldGroup {
4226 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
4227 #[allow(unused_mut)]
4228 let mut start = start;
4229 if let Some(ref val) = self.par {
4230 {
4231 let s = val.to_string();
4232 start.push_attribute(("par", s.as_str()));
4233 }
4234 }
4235 if let Some(ref val) = self.base {
4236 {
4237 let s = val.to_string();
4238 start.push_attribute(("base", s.as_str()));
4239 }
4240 }
4241 #[cfg(feature = "extra-attrs")]
4242 for (key, value) in &self.extra_attrs {
4243 start.push_attribute((key.as_str(), value.as_str()));
4244 }
4245 start
4246 }
4247
4248 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
4249 #[cfg(feature = "extra-children")]
4250 let mut extra_iter = self.extra_children.iter().peekable();
4251 #[cfg(feature = "extra-children")]
4252 let mut emit_idx: usize = 0;
4253 #[cfg(feature = "extra-children")]
4254 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4255 extra_iter
4256 .next()
4257 .unwrap()
4258 .node
4259 .write_to(writer)
4260 .map_err(SerializeError::from)?;
4261 }
4262 if let Some(ref val) = self.range_pr {
4263 val.write_element("rangePr", writer)?;
4264 }
4265 #[cfg(feature = "extra-children")]
4266 {
4267 emit_idx += 1;
4268 }
4269 #[cfg(feature = "extra-children")]
4270 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4271 extra_iter
4272 .next()
4273 .unwrap()
4274 .node
4275 .write_to(writer)
4276 .map_err(SerializeError::from)?;
4277 }
4278 if let Some(ref val) = self.discrete_pr {
4279 val.write_element("discretePr", writer)?;
4280 }
4281 #[cfg(feature = "extra-children")]
4282 {
4283 emit_idx += 1;
4284 }
4285 #[cfg(feature = "extra-children")]
4286 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4287 extra_iter
4288 .next()
4289 .unwrap()
4290 .node
4291 .write_to(writer)
4292 .map_err(SerializeError::from)?;
4293 }
4294 if let Some(ref val) = self.group_items {
4295 val.write_element("groupItems", writer)?;
4296 }
4297 #[cfg(feature = "extra-children")]
4298 {
4299 emit_idx += 1;
4300 }
4301 #[cfg(feature = "extra-children")]
4302 for extra in extra_iter {
4303 extra.node.write_to(writer).map_err(SerializeError::from)?;
4304 }
4305 Ok(())
4306 }
4307
4308 fn is_empty_element(&self) -> bool {
4309 if self.range_pr.is_some() {
4310 return false;
4311 }
4312 if self.discrete_pr.is_some() {
4313 return false;
4314 }
4315 if self.group_items.is_some() {
4316 return false;
4317 }
4318 #[cfg(feature = "extra-children")]
4319 if !self.extra_children.is_empty() {
4320 return false;
4321 }
4322 true
4323 }
4324}
4325
4326impl ToXml for CTRangePr {
4327 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
4328 #[allow(unused_mut)]
4329 let mut start = start;
4330 if let Some(ref val) = self.auto_start {
4331 start.push_attribute(("autoStart", if *val { "1" } else { "0" }));
4332 }
4333 if let Some(ref val) = self.auto_end {
4334 start.push_attribute(("autoEnd", if *val { "1" } else { "0" }));
4335 }
4336 if let Some(ref val) = self.group_by {
4337 {
4338 let s = val.to_string();
4339 start.push_attribute(("groupBy", s.as_str()));
4340 }
4341 }
4342 if let Some(ref val) = self.start_num {
4343 {
4344 let s = val.to_string();
4345 start.push_attribute(("startNum", s.as_str()));
4346 }
4347 }
4348 if let Some(ref val) = self.end_num {
4349 {
4350 let s = val.to_string();
4351 start.push_attribute(("endNum", s.as_str()));
4352 }
4353 }
4354 if let Some(ref val) = self.start_date {
4355 start.push_attribute(("startDate", val.as_str()));
4356 }
4357 if let Some(ref val) = self.end_date {
4358 start.push_attribute(("endDate", val.as_str()));
4359 }
4360 if let Some(ref val) = self.group_interval {
4361 {
4362 let s = val.to_string();
4363 start.push_attribute(("groupInterval", s.as_str()));
4364 }
4365 }
4366 #[cfg(feature = "extra-attrs")]
4367 for (key, value) in &self.extra_attrs {
4368 start.push_attribute((key.as_str(), value.as_str()));
4369 }
4370 start
4371 }
4372
4373 fn is_empty_element(&self) -> bool {
4374 true
4375 }
4376}
4377
4378impl ToXml for CTDiscretePr {
4379 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
4380 #[allow(unused_mut)]
4381 let mut start = start;
4382 if let Some(ref val) = self.count {
4383 {
4384 let s = val.to_string();
4385 start.push_attribute(("count", s.as_str()));
4386 }
4387 }
4388 #[cfg(feature = "extra-attrs")]
4389 for (key, value) in &self.extra_attrs {
4390 start.push_attribute((key.as_str(), value.as_str()));
4391 }
4392 start
4393 }
4394
4395 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
4396 #[cfg(feature = "extra-children")]
4397 let mut extra_iter = self.extra_children.iter().peekable();
4398 #[cfg(feature = "extra-children")]
4399 let mut emit_idx: usize = 0;
4400 for item in &self.x {
4401 #[cfg(feature = "extra-children")]
4402 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4403 extra_iter
4404 .next()
4405 .unwrap()
4406 .node
4407 .write_to(writer)
4408 .map_err(SerializeError::from)?;
4409 }
4410 item.write_element("x", writer)?;
4411 #[cfg(feature = "extra-children")]
4412 {
4413 emit_idx += 1;
4414 }
4415 }
4416 #[cfg(feature = "extra-children")]
4417 for extra in extra_iter {
4418 extra.node.write_to(writer).map_err(SerializeError::from)?;
4419 }
4420 Ok(())
4421 }
4422
4423 fn is_empty_element(&self) -> bool {
4424 if !self.x.is_empty() {
4425 return false;
4426 }
4427 #[cfg(feature = "extra-children")]
4428 if !self.extra_children.is_empty() {
4429 return false;
4430 }
4431 true
4432 }
4433}
4434
4435impl ToXml for GroupItems {
4436 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
4437 #[allow(unused_mut)]
4438 let mut start = start;
4439 if let Some(ref val) = self.count {
4440 {
4441 let s = val.to_string();
4442 start.push_attribute(("count", s.as_str()));
4443 }
4444 }
4445 #[cfg(feature = "extra-attrs")]
4446 for (key, value) in &self.extra_attrs {
4447 start.push_attribute((key.as_str(), value.as_str()));
4448 }
4449 start
4450 }
4451
4452 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
4453 #[cfg(feature = "extra-children")]
4454 let mut extra_iter = self.extra_children.iter().peekable();
4455 #[cfg(feature = "extra-children")]
4456 let mut emit_idx: usize = 0;
4457 for item in &self.m {
4458 #[cfg(feature = "extra-children")]
4459 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4460 extra_iter
4461 .next()
4462 .unwrap()
4463 .node
4464 .write_to(writer)
4465 .map_err(SerializeError::from)?;
4466 }
4467 item.write_element("m", writer)?;
4468 #[cfg(feature = "extra-children")]
4469 {
4470 emit_idx += 1;
4471 }
4472 }
4473 for item in &self.n {
4474 #[cfg(feature = "extra-children")]
4475 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4476 extra_iter
4477 .next()
4478 .unwrap()
4479 .node
4480 .write_to(writer)
4481 .map_err(SerializeError::from)?;
4482 }
4483 item.write_element("n", writer)?;
4484 #[cfg(feature = "extra-children")]
4485 {
4486 emit_idx += 1;
4487 }
4488 }
4489 for item in &self.b {
4490 #[cfg(feature = "extra-children")]
4491 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4492 extra_iter
4493 .next()
4494 .unwrap()
4495 .node
4496 .write_to(writer)
4497 .map_err(SerializeError::from)?;
4498 }
4499 item.write_element("b", writer)?;
4500 #[cfg(feature = "extra-children")]
4501 {
4502 emit_idx += 1;
4503 }
4504 }
4505 for item in &self.e {
4506 #[cfg(feature = "extra-children")]
4507 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4508 extra_iter
4509 .next()
4510 .unwrap()
4511 .node
4512 .write_to(writer)
4513 .map_err(SerializeError::from)?;
4514 }
4515 item.write_element("e", writer)?;
4516 #[cfg(feature = "extra-children")]
4517 {
4518 emit_idx += 1;
4519 }
4520 }
4521 for item in &self.style_index {
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 item.write_element("s", writer)?;
4532 #[cfg(feature = "extra-children")]
4533 {
4534 emit_idx += 1;
4535 }
4536 }
4537 for item in &self.d {
4538 #[cfg(feature = "extra-children")]
4539 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4540 extra_iter
4541 .next()
4542 .unwrap()
4543 .node
4544 .write_to(writer)
4545 .map_err(SerializeError::from)?;
4546 }
4547 item.write_element("d", writer)?;
4548 #[cfg(feature = "extra-children")]
4549 {
4550 emit_idx += 1;
4551 }
4552 }
4553 #[cfg(feature = "extra-children")]
4554 for extra in extra_iter {
4555 extra.node.write_to(writer).map_err(SerializeError::from)?;
4556 }
4557 Ok(())
4558 }
4559
4560 fn is_empty_element(&self) -> bool {
4561 if !self.m.is_empty() {
4562 return false;
4563 }
4564 if !self.n.is_empty() {
4565 return false;
4566 }
4567 if !self.b.is_empty() {
4568 return false;
4569 }
4570 if !self.e.is_empty() {
4571 return false;
4572 }
4573 if !self.style_index.is_empty() {
4574 return false;
4575 }
4576 if !self.d.is_empty() {
4577 return false;
4578 }
4579 #[cfg(feature = "extra-children")]
4580 if !self.extra_children.is_empty() {
4581 return false;
4582 }
4583 true
4584 }
4585}
4586
4587impl ToXml for PivotCacheRecords {
4588 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
4589 #[allow(unused_mut)]
4590 let mut start = start;
4591 if let Some(ref val) = self.count {
4592 {
4593 let s = val.to_string();
4594 start.push_attribute(("count", s.as_str()));
4595 }
4596 }
4597 #[cfg(feature = "extra-attrs")]
4598 for (key, value) in &self.extra_attrs {
4599 start.push_attribute((key.as_str(), value.as_str()));
4600 }
4601 start
4602 }
4603
4604 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
4605 #[cfg(feature = "extra-children")]
4606 let mut extra_iter = self.extra_children.iter().peekable();
4607 #[cfg(feature = "extra-children")]
4608 let mut emit_idx: usize = 0;
4609 for item in &self.reference {
4610 #[cfg(feature = "extra-children")]
4611 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4612 extra_iter
4613 .next()
4614 .unwrap()
4615 .node
4616 .write_to(writer)
4617 .map_err(SerializeError::from)?;
4618 }
4619 item.write_element("r", writer)?;
4620 #[cfg(feature = "extra-children")]
4621 {
4622 emit_idx += 1;
4623 }
4624 }
4625 #[cfg(feature = "extra-children")]
4626 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4627 extra_iter
4628 .next()
4629 .unwrap()
4630 .node
4631 .write_to(writer)
4632 .map_err(SerializeError::from)?;
4633 }
4634 if let Some(ref val) = self.extension_list {
4635 val.write_element("extLst", writer)?;
4636 }
4637 #[cfg(feature = "extra-children")]
4638 {
4639 emit_idx += 1;
4640 }
4641 #[cfg(feature = "extra-children")]
4642 for extra in extra_iter {
4643 extra.node.write_to(writer).map_err(SerializeError::from)?;
4644 }
4645 Ok(())
4646 }
4647
4648 fn is_empty_element(&self) -> bool {
4649 if !self.reference.is_empty() {
4650 return false;
4651 }
4652 if self.extension_list.is_some() {
4653 return false;
4654 }
4655 #[cfg(feature = "extra-children")]
4656 if !self.extra_children.is_empty() {
4657 return false;
4658 }
4659 true
4660 }
4661}
4662
4663impl ToXml for CTRecord {
4664 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
4665 #[cfg(feature = "extra-children")]
4666 let mut extra_iter = self.extra_children.iter().peekable();
4667 #[cfg(feature = "extra-children")]
4668 let mut emit_idx: usize = 0;
4669 for item in &self.m {
4670 #[cfg(feature = "extra-children")]
4671 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4672 extra_iter
4673 .next()
4674 .unwrap()
4675 .node
4676 .write_to(writer)
4677 .map_err(SerializeError::from)?;
4678 }
4679 item.write_element("m", writer)?;
4680 #[cfg(feature = "extra-children")]
4681 {
4682 emit_idx += 1;
4683 }
4684 }
4685 for item in &self.n {
4686 #[cfg(feature = "extra-children")]
4687 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4688 extra_iter
4689 .next()
4690 .unwrap()
4691 .node
4692 .write_to(writer)
4693 .map_err(SerializeError::from)?;
4694 }
4695 item.write_element("n", writer)?;
4696 #[cfg(feature = "extra-children")]
4697 {
4698 emit_idx += 1;
4699 }
4700 }
4701 for item in &self.b {
4702 #[cfg(feature = "extra-children")]
4703 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4704 extra_iter
4705 .next()
4706 .unwrap()
4707 .node
4708 .write_to(writer)
4709 .map_err(SerializeError::from)?;
4710 }
4711 item.write_element("b", writer)?;
4712 #[cfg(feature = "extra-children")]
4713 {
4714 emit_idx += 1;
4715 }
4716 }
4717 for item in &self.e {
4718 #[cfg(feature = "extra-children")]
4719 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4720 extra_iter
4721 .next()
4722 .unwrap()
4723 .node
4724 .write_to(writer)
4725 .map_err(SerializeError::from)?;
4726 }
4727 item.write_element("e", writer)?;
4728 #[cfg(feature = "extra-children")]
4729 {
4730 emit_idx += 1;
4731 }
4732 }
4733 for item in &self.style_index {
4734 #[cfg(feature = "extra-children")]
4735 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4736 extra_iter
4737 .next()
4738 .unwrap()
4739 .node
4740 .write_to(writer)
4741 .map_err(SerializeError::from)?;
4742 }
4743 item.write_element("s", writer)?;
4744 #[cfg(feature = "extra-children")]
4745 {
4746 emit_idx += 1;
4747 }
4748 }
4749 for item in &self.d {
4750 #[cfg(feature = "extra-children")]
4751 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4752 extra_iter
4753 .next()
4754 .unwrap()
4755 .node
4756 .write_to(writer)
4757 .map_err(SerializeError::from)?;
4758 }
4759 item.write_element("d", writer)?;
4760 #[cfg(feature = "extra-children")]
4761 {
4762 emit_idx += 1;
4763 }
4764 }
4765 for item in &self.x {
4766 #[cfg(feature = "extra-children")]
4767 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4768 extra_iter
4769 .next()
4770 .unwrap()
4771 .node
4772 .write_to(writer)
4773 .map_err(SerializeError::from)?;
4774 }
4775 item.write_element("x", writer)?;
4776 #[cfg(feature = "extra-children")]
4777 {
4778 emit_idx += 1;
4779 }
4780 }
4781 #[cfg(feature = "extra-children")]
4782 for extra in extra_iter {
4783 extra.node.write_to(writer).map_err(SerializeError::from)?;
4784 }
4785 Ok(())
4786 }
4787
4788 fn is_empty_element(&self) -> bool {
4789 if !self.m.is_empty() {
4790 return false;
4791 }
4792 if !self.n.is_empty() {
4793 return false;
4794 }
4795 if !self.b.is_empty() {
4796 return false;
4797 }
4798 if !self.e.is_empty() {
4799 return false;
4800 }
4801 if !self.style_index.is_empty() {
4802 return false;
4803 }
4804 if !self.d.is_empty() {
4805 return false;
4806 }
4807 if !self.x.is_empty() {
4808 return false;
4809 }
4810 #[cfg(feature = "extra-children")]
4811 if !self.extra_children.is_empty() {
4812 return false;
4813 }
4814 true
4815 }
4816}
4817
4818impl ToXml for CTPCDKPIs {
4819 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
4820 #[allow(unused_mut)]
4821 let mut start = start;
4822 if let Some(ref val) = self.count {
4823 {
4824 let s = val.to_string();
4825 start.push_attribute(("count", s.as_str()));
4826 }
4827 }
4828 #[cfg(feature = "extra-attrs")]
4829 for (key, value) in &self.extra_attrs {
4830 start.push_attribute((key.as_str(), value.as_str()));
4831 }
4832 start
4833 }
4834
4835 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
4836 #[cfg(feature = "extra-children")]
4837 let mut extra_iter = self.extra_children.iter().peekable();
4838 #[cfg(feature = "extra-children")]
4839 let mut emit_idx: usize = 0;
4840 for item in &self.kpi {
4841 #[cfg(feature = "extra-children")]
4842 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4843 extra_iter
4844 .next()
4845 .unwrap()
4846 .node
4847 .write_to(writer)
4848 .map_err(SerializeError::from)?;
4849 }
4850 item.write_element("kpi", writer)?;
4851 #[cfg(feature = "extra-children")]
4852 {
4853 emit_idx += 1;
4854 }
4855 }
4856 #[cfg(feature = "extra-children")]
4857 for extra in extra_iter {
4858 extra.node.write_to(writer).map_err(SerializeError::from)?;
4859 }
4860 Ok(())
4861 }
4862
4863 fn is_empty_element(&self) -> bool {
4864 if !self.kpi.is_empty() {
4865 return false;
4866 }
4867 #[cfg(feature = "extra-children")]
4868 if !self.extra_children.is_empty() {
4869 return false;
4870 }
4871 true
4872 }
4873}
4874
4875impl ToXml for CTPCDKPI {
4876 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
4877 #[allow(unused_mut)]
4878 let mut start = start;
4879 {
4880 let val = &self.unique_name;
4881 start.push_attribute(("uniqueName", val.as_str()));
4882 }
4883 if let Some(ref val) = self.caption {
4884 start.push_attribute(("caption", val.as_str()));
4885 }
4886 if let Some(ref val) = self.display_folder {
4887 start.push_attribute(("displayFolder", val.as_str()));
4888 }
4889 if let Some(ref val) = self.measure_group {
4890 start.push_attribute(("measureGroup", val.as_str()));
4891 }
4892 if let Some(ref val) = self.parent {
4893 start.push_attribute(("parent", val.as_str()));
4894 }
4895 {
4896 let val = &self.value;
4897 start.push_attribute(("value", val.as_str()));
4898 }
4899 if let Some(ref val) = self.goal {
4900 start.push_attribute(("goal", val.as_str()));
4901 }
4902 if let Some(ref val) = self.status {
4903 start.push_attribute(("status", val.as_str()));
4904 }
4905 if let Some(ref val) = self.trend {
4906 start.push_attribute(("trend", val.as_str()));
4907 }
4908 if let Some(ref val) = self.weight {
4909 start.push_attribute(("weight", val.as_str()));
4910 }
4911 if let Some(ref val) = self.time {
4912 start.push_attribute(("time", val.as_str()));
4913 }
4914 #[cfg(feature = "extra-attrs")]
4915 for (key, value) in &self.extra_attrs {
4916 start.push_attribute((key.as_str(), value.as_str()));
4917 }
4918 start
4919 }
4920
4921 fn is_empty_element(&self) -> bool {
4922 true
4923 }
4924}
4925
4926impl ToXml for CTCacheHierarchies {
4927 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
4928 #[allow(unused_mut)]
4929 let mut start = start;
4930 if let Some(ref val) = self.count {
4931 {
4932 let s = val.to_string();
4933 start.push_attribute(("count", s.as_str()));
4934 }
4935 }
4936 #[cfg(feature = "extra-attrs")]
4937 for (key, value) in &self.extra_attrs {
4938 start.push_attribute((key.as_str(), value.as_str()));
4939 }
4940 start
4941 }
4942
4943 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
4944 #[cfg(feature = "extra-children")]
4945 let mut extra_iter = self.extra_children.iter().peekable();
4946 #[cfg(feature = "extra-children")]
4947 let mut emit_idx: usize = 0;
4948 for item in &self.cache_hierarchy {
4949 #[cfg(feature = "extra-children")]
4950 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
4951 extra_iter
4952 .next()
4953 .unwrap()
4954 .node
4955 .write_to(writer)
4956 .map_err(SerializeError::from)?;
4957 }
4958 item.write_element("cacheHierarchy", writer)?;
4959 #[cfg(feature = "extra-children")]
4960 {
4961 emit_idx += 1;
4962 }
4963 }
4964 #[cfg(feature = "extra-children")]
4965 for extra in extra_iter {
4966 extra.node.write_to(writer).map_err(SerializeError::from)?;
4967 }
4968 Ok(())
4969 }
4970
4971 fn is_empty_element(&self) -> bool {
4972 if !self.cache_hierarchy.is_empty() {
4973 return false;
4974 }
4975 #[cfg(feature = "extra-children")]
4976 if !self.extra_children.is_empty() {
4977 return false;
4978 }
4979 true
4980 }
4981}
4982
4983impl ToXml for CTCacheHierarchy {
4984 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
4985 #[allow(unused_mut)]
4986 let mut start = start;
4987 {
4988 let val = &self.unique_name;
4989 start.push_attribute(("uniqueName", val.as_str()));
4990 }
4991 if let Some(ref val) = self.caption {
4992 start.push_attribute(("caption", val.as_str()));
4993 }
4994 if let Some(ref val) = self.measure {
4995 start.push_attribute(("measure", if *val { "1" } else { "0" }));
4996 }
4997 if let Some(ref val) = self.set {
4998 start.push_attribute(("set", if *val { "1" } else { "0" }));
4999 }
5000 if let Some(ref val) = self.parent_set {
5001 {
5002 let s = val.to_string();
5003 start.push_attribute(("parentSet", s.as_str()));
5004 }
5005 }
5006 if let Some(ref val) = self.icon_set {
5007 {
5008 let s = val.to_string();
5009 start.push_attribute(("iconSet", s.as_str()));
5010 }
5011 }
5012 if let Some(ref val) = self.attribute {
5013 start.push_attribute(("attribute", if *val { "1" } else { "0" }));
5014 }
5015 if let Some(ref val) = self.time {
5016 start.push_attribute(("time", if *val { "1" } else { "0" }));
5017 }
5018 if let Some(ref val) = self.key_attribute {
5019 start.push_attribute(("keyAttribute", if *val { "1" } else { "0" }));
5020 }
5021 if let Some(ref val) = self.default_member_unique_name {
5022 start.push_attribute(("defaultMemberUniqueName", val.as_str()));
5023 }
5024 if let Some(ref val) = self.all_unique_name {
5025 start.push_attribute(("allUniqueName", val.as_str()));
5026 }
5027 if let Some(ref val) = self.all_caption {
5028 start.push_attribute(("allCaption", val.as_str()));
5029 }
5030 if let Some(ref val) = self.dimension_unique_name {
5031 start.push_attribute(("dimensionUniqueName", val.as_str()));
5032 }
5033 if let Some(ref val) = self.display_folder {
5034 start.push_attribute(("displayFolder", val.as_str()));
5035 }
5036 if let Some(ref val) = self.measure_group {
5037 start.push_attribute(("measureGroup", val.as_str()));
5038 }
5039 if let Some(ref val) = self.measures {
5040 start.push_attribute(("measures", if *val { "1" } else { "0" }));
5041 }
5042 {
5043 let val = &self.count;
5044 {
5045 let s = val.to_string();
5046 start.push_attribute(("count", s.as_str()));
5047 }
5048 }
5049 if let Some(ref val) = self.one_field {
5050 start.push_attribute(("oneField", if *val { "1" } else { "0" }));
5051 }
5052 if let Some(ref val) = self.member_value_datatype {
5053 {
5054 let s = val.to_string();
5055 start.push_attribute(("memberValueDatatype", s.as_str()));
5056 }
5057 }
5058 if let Some(ref val) = self.unbalanced {
5059 start.push_attribute(("unbalanced", if *val { "1" } else { "0" }));
5060 }
5061 if let Some(ref val) = self.unbalanced_group {
5062 start.push_attribute(("unbalancedGroup", if *val { "1" } else { "0" }));
5063 }
5064 if let Some(ref val) = self.hidden {
5065 start.push_attribute(("hidden", if *val { "1" } else { "0" }));
5066 }
5067 #[cfg(feature = "extra-attrs")]
5068 for (key, value) in &self.extra_attrs {
5069 start.push_attribute((key.as_str(), value.as_str()));
5070 }
5071 start
5072 }
5073
5074 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
5075 #[cfg(feature = "extra-children")]
5076 let mut extra_iter = self.extra_children.iter().peekable();
5077 #[cfg(feature = "extra-children")]
5078 let mut emit_idx: usize = 0;
5079 #[cfg(feature = "extra-children")]
5080 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5081 extra_iter
5082 .next()
5083 .unwrap()
5084 .node
5085 .write_to(writer)
5086 .map_err(SerializeError::from)?;
5087 }
5088 if let Some(ref val) = self.fields_usage {
5089 val.write_element("fieldsUsage", writer)?;
5090 }
5091 #[cfg(feature = "extra-children")]
5092 {
5093 emit_idx += 1;
5094 }
5095 #[cfg(feature = "extra-children")]
5096 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5097 extra_iter
5098 .next()
5099 .unwrap()
5100 .node
5101 .write_to(writer)
5102 .map_err(SerializeError::from)?;
5103 }
5104 if let Some(ref val) = self.group_levels {
5105 val.write_element("groupLevels", writer)?;
5106 }
5107 #[cfg(feature = "extra-children")]
5108 {
5109 emit_idx += 1;
5110 }
5111 #[cfg(feature = "extra-children")]
5112 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5113 extra_iter
5114 .next()
5115 .unwrap()
5116 .node
5117 .write_to(writer)
5118 .map_err(SerializeError::from)?;
5119 }
5120 if let Some(ref val) = self.extension_list {
5121 val.write_element("extLst", writer)?;
5122 }
5123 #[cfg(feature = "extra-children")]
5124 {
5125 emit_idx += 1;
5126 }
5127 #[cfg(feature = "extra-children")]
5128 for extra in extra_iter {
5129 extra.node.write_to(writer).map_err(SerializeError::from)?;
5130 }
5131 Ok(())
5132 }
5133
5134 fn is_empty_element(&self) -> bool {
5135 if self.fields_usage.is_some() {
5136 return false;
5137 }
5138 if self.group_levels.is_some() {
5139 return false;
5140 }
5141 if self.extension_list.is_some() {
5142 return false;
5143 }
5144 #[cfg(feature = "extra-children")]
5145 if !self.extra_children.is_empty() {
5146 return false;
5147 }
5148 true
5149 }
5150}
5151
5152impl ToXml for CTFieldsUsage {
5153 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5154 #[allow(unused_mut)]
5155 let mut start = start;
5156 if let Some(ref val) = self.count {
5157 {
5158 let s = val.to_string();
5159 start.push_attribute(("count", s.as_str()));
5160 }
5161 }
5162 #[cfg(feature = "extra-attrs")]
5163 for (key, value) in &self.extra_attrs {
5164 start.push_attribute((key.as_str(), value.as_str()));
5165 }
5166 start
5167 }
5168
5169 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
5170 #[cfg(feature = "extra-children")]
5171 let mut extra_iter = self.extra_children.iter().peekable();
5172 #[cfg(feature = "extra-children")]
5173 let mut emit_idx: usize = 0;
5174 for item in &self.field_usage {
5175 #[cfg(feature = "extra-children")]
5176 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5177 extra_iter
5178 .next()
5179 .unwrap()
5180 .node
5181 .write_to(writer)
5182 .map_err(SerializeError::from)?;
5183 }
5184 item.write_element("fieldUsage", writer)?;
5185 #[cfg(feature = "extra-children")]
5186 {
5187 emit_idx += 1;
5188 }
5189 }
5190 #[cfg(feature = "extra-children")]
5191 for extra in extra_iter {
5192 extra.node.write_to(writer).map_err(SerializeError::from)?;
5193 }
5194 Ok(())
5195 }
5196
5197 fn is_empty_element(&self) -> bool {
5198 if !self.field_usage.is_empty() {
5199 return false;
5200 }
5201 #[cfg(feature = "extra-children")]
5202 if !self.extra_children.is_empty() {
5203 return false;
5204 }
5205 true
5206 }
5207}
5208
5209impl ToXml for CTFieldUsage {
5210 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5211 #[allow(unused_mut)]
5212 let mut start = start;
5213 {
5214 let val = &self.x;
5215 {
5216 let s = val.to_string();
5217 start.push_attribute(("x", s.as_str()));
5218 }
5219 }
5220 #[cfg(feature = "extra-attrs")]
5221 for (key, value) in &self.extra_attrs {
5222 start.push_attribute((key.as_str(), value.as_str()));
5223 }
5224 start
5225 }
5226
5227 fn is_empty_element(&self) -> bool {
5228 true
5229 }
5230}
5231
5232impl ToXml for CTGroupLevels {
5233 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5234 #[allow(unused_mut)]
5235 let mut start = start;
5236 if let Some(ref val) = self.count {
5237 {
5238 let s = val.to_string();
5239 start.push_attribute(("count", s.as_str()));
5240 }
5241 }
5242 #[cfg(feature = "extra-attrs")]
5243 for (key, value) in &self.extra_attrs {
5244 start.push_attribute((key.as_str(), value.as_str()));
5245 }
5246 start
5247 }
5248
5249 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
5250 #[cfg(feature = "extra-children")]
5251 let mut extra_iter = self.extra_children.iter().peekable();
5252 #[cfg(feature = "extra-children")]
5253 let mut emit_idx: usize = 0;
5254 for item in &self.group_level {
5255 #[cfg(feature = "extra-children")]
5256 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5257 extra_iter
5258 .next()
5259 .unwrap()
5260 .node
5261 .write_to(writer)
5262 .map_err(SerializeError::from)?;
5263 }
5264 item.write_element("groupLevel", writer)?;
5265 #[cfg(feature = "extra-children")]
5266 {
5267 emit_idx += 1;
5268 }
5269 }
5270 #[cfg(feature = "extra-children")]
5271 for extra in extra_iter {
5272 extra.node.write_to(writer).map_err(SerializeError::from)?;
5273 }
5274 Ok(())
5275 }
5276
5277 fn is_empty_element(&self) -> bool {
5278 if !self.group_level.is_empty() {
5279 return false;
5280 }
5281 #[cfg(feature = "extra-children")]
5282 if !self.extra_children.is_empty() {
5283 return false;
5284 }
5285 true
5286 }
5287}
5288
5289impl ToXml for CTGroupLevel {
5290 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5291 #[allow(unused_mut)]
5292 let mut start = start;
5293 {
5294 let val = &self.unique_name;
5295 start.push_attribute(("uniqueName", val.as_str()));
5296 }
5297 {
5298 let val = &self.caption;
5299 start.push_attribute(("caption", val.as_str()));
5300 }
5301 if let Some(ref val) = self.user {
5302 start.push_attribute(("user", if *val { "1" } else { "0" }));
5303 }
5304 if let Some(ref val) = self.custom_roll_up {
5305 start.push_attribute(("customRollUp", if *val { "1" } else { "0" }));
5306 }
5307 #[cfg(feature = "extra-attrs")]
5308 for (key, value) in &self.extra_attrs {
5309 start.push_attribute((key.as_str(), value.as_str()));
5310 }
5311 start
5312 }
5313
5314 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
5315 #[cfg(feature = "extra-children")]
5316 let mut extra_iter = self.extra_children.iter().peekable();
5317 #[cfg(feature = "extra-children")]
5318 let mut emit_idx: usize = 0;
5319 #[cfg(feature = "extra-children")]
5320 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5321 extra_iter
5322 .next()
5323 .unwrap()
5324 .node
5325 .write_to(writer)
5326 .map_err(SerializeError::from)?;
5327 }
5328 if let Some(ref val) = self.groups {
5329 val.write_element("groups", writer)?;
5330 }
5331 #[cfg(feature = "extra-children")]
5332 {
5333 emit_idx += 1;
5334 }
5335 #[cfg(feature = "extra-children")]
5336 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5337 extra_iter
5338 .next()
5339 .unwrap()
5340 .node
5341 .write_to(writer)
5342 .map_err(SerializeError::from)?;
5343 }
5344 if let Some(ref val) = self.extension_list {
5345 val.write_element("extLst", writer)?;
5346 }
5347 #[cfg(feature = "extra-children")]
5348 {
5349 emit_idx += 1;
5350 }
5351 #[cfg(feature = "extra-children")]
5352 for extra in extra_iter {
5353 extra.node.write_to(writer).map_err(SerializeError::from)?;
5354 }
5355 Ok(())
5356 }
5357
5358 fn is_empty_element(&self) -> bool {
5359 if self.groups.is_some() {
5360 return false;
5361 }
5362 if self.extension_list.is_some() {
5363 return false;
5364 }
5365 #[cfg(feature = "extra-children")]
5366 if !self.extra_children.is_empty() {
5367 return false;
5368 }
5369 true
5370 }
5371}
5372
5373impl ToXml for CTGroups {
5374 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5375 #[allow(unused_mut)]
5376 let mut start = start;
5377 if let Some(ref val) = self.count {
5378 {
5379 let s = val.to_string();
5380 start.push_attribute(("count", s.as_str()));
5381 }
5382 }
5383 #[cfg(feature = "extra-attrs")]
5384 for (key, value) in &self.extra_attrs {
5385 start.push_attribute((key.as_str(), value.as_str()));
5386 }
5387 start
5388 }
5389
5390 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
5391 #[cfg(feature = "extra-children")]
5392 let mut extra_iter = self.extra_children.iter().peekable();
5393 #[cfg(feature = "extra-children")]
5394 let mut emit_idx: usize = 0;
5395 for item in &self.group {
5396 #[cfg(feature = "extra-children")]
5397 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5398 extra_iter
5399 .next()
5400 .unwrap()
5401 .node
5402 .write_to(writer)
5403 .map_err(SerializeError::from)?;
5404 }
5405 item.write_element("group", writer)?;
5406 #[cfg(feature = "extra-children")]
5407 {
5408 emit_idx += 1;
5409 }
5410 }
5411 #[cfg(feature = "extra-children")]
5412 for extra in extra_iter {
5413 extra.node.write_to(writer).map_err(SerializeError::from)?;
5414 }
5415 Ok(())
5416 }
5417
5418 fn is_empty_element(&self) -> bool {
5419 if !self.group.is_empty() {
5420 return false;
5421 }
5422 #[cfg(feature = "extra-children")]
5423 if !self.extra_children.is_empty() {
5424 return false;
5425 }
5426 true
5427 }
5428}
5429
5430impl ToXml for CTLevelGroup {
5431 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5432 #[allow(unused_mut)]
5433 let mut start = start;
5434 {
5435 let val = &self.name;
5436 start.push_attribute(("name", val.as_str()));
5437 }
5438 {
5439 let val = &self.unique_name;
5440 start.push_attribute(("uniqueName", val.as_str()));
5441 }
5442 {
5443 let val = &self.caption;
5444 start.push_attribute(("caption", val.as_str()));
5445 }
5446 if let Some(ref val) = self.unique_parent {
5447 start.push_attribute(("uniqueParent", val.as_str()));
5448 }
5449 if let Some(ref val) = self.id {
5450 {
5451 let s = val.to_string();
5452 start.push_attribute(("id", s.as_str()));
5453 }
5454 }
5455 #[cfg(feature = "extra-attrs")]
5456 for (key, value) in &self.extra_attrs {
5457 start.push_attribute((key.as_str(), value.as_str()));
5458 }
5459 start
5460 }
5461
5462 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
5463 #[cfg(feature = "extra-children")]
5464 let mut extra_iter = self.extra_children.iter().peekable();
5465 #[cfg(feature = "extra-children")]
5466 let mut emit_idx: usize = 0;
5467 #[cfg(feature = "extra-children")]
5468 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5469 extra_iter
5470 .next()
5471 .unwrap()
5472 .node
5473 .write_to(writer)
5474 .map_err(SerializeError::from)?;
5475 }
5476 {
5477 let val = &self.group_members;
5478 val.write_element("groupMembers", writer)?;
5479 }
5480 #[cfg(feature = "extra-children")]
5481 {
5482 emit_idx += 1;
5483 }
5484 #[cfg(feature = "extra-children")]
5485 for extra in extra_iter {
5486 extra.node.write_to(writer).map_err(SerializeError::from)?;
5487 }
5488 Ok(())
5489 }
5490
5491 fn is_empty_element(&self) -> bool {
5492 false
5493 }
5494}
5495
5496impl ToXml for CTGroupMembers {
5497 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5498 #[allow(unused_mut)]
5499 let mut start = start;
5500 if let Some(ref val) = self.count {
5501 {
5502 let s = val.to_string();
5503 start.push_attribute(("count", s.as_str()));
5504 }
5505 }
5506 #[cfg(feature = "extra-attrs")]
5507 for (key, value) in &self.extra_attrs {
5508 start.push_attribute((key.as_str(), value.as_str()));
5509 }
5510 start
5511 }
5512
5513 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
5514 #[cfg(feature = "extra-children")]
5515 let mut extra_iter = self.extra_children.iter().peekable();
5516 #[cfg(feature = "extra-children")]
5517 let mut emit_idx: usize = 0;
5518 for item in &self.group_member {
5519 #[cfg(feature = "extra-children")]
5520 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5521 extra_iter
5522 .next()
5523 .unwrap()
5524 .node
5525 .write_to(writer)
5526 .map_err(SerializeError::from)?;
5527 }
5528 item.write_element("groupMember", writer)?;
5529 #[cfg(feature = "extra-children")]
5530 {
5531 emit_idx += 1;
5532 }
5533 }
5534 #[cfg(feature = "extra-children")]
5535 for extra in extra_iter {
5536 extra.node.write_to(writer).map_err(SerializeError::from)?;
5537 }
5538 Ok(())
5539 }
5540
5541 fn is_empty_element(&self) -> bool {
5542 if !self.group_member.is_empty() {
5543 return false;
5544 }
5545 #[cfg(feature = "extra-children")]
5546 if !self.extra_children.is_empty() {
5547 return false;
5548 }
5549 true
5550 }
5551}
5552
5553impl ToXml for CTGroupMember {
5554 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5555 #[allow(unused_mut)]
5556 let mut start = start;
5557 {
5558 let val = &self.unique_name;
5559 start.push_attribute(("uniqueName", val.as_str()));
5560 }
5561 if let Some(ref val) = self.group {
5562 start.push_attribute(("group", if *val { "1" } else { "0" }));
5563 }
5564 #[cfg(feature = "extra-attrs")]
5565 for (key, value) in &self.extra_attrs {
5566 start.push_attribute((key.as_str(), value.as_str()));
5567 }
5568 start
5569 }
5570
5571 fn is_empty_element(&self) -> bool {
5572 true
5573 }
5574}
5575
5576impl ToXml for CTTupleCache {
5577 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
5578 #[cfg(feature = "extra-children")]
5579 let mut extra_iter = self.extra_children.iter().peekable();
5580 #[cfg(feature = "extra-children")]
5581 let mut emit_idx: usize = 0;
5582 #[cfg(feature = "extra-children")]
5583 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5584 extra_iter
5585 .next()
5586 .unwrap()
5587 .node
5588 .write_to(writer)
5589 .map_err(SerializeError::from)?;
5590 }
5591 if let Some(ref val) = self.entries {
5592 val.write_element("entries", writer)?;
5593 }
5594 #[cfg(feature = "extra-children")]
5595 {
5596 emit_idx += 1;
5597 }
5598 #[cfg(feature = "extra-children")]
5599 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5600 extra_iter
5601 .next()
5602 .unwrap()
5603 .node
5604 .write_to(writer)
5605 .map_err(SerializeError::from)?;
5606 }
5607 if let Some(ref val) = self.sets {
5608 val.write_element("sets", writer)?;
5609 }
5610 #[cfg(feature = "extra-children")]
5611 {
5612 emit_idx += 1;
5613 }
5614 #[cfg(feature = "extra-children")]
5615 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5616 extra_iter
5617 .next()
5618 .unwrap()
5619 .node
5620 .write_to(writer)
5621 .map_err(SerializeError::from)?;
5622 }
5623 if let Some(ref val) = self.query_cache {
5624 val.write_element("queryCache", writer)?;
5625 }
5626 #[cfg(feature = "extra-children")]
5627 {
5628 emit_idx += 1;
5629 }
5630 #[cfg(feature = "extra-children")]
5631 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5632 extra_iter
5633 .next()
5634 .unwrap()
5635 .node
5636 .write_to(writer)
5637 .map_err(SerializeError::from)?;
5638 }
5639 if let Some(ref val) = self.server_formats {
5640 val.write_element("serverFormats", writer)?;
5641 }
5642 #[cfg(feature = "extra-children")]
5643 {
5644 emit_idx += 1;
5645 }
5646 #[cfg(feature = "extra-children")]
5647 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5648 extra_iter
5649 .next()
5650 .unwrap()
5651 .node
5652 .write_to(writer)
5653 .map_err(SerializeError::from)?;
5654 }
5655 if let Some(ref val) = self.extension_list {
5656 val.write_element("extLst", writer)?;
5657 }
5658 #[cfg(feature = "extra-children")]
5659 {
5660 emit_idx += 1;
5661 }
5662 #[cfg(feature = "extra-children")]
5663 for extra in extra_iter {
5664 extra.node.write_to(writer).map_err(SerializeError::from)?;
5665 }
5666 Ok(())
5667 }
5668
5669 fn is_empty_element(&self) -> bool {
5670 if self.entries.is_some() {
5671 return false;
5672 }
5673 if self.sets.is_some() {
5674 return false;
5675 }
5676 if self.query_cache.is_some() {
5677 return false;
5678 }
5679 if self.server_formats.is_some() {
5680 return false;
5681 }
5682 if self.extension_list.is_some() {
5683 return false;
5684 }
5685 #[cfg(feature = "extra-children")]
5686 if !self.extra_children.is_empty() {
5687 return false;
5688 }
5689 true
5690 }
5691}
5692
5693impl ToXml for CTServerFormat {
5694 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5695 #[allow(unused_mut)]
5696 let mut start = start;
5697 if let Some(ref val) = self.culture {
5698 start.push_attribute(("culture", val.as_str()));
5699 }
5700 if let Some(ref val) = self.format {
5701 start.push_attribute(("format", val.as_str()));
5702 }
5703 #[cfg(feature = "extra-attrs")]
5704 for (key, value) in &self.extra_attrs {
5705 start.push_attribute((key.as_str(), value.as_str()));
5706 }
5707 start
5708 }
5709
5710 fn is_empty_element(&self) -> bool {
5711 true
5712 }
5713}
5714
5715impl ToXml for CTServerFormats {
5716 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5717 #[allow(unused_mut)]
5718 let mut start = start;
5719 if let Some(ref val) = self.count {
5720 {
5721 let s = val.to_string();
5722 start.push_attribute(("count", s.as_str()));
5723 }
5724 }
5725 #[cfg(feature = "extra-attrs")]
5726 for (key, value) in &self.extra_attrs {
5727 start.push_attribute((key.as_str(), value.as_str()));
5728 }
5729 start
5730 }
5731
5732 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
5733 #[cfg(feature = "extra-children")]
5734 let mut extra_iter = self.extra_children.iter().peekable();
5735 #[cfg(feature = "extra-children")]
5736 let mut emit_idx: usize = 0;
5737 for item in &self.server_format {
5738 #[cfg(feature = "extra-children")]
5739 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5740 extra_iter
5741 .next()
5742 .unwrap()
5743 .node
5744 .write_to(writer)
5745 .map_err(SerializeError::from)?;
5746 }
5747 item.write_element("serverFormat", writer)?;
5748 #[cfg(feature = "extra-children")]
5749 {
5750 emit_idx += 1;
5751 }
5752 }
5753 #[cfg(feature = "extra-children")]
5754 for extra in extra_iter {
5755 extra.node.write_to(writer).map_err(SerializeError::from)?;
5756 }
5757 Ok(())
5758 }
5759
5760 fn is_empty_element(&self) -> bool {
5761 if !self.server_format.is_empty() {
5762 return false;
5763 }
5764 #[cfg(feature = "extra-children")]
5765 if !self.extra_children.is_empty() {
5766 return false;
5767 }
5768 true
5769 }
5770}
5771
5772impl ToXml for CTPCDSDTCEntries {
5773 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5774 #[allow(unused_mut)]
5775 let mut start = start;
5776 if let Some(ref val) = self.count {
5777 {
5778 let s = val.to_string();
5779 start.push_attribute(("count", s.as_str()));
5780 }
5781 }
5782 #[cfg(feature = "extra-attrs")]
5783 for (key, value) in &self.extra_attrs {
5784 start.push_attribute((key.as_str(), value.as_str()));
5785 }
5786 start
5787 }
5788
5789 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
5790 #[cfg(feature = "extra-children")]
5791 let mut extra_iter = self.extra_children.iter().peekable();
5792 #[cfg(feature = "extra-children")]
5793 let mut emit_idx: usize = 0;
5794 for item in &self.m {
5795 #[cfg(feature = "extra-children")]
5796 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5797 extra_iter
5798 .next()
5799 .unwrap()
5800 .node
5801 .write_to(writer)
5802 .map_err(SerializeError::from)?;
5803 }
5804 item.write_element("m", writer)?;
5805 #[cfg(feature = "extra-children")]
5806 {
5807 emit_idx += 1;
5808 }
5809 }
5810 for item in &self.n {
5811 #[cfg(feature = "extra-children")]
5812 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5813 extra_iter
5814 .next()
5815 .unwrap()
5816 .node
5817 .write_to(writer)
5818 .map_err(SerializeError::from)?;
5819 }
5820 item.write_element("n", writer)?;
5821 #[cfg(feature = "extra-children")]
5822 {
5823 emit_idx += 1;
5824 }
5825 }
5826 for item in &self.e {
5827 #[cfg(feature = "extra-children")]
5828 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5829 extra_iter
5830 .next()
5831 .unwrap()
5832 .node
5833 .write_to(writer)
5834 .map_err(SerializeError::from)?;
5835 }
5836 item.write_element("e", writer)?;
5837 #[cfg(feature = "extra-children")]
5838 {
5839 emit_idx += 1;
5840 }
5841 }
5842 for item in &self.style_index {
5843 #[cfg(feature = "extra-children")]
5844 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5845 extra_iter
5846 .next()
5847 .unwrap()
5848 .node
5849 .write_to(writer)
5850 .map_err(SerializeError::from)?;
5851 }
5852 item.write_element("s", writer)?;
5853 #[cfg(feature = "extra-children")]
5854 {
5855 emit_idx += 1;
5856 }
5857 }
5858 #[cfg(feature = "extra-children")]
5859 for extra in extra_iter {
5860 extra.node.write_to(writer).map_err(SerializeError::from)?;
5861 }
5862 Ok(())
5863 }
5864
5865 fn is_empty_element(&self) -> bool {
5866 if !self.m.is_empty() {
5867 return false;
5868 }
5869 if !self.n.is_empty() {
5870 return false;
5871 }
5872 if !self.e.is_empty() {
5873 return false;
5874 }
5875 if !self.style_index.is_empty() {
5876 return false;
5877 }
5878 #[cfg(feature = "extra-children")]
5879 if !self.extra_children.is_empty() {
5880 return false;
5881 }
5882 true
5883 }
5884}
5885
5886impl ToXml for CTTuples {
5887 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5888 #[allow(unused_mut)]
5889 let mut start = start;
5890 if let Some(ref val) = self.cells {
5891 {
5892 let s = val.to_string();
5893 start.push_attribute(("c", s.as_str()));
5894 }
5895 }
5896 #[cfg(feature = "extra-attrs")]
5897 for (key, value) in &self.extra_attrs {
5898 start.push_attribute((key.as_str(), value.as_str()));
5899 }
5900 start
5901 }
5902
5903 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
5904 #[cfg(feature = "extra-children")]
5905 let mut extra_iter = self.extra_children.iter().peekable();
5906 #[cfg(feature = "extra-children")]
5907 let mut emit_idx: usize = 0;
5908 for item in &self.tpl {
5909 #[cfg(feature = "extra-children")]
5910 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
5911 extra_iter
5912 .next()
5913 .unwrap()
5914 .node
5915 .write_to(writer)
5916 .map_err(SerializeError::from)?;
5917 }
5918 item.write_element("tpl", writer)?;
5919 #[cfg(feature = "extra-children")]
5920 {
5921 emit_idx += 1;
5922 }
5923 }
5924 #[cfg(feature = "extra-children")]
5925 for extra in extra_iter {
5926 extra.node.write_to(writer).map_err(SerializeError::from)?;
5927 }
5928 Ok(())
5929 }
5930
5931 fn is_empty_element(&self) -> bool {
5932 if !self.tpl.is_empty() {
5933 return false;
5934 }
5935 #[cfg(feature = "extra-children")]
5936 if !self.extra_children.is_empty() {
5937 return false;
5938 }
5939 true
5940 }
5941}
5942
5943impl ToXml for CTTuple {
5944 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5945 #[allow(unused_mut)]
5946 let mut start = start;
5947 if let Some(ref val) = self.fld {
5948 {
5949 let s = val.to_string();
5950 start.push_attribute(("fld", s.as_str()));
5951 }
5952 }
5953 if let Some(ref val) = self.hier {
5954 {
5955 let s = val.to_string();
5956 start.push_attribute(("hier", s.as_str()));
5957 }
5958 }
5959 {
5960 let val = &self.item;
5961 {
5962 let s = val.to_string();
5963 start.push_attribute(("item", s.as_str()));
5964 }
5965 }
5966 #[cfg(feature = "extra-attrs")]
5967 for (key, value) in &self.extra_attrs {
5968 start.push_attribute((key.as_str(), value.as_str()));
5969 }
5970 start
5971 }
5972
5973 fn is_empty_element(&self) -> bool {
5974 true
5975 }
5976}
5977
5978impl ToXml for CTSets {
5979 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
5980 #[allow(unused_mut)]
5981 let mut start = start;
5982 if let Some(ref val) = self.count {
5983 {
5984 let s = val.to_string();
5985 start.push_attribute(("count", s.as_str()));
5986 }
5987 }
5988 #[cfg(feature = "extra-attrs")]
5989 for (key, value) in &self.extra_attrs {
5990 start.push_attribute((key.as_str(), value.as_str()));
5991 }
5992 start
5993 }
5994
5995 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
5996 #[cfg(feature = "extra-children")]
5997 let mut extra_iter = self.extra_children.iter().peekable();
5998 #[cfg(feature = "extra-children")]
5999 let mut emit_idx: usize = 0;
6000 for item in &self.set {
6001 #[cfg(feature = "extra-children")]
6002 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6003 extra_iter
6004 .next()
6005 .unwrap()
6006 .node
6007 .write_to(writer)
6008 .map_err(SerializeError::from)?;
6009 }
6010 item.write_element("set", writer)?;
6011 #[cfg(feature = "extra-children")]
6012 {
6013 emit_idx += 1;
6014 }
6015 }
6016 #[cfg(feature = "extra-children")]
6017 for extra in extra_iter {
6018 extra.node.write_to(writer).map_err(SerializeError::from)?;
6019 }
6020 Ok(())
6021 }
6022
6023 fn is_empty_element(&self) -> bool {
6024 if !self.set.is_empty() {
6025 return false;
6026 }
6027 #[cfg(feature = "extra-children")]
6028 if !self.extra_children.is_empty() {
6029 return false;
6030 }
6031 true
6032 }
6033}
6034
6035impl ToXml for CTSet {
6036 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6037 #[allow(unused_mut)]
6038 let mut start = start;
6039 if let Some(ref val) = self.count {
6040 {
6041 let s = val.to_string();
6042 start.push_attribute(("count", s.as_str()));
6043 }
6044 }
6045 {
6046 let val = &self.max_rank;
6047 {
6048 let s = val.to_string();
6049 start.push_attribute(("maxRank", s.as_str()));
6050 }
6051 }
6052 {
6053 let val = &self.set_definition;
6054 start.push_attribute(("setDefinition", val.as_str()));
6055 }
6056 if let Some(ref val) = self.sort_type {
6057 {
6058 let s = val.to_string();
6059 start.push_attribute(("sortType", s.as_str()));
6060 }
6061 }
6062 if let Some(ref val) = self.query_failed {
6063 start.push_attribute(("queryFailed", if *val { "1" } else { "0" }));
6064 }
6065 #[cfg(feature = "extra-attrs")]
6066 for (key, value) in &self.extra_attrs {
6067 start.push_attribute((key.as_str(), value.as_str()));
6068 }
6069 start
6070 }
6071
6072 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
6073 #[cfg(feature = "extra-children")]
6074 let mut extra_iter = self.extra_children.iter().peekable();
6075 #[cfg(feature = "extra-children")]
6076 let mut emit_idx: usize = 0;
6077 for item in &self.tpls {
6078 #[cfg(feature = "extra-children")]
6079 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6080 extra_iter
6081 .next()
6082 .unwrap()
6083 .node
6084 .write_to(writer)
6085 .map_err(SerializeError::from)?;
6086 }
6087 item.write_element("tpls", writer)?;
6088 #[cfg(feature = "extra-children")]
6089 {
6090 emit_idx += 1;
6091 }
6092 }
6093 #[cfg(feature = "extra-children")]
6094 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6095 extra_iter
6096 .next()
6097 .unwrap()
6098 .node
6099 .write_to(writer)
6100 .map_err(SerializeError::from)?;
6101 }
6102 if let Some(ref val) = self.sort_by_tuple {
6103 val.write_element("sortByTuple", writer)?;
6104 }
6105 #[cfg(feature = "extra-children")]
6106 {
6107 emit_idx += 1;
6108 }
6109 #[cfg(feature = "extra-children")]
6110 for extra in extra_iter {
6111 extra.node.write_to(writer).map_err(SerializeError::from)?;
6112 }
6113 Ok(())
6114 }
6115
6116 fn is_empty_element(&self) -> bool {
6117 if !self.tpls.is_empty() {
6118 return false;
6119 }
6120 if self.sort_by_tuple.is_some() {
6121 return false;
6122 }
6123 #[cfg(feature = "extra-children")]
6124 if !self.extra_children.is_empty() {
6125 return false;
6126 }
6127 true
6128 }
6129}
6130
6131impl ToXml for CTQueryCache {
6132 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6133 #[allow(unused_mut)]
6134 let mut start = start;
6135 if let Some(ref val) = self.count {
6136 {
6137 let s = val.to_string();
6138 start.push_attribute(("count", s.as_str()));
6139 }
6140 }
6141 #[cfg(feature = "extra-attrs")]
6142 for (key, value) in &self.extra_attrs {
6143 start.push_attribute((key.as_str(), value.as_str()));
6144 }
6145 start
6146 }
6147
6148 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
6149 #[cfg(feature = "extra-children")]
6150 let mut extra_iter = self.extra_children.iter().peekable();
6151 #[cfg(feature = "extra-children")]
6152 let mut emit_idx: usize = 0;
6153 for item in &self.query {
6154 #[cfg(feature = "extra-children")]
6155 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6156 extra_iter
6157 .next()
6158 .unwrap()
6159 .node
6160 .write_to(writer)
6161 .map_err(SerializeError::from)?;
6162 }
6163 item.write_element("query", writer)?;
6164 #[cfg(feature = "extra-children")]
6165 {
6166 emit_idx += 1;
6167 }
6168 }
6169 #[cfg(feature = "extra-children")]
6170 for extra in extra_iter {
6171 extra.node.write_to(writer).map_err(SerializeError::from)?;
6172 }
6173 Ok(())
6174 }
6175
6176 fn is_empty_element(&self) -> bool {
6177 if !self.query.is_empty() {
6178 return false;
6179 }
6180 #[cfg(feature = "extra-children")]
6181 if !self.extra_children.is_empty() {
6182 return false;
6183 }
6184 true
6185 }
6186}
6187
6188impl ToXml for CTQuery {
6189 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6190 #[allow(unused_mut)]
6191 let mut start = start;
6192 {
6193 let val = &self.mdx;
6194 start.push_attribute(("mdx", val.as_str()));
6195 }
6196 #[cfg(feature = "extra-attrs")]
6197 for (key, value) in &self.extra_attrs {
6198 start.push_attribute((key.as_str(), value.as_str()));
6199 }
6200 start
6201 }
6202
6203 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
6204 #[cfg(feature = "extra-children")]
6205 let mut extra_iter = self.extra_children.iter().peekable();
6206 #[cfg(feature = "extra-children")]
6207 let mut emit_idx: usize = 0;
6208 #[cfg(feature = "extra-children")]
6209 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6210 extra_iter
6211 .next()
6212 .unwrap()
6213 .node
6214 .write_to(writer)
6215 .map_err(SerializeError::from)?;
6216 }
6217 if let Some(ref val) = self.tpls {
6218 val.write_element("tpls", writer)?;
6219 }
6220 #[cfg(feature = "extra-children")]
6221 {
6222 emit_idx += 1;
6223 }
6224 #[cfg(feature = "extra-children")]
6225 for extra in extra_iter {
6226 extra.node.write_to(writer).map_err(SerializeError::from)?;
6227 }
6228 Ok(())
6229 }
6230
6231 fn is_empty_element(&self) -> bool {
6232 if self.tpls.is_some() {
6233 return false;
6234 }
6235 #[cfg(feature = "extra-children")]
6236 if !self.extra_children.is_empty() {
6237 return false;
6238 }
6239 true
6240 }
6241}
6242
6243impl ToXml for CTCalculatedItems {
6244 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6245 #[allow(unused_mut)]
6246 let mut start = start;
6247 if let Some(ref val) = self.count {
6248 {
6249 let s = val.to_string();
6250 start.push_attribute(("count", s.as_str()));
6251 }
6252 }
6253 #[cfg(feature = "extra-attrs")]
6254 for (key, value) in &self.extra_attrs {
6255 start.push_attribute((key.as_str(), value.as_str()));
6256 }
6257 start
6258 }
6259
6260 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
6261 #[cfg(feature = "extra-children")]
6262 let mut extra_iter = self.extra_children.iter().peekable();
6263 #[cfg(feature = "extra-children")]
6264 let mut emit_idx: usize = 0;
6265 for item in &self.calculated_item {
6266 #[cfg(feature = "extra-children")]
6267 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6268 extra_iter
6269 .next()
6270 .unwrap()
6271 .node
6272 .write_to(writer)
6273 .map_err(SerializeError::from)?;
6274 }
6275 item.write_element("calculatedItem", writer)?;
6276 #[cfg(feature = "extra-children")]
6277 {
6278 emit_idx += 1;
6279 }
6280 }
6281 #[cfg(feature = "extra-children")]
6282 for extra in extra_iter {
6283 extra.node.write_to(writer).map_err(SerializeError::from)?;
6284 }
6285 Ok(())
6286 }
6287
6288 fn is_empty_element(&self) -> bool {
6289 if !self.calculated_item.is_empty() {
6290 return false;
6291 }
6292 #[cfg(feature = "extra-children")]
6293 if !self.extra_children.is_empty() {
6294 return false;
6295 }
6296 true
6297 }
6298}
6299
6300impl ToXml for CTCalculatedItem {
6301 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6302 #[allow(unused_mut)]
6303 let mut start = start;
6304 if let Some(ref val) = self.field {
6305 {
6306 let s = val.to_string();
6307 start.push_attribute(("field", s.as_str()));
6308 }
6309 }
6310 if let Some(ref val) = self.formula {
6311 start.push_attribute(("formula", 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 #[cfg(feature = "extra-children")]
6326 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6327 extra_iter
6328 .next()
6329 .unwrap()
6330 .node
6331 .write_to(writer)
6332 .map_err(SerializeError::from)?;
6333 }
6334 {
6335 let val = &self.pivot_area;
6336 val.write_element("pivotArea", writer)?;
6337 }
6338 #[cfg(feature = "extra-children")]
6339 {
6340 emit_idx += 1;
6341 }
6342 #[cfg(feature = "extra-children")]
6343 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6344 extra_iter
6345 .next()
6346 .unwrap()
6347 .node
6348 .write_to(writer)
6349 .map_err(SerializeError::from)?;
6350 }
6351 if let Some(ref val) = self.extension_list {
6352 val.write_element("extLst", writer)?;
6353 }
6354 #[cfg(feature = "extra-children")]
6355 {
6356 emit_idx += 1;
6357 }
6358 #[cfg(feature = "extra-children")]
6359 for extra in extra_iter {
6360 extra.node.write_to(writer).map_err(SerializeError::from)?;
6361 }
6362 Ok(())
6363 }
6364
6365 fn is_empty_element(&self) -> bool {
6366 false
6367 }
6368}
6369
6370impl ToXml for CTCalculatedMembers {
6371 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6372 #[allow(unused_mut)]
6373 let mut start = start;
6374 if let Some(ref val) = self.count {
6375 {
6376 let s = val.to_string();
6377 start.push_attribute(("count", s.as_str()));
6378 }
6379 }
6380 #[cfg(feature = "extra-attrs")]
6381 for (key, value) in &self.extra_attrs {
6382 start.push_attribute((key.as_str(), value.as_str()));
6383 }
6384 start
6385 }
6386
6387 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
6388 #[cfg(feature = "extra-children")]
6389 let mut extra_iter = self.extra_children.iter().peekable();
6390 #[cfg(feature = "extra-children")]
6391 let mut emit_idx: usize = 0;
6392 for item in &self.calculated_member {
6393 #[cfg(feature = "extra-children")]
6394 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6395 extra_iter
6396 .next()
6397 .unwrap()
6398 .node
6399 .write_to(writer)
6400 .map_err(SerializeError::from)?;
6401 }
6402 item.write_element("calculatedMember", writer)?;
6403 #[cfg(feature = "extra-children")]
6404 {
6405 emit_idx += 1;
6406 }
6407 }
6408 #[cfg(feature = "extra-children")]
6409 for extra in extra_iter {
6410 extra.node.write_to(writer).map_err(SerializeError::from)?;
6411 }
6412 Ok(())
6413 }
6414
6415 fn is_empty_element(&self) -> bool {
6416 if !self.calculated_member.is_empty() {
6417 return false;
6418 }
6419 #[cfg(feature = "extra-children")]
6420 if !self.extra_children.is_empty() {
6421 return false;
6422 }
6423 true
6424 }
6425}
6426
6427impl ToXml for CTCalculatedMember {
6428 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6429 #[allow(unused_mut)]
6430 let mut start = start;
6431 {
6432 let val = &self.name;
6433 start.push_attribute(("name", val.as_str()));
6434 }
6435 {
6436 let val = &self.mdx;
6437 start.push_attribute(("mdx", val.as_str()));
6438 }
6439 if let Some(ref val) = self.member_name {
6440 start.push_attribute(("memberName", val.as_str()));
6441 }
6442 if let Some(ref val) = self.hierarchy {
6443 start.push_attribute(("hierarchy", val.as_str()));
6444 }
6445 if let Some(ref val) = self.parent {
6446 start.push_attribute(("parent", val.as_str()));
6447 }
6448 if let Some(ref val) = self.solve_order {
6449 {
6450 let s = val.to_string();
6451 start.push_attribute(("solveOrder", s.as_str()));
6452 }
6453 }
6454 if let Some(ref val) = self.set {
6455 start.push_attribute(("set", if *val { "1" } else { "0" }));
6456 }
6457 #[cfg(feature = "extra-attrs")]
6458 for (key, value) in &self.extra_attrs {
6459 start.push_attribute((key.as_str(), value.as_str()));
6460 }
6461 start
6462 }
6463
6464 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
6465 #[cfg(feature = "extra-children")]
6466 let mut extra_iter = self.extra_children.iter().peekable();
6467 #[cfg(feature = "extra-children")]
6468 let mut emit_idx: usize = 0;
6469 #[cfg(feature = "extra-children")]
6470 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6471 extra_iter
6472 .next()
6473 .unwrap()
6474 .node
6475 .write_to(writer)
6476 .map_err(SerializeError::from)?;
6477 }
6478 if let Some(ref val) = self.extension_list {
6479 val.write_element("extLst", writer)?;
6480 }
6481 #[cfg(feature = "extra-children")]
6482 {
6483 emit_idx += 1;
6484 }
6485 #[cfg(feature = "extra-children")]
6486 for extra in extra_iter {
6487 extra.node.write_to(writer).map_err(SerializeError::from)?;
6488 }
6489 Ok(())
6490 }
6491
6492 fn is_empty_element(&self) -> bool {
6493 if self.extension_list.is_some() {
6494 return false;
6495 }
6496 #[cfg(feature = "extra-children")]
6497 if !self.extra_children.is_empty() {
6498 return false;
6499 }
6500 true
6501 }
6502}
6503
6504impl ToXml for CTPivotTableDefinition {
6505 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
6506 #[allow(unused_mut)]
6507 let mut start = start;
6508 {
6509 let val = &self.name;
6510 start.push_attribute(("name", val.as_str()));
6511 }
6512 {
6513 let val = &self.cache_id;
6514 {
6515 let s = val.to_string();
6516 start.push_attribute(("cacheId", s.as_str()));
6517 }
6518 }
6519 if let Some(ref val) = self.data_on_rows {
6520 start.push_attribute(("dataOnRows", if *val { "1" } else { "0" }));
6521 }
6522 if let Some(ref val) = self.data_position {
6523 {
6524 let s = val.to_string();
6525 start.push_attribute(("dataPosition", s.as_str()));
6526 }
6527 }
6528 if let Some(ref val) = self.auto_format_id {
6529 {
6530 let s = val.to_string();
6531 start.push_attribute(("autoFormatId", s.as_str()));
6532 }
6533 }
6534 if let Some(ref val) = self.apply_number_formats {
6535 start.push_attribute(("applyNumberFormats", if *val { "1" } else { "0" }));
6536 }
6537 if let Some(ref val) = self.apply_border_formats {
6538 start.push_attribute(("applyBorderFormats", if *val { "1" } else { "0" }));
6539 }
6540 if let Some(ref val) = self.apply_font_formats {
6541 start.push_attribute(("applyFontFormats", if *val { "1" } else { "0" }));
6542 }
6543 if let Some(ref val) = self.apply_pattern_formats {
6544 start.push_attribute(("applyPatternFormats", if *val { "1" } else { "0" }));
6545 }
6546 if let Some(ref val) = self.apply_alignment_formats {
6547 start.push_attribute(("applyAlignmentFormats", if *val { "1" } else { "0" }));
6548 }
6549 if let Some(ref val) = self.apply_width_height_formats {
6550 start.push_attribute(("applyWidthHeightFormats", if *val { "1" } else { "0" }));
6551 }
6552 {
6553 let val = &self.data_caption;
6554 start.push_attribute(("dataCaption", val.as_str()));
6555 }
6556 if let Some(ref val) = self.grand_total_caption {
6557 start.push_attribute(("grandTotalCaption", val.as_str()));
6558 }
6559 if let Some(ref val) = self.error_caption {
6560 start.push_attribute(("errorCaption", val.as_str()));
6561 }
6562 if let Some(ref val) = self.show_error {
6563 start.push_attribute(("showError", if *val { "1" } else { "0" }));
6564 }
6565 if let Some(ref val) = self.missing_caption {
6566 start.push_attribute(("missingCaption", val.as_str()));
6567 }
6568 if let Some(ref val) = self.show_missing {
6569 start.push_attribute(("showMissing", if *val { "1" } else { "0" }));
6570 }
6571 if let Some(ref val) = self.page_style {
6572 start.push_attribute(("pageStyle", val.as_str()));
6573 }
6574 if let Some(ref val) = self.pivot_table_style {
6575 start.push_attribute(("pivotTableStyle", val.as_str()));
6576 }
6577 if let Some(ref val) = self.vacated_style {
6578 start.push_attribute(("vacatedStyle", val.as_str()));
6579 }
6580 if let Some(ref val) = self.tag {
6581 start.push_attribute(("tag", val.as_str()));
6582 }
6583 if let Some(ref val) = self.updated_version {
6584 {
6585 let s = val.to_string();
6586 start.push_attribute(("updatedVersion", s.as_str()));
6587 }
6588 }
6589 if let Some(ref val) = self.min_refreshable_version {
6590 {
6591 let s = val.to_string();
6592 start.push_attribute(("minRefreshableVersion", s.as_str()));
6593 }
6594 }
6595 if let Some(ref val) = self.asterisk_totals {
6596 start.push_attribute(("asteriskTotals", if *val { "1" } else { "0" }));
6597 }
6598 if let Some(ref val) = self.show_items {
6599 start.push_attribute(("showItems", if *val { "1" } else { "0" }));
6600 }
6601 if let Some(ref val) = self.edit_data {
6602 start.push_attribute(("editData", if *val { "1" } else { "0" }));
6603 }
6604 if let Some(ref val) = self.disable_field_list {
6605 start.push_attribute(("disableFieldList", if *val { "1" } else { "0" }));
6606 }
6607 if let Some(ref val) = self.show_calc_mbrs {
6608 start.push_attribute(("showCalcMbrs", if *val { "1" } else { "0" }));
6609 }
6610 if let Some(ref val) = self.visual_totals {
6611 start.push_attribute(("visualTotals", if *val { "1" } else { "0" }));
6612 }
6613 if let Some(ref val) = self.show_multiple_label {
6614 start.push_attribute(("showMultipleLabel", if *val { "1" } else { "0" }));
6615 }
6616 if let Some(ref val) = self.show_data_drop_down {
6617 start.push_attribute(("showDataDropDown", if *val { "1" } else { "0" }));
6618 }
6619 if let Some(ref val) = self.show_drill {
6620 start.push_attribute(("showDrill", if *val { "1" } else { "0" }));
6621 }
6622 if let Some(ref val) = self.print_drill {
6623 start.push_attribute(("printDrill", if *val { "1" } else { "0" }));
6624 }
6625 if let Some(ref val) = self.show_member_property_tips {
6626 start.push_attribute(("showMemberPropertyTips", if *val { "1" } else { "0" }));
6627 }
6628 if let Some(ref val) = self.show_data_tips {
6629 start.push_attribute(("showDataTips", if *val { "1" } else { "0" }));
6630 }
6631 if let Some(ref val) = self.enable_wizard {
6632 start.push_attribute(("enableWizard", if *val { "1" } else { "0" }));
6633 }
6634 if let Some(ref val) = self.enable_drill {
6635 start.push_attribute(("enableDrill", if *val { "1" } else { "0" }));
6636 }
6637 if let Some(ref val) = self.enable_field_properties {
6638 start.push_attribute(("enableFieldProperties", if *val { "1" } else { "0" }));
6639 }
6640 if let Some(ref val) = self.preserve_formatting {
6641 start.push_attribute(("preserveFormatting", if *val { "1" } else { "0" }));
6642 }
6643 if let Some(ref val) = self.use_auto_formatting {
6644 start.push_attribute(("useAutoFormatting", if *val { "1" } else { "0" }));
6645 }
6646 if let Some(ref val) = self.page_wrap {
6647 {
6648 let s = val.to_string();
6649 start.push_attribute(("pageWrap", s.as_str()));
6650 }
6651 }
6652 if let Some(ref val) = self.page_over_then_down {
6653 start.push_attribute(("pageOverThenDown", if *val { "1" } else { "0" }));
6654 }
6655 if let Some(ref val) = self.subtotal_hidden_items {
6656 start.push_attribute(("subtotalHiddenItems", if *val { "1" } else { "0" }));
6657 }
6658 if let Some(ref val) = self.row_grand_totals {
6659 start.push_attribute(("rowGrandTotals", if *val { "1" } else { "0" }));
6660 }
6661 if let Some(ref val) = self.col_grand_totals {
6662 start.push_attribute(("colGrandTotals", if *val { "1" } else { "0" }));
6663 }
6664 if let Some(ref val) = self.field_print_titles {
6665 start.push_attribute(("fieldPrintTitles", if *val { "1" } else { "0" }));
6666 }
6667 if let Some(ref val) = self.item_print_titles {
6668 start.push_attribute(("itemPrintTitles", if *val { "1" } else { "0" }));
6669 }
6670 if let Some(ref val) = self.merge_item {
6671 start.push_attribute(("mergeItem", if *val { "1" } else { "0" }));
6672 }
6673 if let Some(ref val) = self.show_drop_zones {
6674 start.push_attribute(("showDropZones", if *val { "1" } else { "0" }));
6675 }
6676 if let Some(ref val) = self.created_version {
6677 {
6678 let s = val.to_string();
6679 start.push_attribute(("createdVersion", s.as_str()));
6680 }
6681 }
6682 if let Some(ref val) = self.indent {
6683 {
6684 let s = val.to_string();
6685 start.push_attribute(("indent", s.as_str()));
6686 }
6687 }
6688 if let Some(ref val) = self.show_empty_row {
6689 start.push_attribute(("showEmptyRow", if *val { "1" } else { "0" }));
6690 }
6691 if let Some(ref val) = self.show_empty_col {
6692 start.push_attribute(("showEmptyCol", if *val { "1" } else { "0" }));
6693 }
6694 if let Some(ref val) = self.show_headers {
6695 start.push_attribute(("showHeaders", if *val { "1" } else { "0" }));
6696 }
6697 if let Some(ref val) = self.compact {
6698 start.push_attribute(("compact", if *val { "1" } else { "0" }));
6699 }
6700 if let Some(ref val) = self.outline {
6701 start.push_attribute(("outline", if *val { "1" } else { "0" }));
6702 }
6703 if let Some(ref val) = self.outline_data {
6704 start.push_attribute(("outlineData", if *val { "1" } else { "0" }));
6705 }
6706 if let Some(ref val) = self.compact_data {
6707 start.push_attribute(("compactData", if *val { "1" } else { "0" }));
6708 }
6709 if let Some(ref val) = self.published {
6710 start.push_attribute(("published", if *val { "1" } else { "0" }));
6711 }
6712 if let Some(ref val) = self.grid_drop_zones {
6713 start.push_attribute(("gridDropZones", if *val { "1" } else { "0" }));
6714 }
6715 if let Some(ref val) = self.immersive {
6716 start.push_attribute(("immersive", if *val { "1" } else { "0" }));
6717 }
6718 if let Some(ref val) = self.multiple_field_filters {
6719 start.push_attribute(("multipleFieldFilters", if *val { "1" } else { "0" }));
6720 }
6721 if let Some(ref val) = self.chart_format {
6722 {
6723 let s = val.to_string();
6724 start.push_attribute(("chartFormat", s.as_str()));
6725 }
6726 }
6727 if let Some(ref val) = self.row_header_caption {
6728 start.push_attribute(("rowHeaderCaption", val.as_str()));
6729 }
6730 if let Some(ref val) = self.col_header_caption {
6731 start.push_attribute(("colHeaderCaption", val.as_str()));
6732 }
6733 if let Some(ref val) = self.field_list_sort_ascending {
6734 start.push_attribute(("fieldListSortAscending", if *val { "1" } else { "0" }));
6735 }
6736 if let Some(ref val) = self.mdx_subqueries {
6737 start.push_attribute(("mdxSubqueries", if *val { "1" } else { "0" }));
6738 }
6739 if let Some(ref val) = self.custom_list_sort {
6740 start.push_attribute(("customListSort", if *val { "1" } else { "0" }));
6741 }
6742 #[cfg(feature = "extra-attrs")]
6743 for (key, value) in &self.extra_attrs {
6744 start.push_attribute((key.as_str(), value.as_str()));
6745 }
6746 start
6747 }
6748
6749 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
6750 #[cfg(feature = "extra-children")]
6751 let mut extra_iter = self.extra_children.iter().peekable();
6752 #[cfg(feature = "extra-children")]
6753 let mut emit_idx: usize = 0;
6754 #[cfg(feature = "extra-children")]
6755 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6756 extra_iter
6757 .next()
6758 .unwrap()
6759 .node
6760 .write_to(writer)
6761 .map_err(SerializeError::from)?;
6762 }
6763 {
6764 let val = &self.location;
6765 val.write_element("location", writer)?;
6766 }
6767 #[cfg(feature = "extra-children")]
6768 {
6769 emit_idx += 1;
6770 }
6771 #[cfg(feature = "extra-children")]
6772 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6773 extra_iter
6774 .next()
6775 .unwrap()
6776 .node
6777 .write_to(writer)
6778 .map_err(SerializeError::from)?;
6779 }
6780 if let Some(ref val) = self.pivot_fields {
6781 val.write_element("pivotFields", writer)?;
6782 }
6783 #[cfg(feature = "extra-children")]
6784 {
6785 emit_idx += 1;
6786 }
6787 #[cfg(feature = "extra-children")]
6788 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6789 extra_iter
6790 .next()
6791 .unwrap()
6792 .node
6793 .write_to(writer)
6794 .map_err(SerializeError::from)?;
6795 }
6796 if let Some(ref val) = self.row_fields {
6797 val.write_element("rowFields", writer)?;
6798 }
6799 #[cfg(feature = "extra-children")]
6800 {
6801 emit_idx += 1;
6802 }
6803 #[cfg(feature = "extra-children")]
6804 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6805 extra_iter
6806 .next()
6807 .unwrap()
6808 .node
6809 .write_to(writer)
6810 .map_err(SerializeError::from)?;
6811 }
6812 if let Some(ref val) = self.row_items {
6813 val.write_element("rowItems", writer)?;
6814 }
6815 #[cfg(feature = "extra-children")]
6816 {
6817 emit_idx += 1;
6818 }
6819 #[cfg(feature = "extra-children")]
6820 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6821 extra_iter
6822 .next()
6823 .unwrap()
6824 .node
6825 .write_to(writer)
6826 .map_err(SerializeError::from)?;
6827 }
6828 if let Some(ref val) = self.col_fields {
6829 val.write_element("colFields", 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 if let Some(ref val) = self.col_items {
6845 val.write_element("colItems", writer)?;
6846 }
6847 #[cfg(feature = "extra-children")]
6848 {
6849 emit_idx += 1;
6850 }
6851 #[cfg(feature = "extra-children")]
6852 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6853 extra_iter
6854 .next()
6855 .unwrap()
6856 .node
6857 .write_to(writer)
6858 .map_err(SerializeError::from)?;
6859 }
6860 if let Some(ref val) = self.page_fields {
6861 val.write_element("pageFields", writer)?;
6862 }
6863 #[cfg(feature = "extra-children")]
6864 {
6865 emit_idx += 1;
6866 }
6867 #[cfg(feature = "extra-children")]
6868 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6869 extra_iter
6870 .next()
6871 .unwrap()
6872 .node
6873 .write_to(writer)
6874 .map_err(SerializeError::from)?;
6875 }
6876 if let Some(ref val) = self.data_fields {
6877 val.write_element("dataFields", writer)?;
6878 }
6879 #[cfg(feature = "extra-children")]
6880 {
6881 emit_idx += 1;
6882 }
6883 #[cfg(feature = "extra-children")]
6884 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6885 extra_iter
6886 .next()
6887 .unwrap()
6888 .node
6889 .write_to(writer)
6890 .map_err(SerializeError::from)?;
6891 }
6892 if let Some(ref val) = self.formats {
6893 val.write_element("formats", writer)?;
6894 }
6895 #[cfg(feature = "extra-children")]
6896 {
6897 emit_idx += 1;
6898 }
6899 #[cfg(feature = "extra-children")]
6900 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6901 extra_iter
6902 .next()
6903 .unwrap()
6904 .node
6905 .write_to(writer)
6906 .map_err(SerializeError::from)?;
6907 }
6908 if let Some(ref val) = self.conditional_formats {
6909 val.write_element("conditionalFormats", writer)?;
6910 }
6911 #[cfg(feature = "extra-children")]
6912 {
6913 emit_idx += 1;
6914 }
6915 #[cfg(feature = "extra-children")]
6916 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6917 extra_iter
6918 .next()
6919 .unwrap()
6920 .node
6921 .write_to(writer)
6922 .map_err(SerializeError::from)?;
6923 }
6924 if let Some(ref val) = self.chart_formats {
6925 val.write_element("chartFormats", writer)?;
6926 }
6927 #[cfg(feature = "extra-children")]
6928 {
6929 emit_idx += 1;
6930 }
6931 #[cfg(feature = "extra-children")]
6932 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6933 extra_iter
6934 .next()
6935 .unwrap()
6936 .node
6937 .write_to(writer)
6938 .map_err(SerializeError::from)?;
6939 }
6940 if let Some(ref val) = self.pivot_hierarchies {
6941 val.write_element("pivotHierarchies", writer)?;
6942 }
6943 #[cfg(feature = "extra-children")]
6944 {
6945 emit_idx += 1;
6946 }
6947 #[cfg(feature = "extra-children")]
6948 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6949 extra_iter
6950 .next()
6951 .unwrap()
6952 .node
6953 .write_to(writer)
6954 .map_err(SerializeError::from)?;
6955 }
6956 if let Some(ref val) = self.pivot_table_style_info {
6957 val.write_element("pivotTableStyleInfo", writer)?;
6958 }
6959 #[cfg(feature = "extra-children")]
6960 {
6961 emit_idx += 1;
6962 }
6963 #[cfg(feature = "extra-children")]
6964 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6965 extra_iter
6966 .next()
6967 .unwrap()
6968 .node
6969 .write_to(writer)
6970 .map_err(SerializeError::from)?;
6971 }
6972 if let Some(ref val) = self.filters {
6973 val.write_element("filters", writer)?;
6974 }
6975 #[cfg(feature = "extra-children")]
6976 {
6977 emit_idx += 1;
6978 }
6979 #[cfg(feature = "extra-children")]
6980 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6981 extra_iter
6982 .next()
6983 .unwrap()
6984 .node
6985 .write_to(writer)
6986 .map_err(SerializeError::from)?;
6987 }
6988 if let Some(ref val) = self.row_hierarchies_usage {
6989 val.write_element("rowHierarchiesUsage", writer)?;
6990 }
6991 #[cfg(feature = "extra-children")]
6992 {
6993 emit_idx += 1;
6994 }
6995 #[cfg(feature = "extra-children")]
6996 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
6997 extra_iter
6998 .next()
6999 .unwrap()
7000 .node
7001 .write_to(writer)
7002 .map_err(SerializeError::from)?;
7003 }
7004 if let Some(ref val) = self.col_hierarchies_usage {
7005 val.write_element("colHierarchiesUsage", writer)?;
7006 }
7007 #[cfg(feature = "extra-children")]
7008 {
7009 emit_idx += 1;
7010 }
7011 #[cfg(feature = "extra-children")]
7012 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7013 extra_iter
7014 .next()
7015 .unwrap()
7016 .node
7017 .write_to(writer)
7018 .map_err(SerializeError::from)?;
7019 }
7020 if let Some(ref val) = self.extension_list {
7021 val.write_element("extLst", writer)?;
7022 }
7023 #[cfg(feature = "extra-children")]
7024 {
7025 emit_idx += 1;
7026 }
7027 #[cfg(feature = "extra-children")]
7028 for extra in extra_iter {
7029 extra.node.write_to(writer).map_err(SerializeError::from)?;
7030 }
7031 Ok(())
7032 }
7033
7034 fn is_empty_element(&self) -> bool {
7035 false
7036 }
7037}
7038
7039impl ToXml for PivotLocation {
7040 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7041 #[allow(unused_mut)]
7042 let mut start = start;
7043 {
7044 let val = &self.reference;
7045 start.push_attribute(("ref", val.as_str()));
7046 }
7047 {
7048 let val = &self.first_header_row;
7049 {
7050 let s = val.to_string();
7051 start.push_attribute(("firstHeaderRow", s.as_str()));
7052 }
7053 }
7054 {
7055 let val = &self.first_data_row;
7056 {
7057 let s = val.to_string();
7058 start.push_attribute(("firstDataRow", s.as_str()));
7059 }
7060 }
7061 {
7062 let val = &self.first_data_col;
7063 {
7064 let s = val.to_string();
7065 start.push_attribute(("firstDataCol", s.as_str()));
7066 }
7067 }
7068 if let Some(ref val) = self.row_page_count {
7069 {
7070 let s = val.to_string();
7071 start.push_attribute(("rowPageCount", s.as_str()));
7072 }
7073 }
7074 if let Some(ref val) = self.col_page_count {
7075 {
7076 let s = val.to_string();
7077 start.push_attribute(("colPageCount", s.as_str()));
7078 }
7079 }
7080 #[cfg(feature = "extra-attrs")]
7081 for (key, value) in &self.extra_attrs {
7082 start.push_attribute((key.as_str(), value.as_str()));
7083 }
7084 start
7085 }
7086
7087 fn is_empty_element(&self) -> bool {
7088 true
7089 }
7090}
7091
7092impl ToXml for PivotFields {
7093 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7094 #[allow(unused_mut)]
7095 let mut start = start;
7096 if let Some(ref val) = self.count {
7097 {
7098 let s = val.to_string();
7099 start.push_attribute(("count", s.as_str()));
7100 }
7101 }
7102 #[cfg(feature = "extra-attrs")]
7103 for (key, value) in &self.extra_attrs {
7104 start.push_attribute((key.as_str(), value.as_str()));
7105 }
7106 start
7107 }
7108
7109 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
7110 #[cfg(feature = "extra-children")]
7111 let mut extra_iter = self.extra_children.iter().peekable();
7112 #[cfg(feature = "extra-children")]
7113 let mut emit_idx: usize = 0;
7114 for item in &self.pivot_field {
7115 #[cfg(feature = "extra-children")]
7116 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7117 extra_iter
7118 .next()
7119 .unwrap()
7120 .node
7121 .write_to(writer)
7122 .map_err(SerializeError::from)?;
7123 }
7124 item.write_element("pivotField", writer)?;
7125 #[cfg(feature = "extra-children")]
7126 {
7127 emit_idx += 1;
7128 }
7129 }
7130 #[cfg(feature = "extra-children")]
7131 for extra in extra_iter {
7132 extra.node.write_to(writer).map_err(SerializeError::from)?;
7133 }
7134 Ok(())
7135 }
7136
7137 fn is_empty_element(&self) -> bool {
7138 if !self.pivot_field.is_empty() {
7139 return false;
7140 }
7141 #[cfg(feature = "extra-children")]
7142 if !self.extra_children.is_empty() {
7143 return false;
7144 }
7145 true
7146 }
7147}
7148
7149impl ToXml for PivotField {
7150 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7151 #[allow(unused_mut)]
7152 let mut start = start;
7153 if let Some(ref val) = self.name {
7154 start.push_attribute(("name", val.as_str()));
7155 }
7156 if let Some(ref val) = self.axis {
7157 {
7158 let s = val.to_string();
7159 start.push_attribute(("axis", s.as_str()));
7160 }
7161 }
7162 if let Some(ref val) = self.data_field {
7163 start.push_attribute(("dataField", if *val { "1" } else { "0" }));
7164 }
7165 if let Some(ref val) = self.subtotal_caption {
7166 start.push_attribute(("subtotalCaption", val.as_str()));
7167 }
7168 if let Some(ref val) = self.show_drop_downs {
7169 start.push_attribute(("showDropDowns", if *val { "1" } else { "0" }));
7170 }
7171 if let Some(ref val) = self.hidden_level {
7172 start.push_attribute(("hiddenLevel", if *val { "1" } else { "0" }));
7173 }
7174 if let Some(ref val) = self.unique_member_property {
7175 start.push_attribute(("uniqueMemberProperty", val.as_str()));
7176 }
7177 if let Some(ref val) = self.compact {
7178 start.push_attribute(("compact", if *val { "1" } else { "0" }));
7179 }
7180 if let Some(ref val) = self.all_drilled {
7181 start.push_attribute(("allDrilled", if *val { "1" } else { "0" }));
7182 }
7183 if let Some(ref val) = self.number_format_id {
7184 {
7185 let s = val.to_string();
7186 start.push_attribute(("numFmtId", s.as_str()));
7187 }
7188 }
7189 if let Some(ref val) = self.outline {
7190 start.push_attribute(("outline", if *val { "1" } else { "0" }));
7191 }
7192 if let Some(ref val) = self.subtotal_top {
7193 start.push_attribute(("subtotalTop", if *val { "1" } else { "0" }));
7194 }
7195 if let Some(ref val) = self.drag_to_row {
7196 start.push_attribute(("dragToRow", if *val { "1" } else { "0" }));
7197 }
7198 if let Some(ref val) = self.drag_to_col {
7199 start.push_attribute(("dragToCol", if *val { "1" } else { "0" }));
7200 }
7201 if let Some(ref val) = self.multiple_item_selection_allowed {
7202 start.push_attribute(("multipleItemSelectionAllowed", if *val { "1" } else { "0" }));
7203 }
7204 if let Some(ref val) = self.drag_to_page {
7205 start.push_attribute(("dragToPage", if *val { "1" } else { "0" }));
7206 }
7207 if let Some(ref val) = self.drag_to_data {
7208 start.push_attribute(("dragToData", if *val { "1" } else { "0" }));
7209 }
7210 if let Some(ref val) = self.drag_off {
7211 start.push_attribute(("dragOff", if *val { "1" } else { "0" }));
7212 }
7213 if let Some(ref val) = self.show_all {
7214 start.push_attribute(("showAll", if *val { "1" } else { "0" }));
7215 }
7216 if let Some(ref val) = self.insert_blank_row {
7217 start.push_attribute(("insertBlankRow", if *val { "1" } else { "0" }));
7218 }
7219 if let Some(ref val) = self.server_field {
7220 start.push_attribute(("serverField", if *val { "1" } else { "0" }));
7221 }
7222 if let Some(ref val) = self.insert_page_break {
7223 start.push_attribute(("insertPageBreak", if *val { "1" } else { "0" }));
7224 }
7225 if let Some(ref val) = self.auto_show {
7226 start.push_attribute(("autoShow", if *val { "1" } else { "0" }));
7227 }
7228 if let Some(ref val) = self.top_auto_show {
7229 start.push_attribute(("topAutoShow", if *val { "1" } else { "0" }));
7230 }
7231 if let Some(ref val) = self.hide_new_items {
7232 start.push_attribute(("hideNewItems", if *val { "1" } else { "0" }));
7233 }
7234 if let Some(ref val) = self.measure_filter {
7235 start.push_attribute(("measureFilter", if *val { "1" } else { "0" }));
7236 }
7237 if let Some(ref val) = self.include_new_items_in_filter {
7238 start.push_attribute(("includeNewItemsInFilter", if *val { "1" } else { "0" }));
7239 }
7240 if let Some(ref val) = self.item_page_count {
7241 {
7242 let s = val.to_string();
7243 start.push_attribute(("itemPageCount", s.as_str()));
7244 }
7245 }
7246 if let Some(ref val) = self.sort_type {
7247 {
7248 let s = val.to_string();
7249 start.push_attribute(("sortType", s.as_str()));
7250 }
7251 }
7252 if let Some(ref val) = self.data_source_sort {
7253 start.push_attribute(("dataSourceSort", if *val { "1" } else { "0" }));
7254 }
7255 if let Some(ref val) = self.non_auto_sort_default {
7256 start.push_attribute(("nonAutoSortDefault", if *val { "1" } else { "0" }));
7257 }
7258 if let Some(ref val) = self.rank_by {
7259 {
7260 let s = val.to_string();
7261 start.push_attribute(("rankBy", s.as_str()));
7262 }
7263 }
7264 if let Some(ref val) = self.default_subtotal {
7265 start.push_attribute(("defaultSubtotal", if *val { "1" } else { "0" }));
7266 }
7267 if let Some(ref val) = self.sum_subtotal {
7268 start.push_attribute(("sumSubtotal", if *val { "1" } else { "0" }));
7269 }
7270 if let Some(ref val) = self.count_a_subtotal {
7271 start.push_attribute(("countASubtotal", if *val { "1" } else { "0" }));
7272 }
7273 if let Some(ref val) = self.avg_subtotal {
7274 start.push_attribute(("avgSubtotal", if *val { "1" } else { "0" }));
7275 }
7276 if let Some(ref val) = self.max_subtotal {
7277 start.push_attribute(("maxSubtotal", if *val { "1" } else { "0" }));
7278 }
7279 if let Some(ref val) = self.min_subtotal {
7280 start.push_attribute(("minSubtotal", if *val { "1" } else { "0" }));
7281 }
7282 if let Some(ref val) = self.product_subtotal {
7283 start.push_attribute(("productSubtotal", if *val { "1" } else { "0" }));
7284 }
7285 if let Some(ref val) = self.count_subtotal {
7286 start.push_attribute(("countSubtotal", if *val { "1" } else { "0" }));
7287 }
7288 if let Some(ref val) = self.std_dev_subtotal {
7289 start.push_attribute(("stdDevSubtotal", if *val { "1" } else { "0" }));
7290 }
7291 if let Some(ref val) = self.std_dev_p_subtotal {
7292 start.push_attribute(("stdDevPSubtotal", if *val { "1" } else { "0" }));
7293 }
7294 if let Some(ref val) = self.var_subtotal {
7295 start.push_attribute(("varSubtotal", if *val { "1" } else { "0" }));
7296 }
7297 if let Some(ref val) = self.var_p_subtotal {
7298 start.push_attribute(("varPSubtotal", if *val { "1" } else { "0" }));
7299 }
7300 if let Some(ref val) = self.show_prop_cell {
7301 start.push_attribute(("showPropCell", if *val { "1" } else { "0" }));
7302 }
7303 if let Some(ref val) = self.show_prop_tip {
7304 start.push_attribute(("showPropTip", if *val { "1" } else { "0" }));
7305 }
7306 if let Some(ref val) = self.show_prop_as_caption {
7307 start.push_attribute(("showPropAsCaption", if *val { "1" } else { "0" }));
7308 }
7309 if let Some(ref val) = self.default_attribute_drill_state {
7310 start.push_attribute(("defaultAttributeDrillState", if *val { "1" } else { "0" }));
7311 }
7312 #[cfg(feature = "extra-attrs")]
7313 for (key, value) in &self.extra_attrs {
7314 start.push_attribute((key.as_str(), value.as_str()));
7315 }
7316 start
7317 }
7318
7319 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
7320 #[cfg(feature = "extra-children")]
7321 let mut extra_iter = self.extra_children.iter().peekable();
7322 #[cfg(feature = "extra-children")]
7323 let mut emit_idx: usize = 0;
7324 #[cfg(feature = "extra-children")]
7325 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7326 extra_iter
7327 .next()
7328 .unwrap()
7329 .node
7330 .write_to(writer)
7331 .map_err(SerializeError::from)?;
7332 }
7333 if let Some(ref val) = self.items {
7334 val.write_element("items", writer)?;
7335 }
7336 #[cfg(feature = "extra-children")]
7337 {
7338 emit_idx += 1;
7339 }
7340 #[cfg(feature = "extra-children")]
7341 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7342 extra_iter
7343 .next()
7344 .unwrap()
7345 .node
7346 .write_to(writer)
7347 .map_err(SerializeError::from)?;
7348 }
7349 if let Some(ref val) = self.auto_sort_scope {
7350 val.write_element("autoSortScope", writer)?;
7351 }
7352 #[cfg(feature = "extra-children")]
7353 {
7354 emit_idx += 1;
7355 }
7356 #[cfg(feature = "extra-children")]
7357 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7358 extra_iter
7359 .next()
7360 .unwrap()
7361 .node
7362 .write_to(writer)
7363 .map_err(SerializeError::from)?;
7364 }
7365 if let Some(ref val) = self.extension_list {
7366 val.write_element("extLst", writer)?;
7367 }
7368 #[cfg(feature = "extra-children")]
7369 {
7370 emit_idx += 1;
7371 }
7372 #[cfg(feature = "extra-children")]
7373 for extra in extra_iter {
7374 extra.node.write_to(writer).map_err(SerializeError::from)?;
7375 }
7376 Ok(())
7377 }
7378
7379 fn is_empty_element(&self) -> bool {
7380 if self.items.is_some() {
7381 return false;
7382 }
7383 if self.auto_sort_scope.is_some() {
7384 return false;
7385 }
7386 if self.extension_list.is_some() {
7387 return false;
7388 }
7389 #[cfg(feature = "extra-children")]
7390 if !self.extra_children.is_empty() {
7391 return false;
7392 }
7393 true
7394 }
7395}
7396
7397impl ToXml for PivotItems {
7398 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7399 #[allow(unused_mut)]
7400 let mut start = start;
7401 if let Some(ref val) = self.count {
7402 {
7403 let s = val.to_string();
7404 start.push_attribute(("count", s.as_str()));
7405 }
7406 }
7407 #[cfg(feature = "extra-attrs")]
7408 for (key, value) in &self.extra_attrs {
7409 start.push_attribute((key.as_str(), value.as_str()));
7410 }
7411 start
7412 }
7413
7414 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
7415 #[cfg(feature = "extra-children")]
7416 let mut extra_iter = self.extra_children.iter().peekable();
7417 #[cfg(feature = "extra-children")]
7418 let mut emit_idx: usize = 0;
7419 for item in &self.item {
7420 #[cfg(feature = "extra-children")]
7421 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7422 extra_iter
7423 .next()
7424 .unwrap()
7425 .node
7426 .write_to(writer)
7427 .map_err(SerializeError::from)?;
7428 }
7429 item.write_element("item", writer)?;
7430 #[cfg(feature = "extra-children")]
7431 {
7432 emit_idx += 1;
7433 }
7434 }
7435 #[cfg(feature = "extra-children")]
7436 for extra in extra_iter {
7437 extra.node.write_to(writer).map_err(SerializeError::from)?;
7438 }
7439 Ok(())
7440 }
7441
7442 fn is_empty_element(&self) -> bool {
7443 if !self.item.is_empty() {
7444 return false;
7445 }
7446 #[cfg(feature = "extra-children")]
7447 if !self.extra_children.is_empty() {
7448 return false;
7449 }
7450 true
7451 }
7452}
7453
7454impl ToXml for PivotItem {
7455 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7456 #[allow(unused_mut)]
7457 let mut start = start;
7458 if let Some(ref val) = self.n {
7459 start.push_attribute(("n", val.as_str()));
7460 }
7461 if let Some(ref val) = self.cell_type {
7462 {
7463 let s = val.to_string();
7464 start.push_attribute(("t", s.as_str()));
7465 }
7466 }
7467 if let Some(ref val) = self.height {
7468 start.push_attribute(("h", if *val { "1" } else { "0" }));
7469 }
7470 if let Some(ref val) = self.style_index {
7471 start.push_attribute(("s", if *val { "1" } else { "0" }));
7472 }
7473 if let Some(ref val) = self.sd {
7474 start.push_attribute(("sd", if *val { "1" } else { "0" }));
7475 }
7476 if let Some(ref val) = self.formula {
7477 start.push_attribute(("f", if *val { "1" } else { "0" }));
7478 }
7479 if let Some(ref val) = self.m {
7480 start.push_attribute(("m", if *val { "1" } else { "0" }));
7481 }
7482 if let Some(ref val) = self.cells {
7483 start.push_attribute(("c", if *val { "1" } else { "0" }));
7484 }
7485 if let Some(ref val) = self.x {
7486 {
7487 let s = val.to_string();
7488 start.push_attribute(("x", s.as_str()));
7489 }
7490 }
7491 if let Some(ref val) = self.d {
7492 start.push_attribute(("d", if *val { "1" } else { "0" }));
7493 }
7494 if let Some(ref val) = self.e {
7495 start.push_attribute(("e", if *val { "1" } else { "0" }));
7496 }
7497 #[cfg(feature = "extra-attrs")]
7498 for (key, value) in &self.extra_attrs {
7499 start.push_attribute((key.as_str(), value.as_str()));
7500 }
7501 start
7502 }
7503
7504 fn is_empty_element(&self) -> bool {
7505 true
7506 }
7507}
7508
7509impl ToXml for PageFields {
7510 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7511 #[allow(unused_mut)]
7512 let mut start = start;
7513 if let Some(ref val) = self.count {
7514 {
7515 let s = val.to_string();
7516 start.push_attribute(("count", s.as_str()));
7517 }
7518 }
7519 #[cfg(feature = "extra-attrs")]
7520 for (key, value) in &self.extra_attrs {
7521 start.push_attribute((key.as_str(), value.as_str()));
7522 }
7523 start
7524 }
7525
7526 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
7527 #[cfg(feature = "extra-children")]
7528 let mut extra_iter = self.extra_children.iter().peekable();
7529 #[cfg(feature = "extra-children")]
7530 let mut emit_idx: usize = 0;
7531 for item in &self.page_field {
7532 #[cfg(feature = "extra-children")]
7533 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7534 extra_iter
7535 .next()
7536 .unwrap()
7537 .node
7538 .write_to(writer)
7539 .map_err(SerializeError::from)?;
7540 }
7541 item.write_element("pageField", writer)?;
7542 #[cfg(feature = "extra-children")]
7543 {
7544 emit_idx += 1;
7545 }
7546 }
7547 #[cfg(feature = "extra-children")]
7548 for extra in extra_iter {
7549 extra.node.write_to(writer).map_err(SerializeError::from)?;
7550 }
7551 Ok(())
7552 }
7553
7554 fn is_empty_element(&self) -> bool {
7555 if !self.page_field.is_empty() {
7556 return false;
7557 }
7558 #[cfg(feature = "extra-children")]
7559 if !self.extra_children.is_empty() {
7560 return false;
7561 }
7562 true
7563 }
7564}
7565
7566impl ToXml for PageField {
7567 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7568 #[allow(unused_mut)]
7569 let mut start = start;
7570 {
7571 let val = &self.fld;
7572 {
7573 let s = val.to_string();
7574 start.push_attribute(("fld", s.as_str()));
7575 }
7576 }
7577 if let Some(ref val) = self.item {
7578 {
7579 let s = val.to_string();
7580 start.push_attribute(("item", s.as_str()));
7581 }
7582 }
7583 if let Some(ref val) = self.hier {
7584 {
7585 let s = val.to_string();
7586 start.push_attribute(("hier", s.as_str()));
7587 }
7588 }
7589 if let Some(ref val) = self.name {
7590 start.push_attribute(("name", val.as_str()));
7591 }
7592 if let Some(ref val) = self.cap {
7593 start.push_attribute(("cap", val.as_str()));
7594 }
7595 #[cfg(feature = "extra-attrs")]
7596 for (key, value) in &self.extra_attrs {
7597 start.push_attribute((key.as_str(), value.as_str()));
7598 }
7599 start
7600 }
7601
7602 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
7603 #[cfg(feature = "extra-children")]
7604 let mut extra_iter = self.extra_children.iter().peekable();
7605 #[cfg(feature = "extra-children")]
7606 let mut emit_idx: usize = 0;
7607 #[cfg(feature = "extra-children")]
7608 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7609 extra_iter
7610 .next()
7611 .unwrap()
7612 .node
7613 .write_to(writer)
7614 .map_err(SerializeError::from)?;
7615 }
7616 if let Some(ref val) = self.extension_list {
7617 val.write_element("extLst", writer)?;
7618 }
7619 #[cfg(feature = "extra-children")]
7620 {
7621 emit_idx += 1;
7622 }
7623 #[cfg(feature = "extra-children")]
7624 for extra in extra_iter {
7625 extra.node.write_to(writer).map_err(SerializeError::from)?;
7626 }
7627 Ok(())
7628 }
7629
7630 fn is_empty_element(&self) -> bool {
7631 if self.extension_list.is_some() {
7632 return false;
7633 }
7634 #[cfg(feature = "extra-children")]
7635 if !self.extra_children.is_empty() {
7636 return false;
7637 }
7638 true
7639 }
7640}
7641
7642impl ToXml for DataFields {
7643 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7644 #[allow(unused_mut)]
7645 let mut start = start;
7646 if let Some(ref val) = self.count {
7647 {
7648 let s = val.to_string();
7649 start.push_attribute(("count", s.as_str()));
7650 }
7651 }
7652 #[cfg(feature = "extra-attrs")]
7653 for (key, value) in &self.extra_attrs {
7654 start.push_attribute((key.as_str(), value.as_str()));
7655 }
7656 start
7657 }
7658
7659 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
7660 #[cfg(feature = "extra-children")]
7661 let mut extra_iter = self.extra_children.iter().peekable();
7662 #[cfg(feature = "extra-children")]
7663 let mut emit_idx: usize = 0;
7664 for item in &self.data_field {
7665 #[cfg(feature = "extra-children")]
7666 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7667 extra_iter
7668 .next()
7669 .unwrap()
7670 .node
7671 .write_to(writer)
7672 .map_err(SerializeError::from)?;
7673 }
7674 item.write_element("dataField", writer)?;
7675 #[cfg(feature = "extra-children")]
7676 {
7677 emit_idx += 1;
7678 }
7679 }
7680 #[cfg(feature = "extra-children")]
7681 for extra in extra_iter {
7682 extra.node.write_to(writer).map_err(SerializeError::from)?;
7683 }
7684 Ok(())
7685 }
7686
7687 fn is_empty_element(&self) -> bool {
7688 if !self.data_field.is_empty() {
7689 return false;
7690 }
7691 #[cfg(feature = "extra-children")]
7692 if !self.extra_children.is_empty() {
7693 return false;
7694 }
7695 true
7696 }
7697}
7698
7699impl ToXml for DataField {
7700 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7701 #[allow(unused_mut)]
7702 let mut start = start;
7703 if let Some(ref val) = self.name {
7704 start.push_attribute(("name", val.as_str()));
7705 }
7706 {
7707 let val = &self.fld;
7708 {
7709 let s = val.to_string();
7710 start.push_attribute(("fld", s.as_str()));
7711 }
7712 }
7713 if let Some(ref val) = self.subtotal {
7714 {
7715 let s = val.to_string();
7716 start.push_attribute(("subtotal", s.as_str()));
7717 }
7718 }
7719 if let Some(ref val) = self.show_data_as {
7720 {
7721 let s = val.to_string();
7722 start.push_attribute(("showDataAs", s.as_str()));
7723 }
7724 }
7725 if let Some(ref val) = self.base_field {
7726 {
7727 let s = val.to_string();
7728 start.push_attribute(("baseField", s.as_str()));
7729 }
7730 }
7731 if let Some(ref val) = self.base_item {
7732 {
7733 let s = val.to_string();
7734 start.push_attribute(("baseItem", s.as_str()));
7735 }
7736 }
7737 if let Some(ref val) = self.number_format_id {
7738 {
7739 let s = val.to_string();
7740 start.push_attribute(("numFmtId", s.as_str()));
7741 }
7742 }
7743 #[cfg(feature = "extra-attrs")]
7744 for (key, value) in &self.extra_attrs {
7745 start.push_attribute((key.as_str(), value.as_str()));
7746 }
7747 start
7748 }
7749
7750 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
7751 #[cfg(feature = "extra-children")]
7752 let mut extra_iter = self.extra_children.iter().peekable();
7753 #[cfg(feature = "extra-children")]
7754 let mut emit_idx: usize = 0;
7755 #[cfg(feature = "extra-children")]
7756 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7757 extra_iter
7758 .next()
7759 .unwrap()
7760 .node
7761 .write_to(writer)
7762 .map_err(SerializeError::from)?;
7763 }
7764 if let Some(ref val) = self.extension_list {
7765 val.write_element("extLst", writer)?;
7766 }
7767 #[cfg(feature = "extra-children")]
7768 {
7769 emit_idx += 1;
7770 }
7771 #[cfg(feature = "extra-children")]
7772 for extra in extra_iter {
7773 extra.node.write_to(writer).map_err(SerializeError::from)?;
7774 }
7775 Ok(())
7776 }
7777
7778 fn is_empty_element(&self) -> bool {
7779 if self.extension_list.is_some() {
7780 return false;
7781 }
7782 #[cfg(feature = "extra-children")]
7783 if !self.extra_children.is_empty() {
7784 return false;
7785 }
7786 true
7787 }
7788}
7789
7790impl ToXml for CTRowItems {
7791 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7792 #[allow(unused_mut)]
7793 let mut start = start;
7794 if let Some(ref val) = self.count {
7795 {
7796 let s = val.to_string();
7797 start.push_attribute(("count", s.as_str()));
7798 }
7799 }
7800 #[cfg(feature = "extra-attrs")]
7801 for (key, value) in &self.extra_attrs {
7802 start.push_attribute((key.as_str(), value.as_str()));
7803 }
7804 start
7805 }
7806
7807 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
7808 #[cfg(feature = "extra-children")]
7809 let mut extra_iter = self.extra_children.iter().peekable();
7810 #[cfg(feature = "extra-children")]
7811 let mut emit_idx: usize = 0;
7812 for item in &self.i {
7813 #[cfg(feature = "extra-children")]
7814 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7815 extra_iter
7816 .next()
7817 .unwrap()
7818 .node
7819 .write_to(writer)
7820 .map_err(SerializeError::from)?;
7821 }
7822 item.write_element("i", writer)?;
7823 #[cfg(feature = "extra-children")]
7824 {
7825 emit_idx += 1;
7826 }
7827 }
7828 #[cfg(feature = "extra-children")]
7829 for extra in extra_iter {
7830 extra.node.write_to(writer).map_err(SerializeError::from)?;
7831 }
7832 Ok(())
7833 }
7834
7835 fn is_empty_element(&self) -> bool {
7836 if !self.i.is_empty() {
7837 return false;
7838 }
7839 #[cfg(feature = "extra-children")]
7840 if !self.extra_children.is_empty() {
7841 return false;
7842 }
7843 true
7844 }
7845}
7846
7847impl ToXml for CTColItems {
7848 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7849 #[allow(unused_mut)]
7850 let mut start = start;
7851 if let Some(ref val) = self.count {
7852 {
7853 let s = val.to_string();
7854 start.push_attribute(("count", s.as_str()));
7855 }
7856 }
7857 #[cfg(feature = "extra-attrs")]
7858 for (key, value) in &self.extra_attrs {
7859 start.push_attribute((key.as_str(), value.as_str()));
7860 }
7861 start
7862 }
7863
7864 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
7865 #[cfg(feature = "extra-children")]
7866 let mut extra_iter = self.extra_children.iter().peekable();
7867 #[cfg(feature = "extra-children")]
7868 let mut emit_idx: usize = 0;
7869 for item in &self.i {
7870 #[cfg(feature = "extra-children")]
7871 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7872 extra_iter
7873 .next()
7874 .unwrap()
7875 .node
7876 .write_to(writer)
7877 .map_err(SerializeError::from)?;
7878 }
7879 item.write_element("i", writer)?;
7880 #[cfg(feature = "extra-children")]
7881 {
7882 emit_idx += 1;
7883 }
7884 }
7885 #[cfg(feature = "extra-children")]
7886 for extra in extra_iter {
7887 extra.node.write_to(writer).map_err(SerializeError::from)?;
7888 }
7889 Ok(())
7890 }
7891
7892 fn is_empty_element(&self) -> bool {
7893 if !self.i.is_empty() {
7894 return false;
7895 }
7896 #[cfg(feature = "extra-children")]
7897 if !self.extra_children.is_empty() {
7898 return false;
7899 }
7900 true
7901 }
7902}
7903
7904impl ToXml for CTI {
7905 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7906 #[allow(unused_mut)]
7907 let mut start = start;
7908 if let Some(ref val) = self.cell_type {
7909 {
7910 let s = val.to_string();
7911 start.push_attribute(("t", s.as_str()));
7912 }
7913 }
7914 if let Some(ref val) = self.reference {
7915 {
7916 let s = val.to_string();
7917 start.push_attribute(("r", s.as_str()));
7918 }
7919 }
7920 if let Some(ref val) = self.i {
7921 {
7922 let s = val.to_string();
7923 start.push_attribute(("i", s.as_str()));
7924 }
7925 }
7926 #[cfg(feature = "extra-attrs")]
7927 for (key, value) in &self.extra_attrs {
7928 start.push_attribute((key.as_str(), value.as_str()));
7929 }
7930 start
7931 }
7932
7933 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
7934 #[cfg(feature = "extra-children")]
7935 let mut extra_iter = self.extra_children.iter().peekable();
7936 #[cfg(feature = "extra-children")]
7937 let mut emit_idx: usize = 0;
7938 for item in &self.x {
7939 #[cfg(feature = "extra-children")]
7940 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
7941 extra_iter
7942 .next()
7943 .unwrap()
7944 .node
7945 .write_to(writer)
7946 .map_err(SerializeError::from)?;
7947 }
7948 item.write_element("x", writer)?;
7949 #[cfg(feature = "extra-children")]
7950 {
7951 emit_idx += 1;
7952 }
7953 }
7954 #[cfg(feature = "extra-children")]
7955 for extra in extra_iter {
7956 extra.node.write_to(writer).map_err(SerializeError::from)?;
7957 }
7958 Ok(())
7959 }
7960
7961 fn is_empty_element(&self) -> bool {
7962 if !self.x.is_empty() {
7963 return false;
7964 }
7965 #[cfg(feature = "extra-children")]
7966 if !self.extra_children.is_empty() {
7967 return false;
7968 }
7969 true
7970 }
7971}
7972
7973impl ToXml for CTX {
7974 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7975 #[allow(unused_mut)]
7976 let mut start = start;
7977 if let Some(ref val) = self.value {
7978 {
7979 let s = val.to_string();
7980 start.push_attribute(("v", s.as_str()));
7981 }
7982 }
7983 #[cfg(feature = "extra-attrs")]
7984 for (key, value) in &self.extra_attrs {
7985 start.push_attribute((key.as_str(), value.as_str()));
7986 }
7987 start
7988 }
7989
7990 fn is_empty_element(&self) -> bool {
7991 true
7992 }
7993}
7994
7995impl ToXml for RowFields {
7996 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
7997 #[allow(unused_mut)]
7998 let mut start = start;
7999 if let Some(ref val) = self.count {
8000 {
8001 let s = val.to_string();
8002 start.push_attribute(("count", s.as_str()));
8003 }
8004 }
8005 #[cfg(feature = "extra-attrs")]
8006 for (key, value) in &self.extra_attrs {
8007 start.push_attribute((key.as_str(), value.as_str()));
8008 }
8009 start
8010 }
8011
8012 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8013 #[cfg(feature = "extra-children")]
8014 let mut extra_iter = self.extra_children.iter().peekable();
8015 #[cfg(feature = "extra-children")]
8016 let mut emit_idx: usize = 0;
8017 for item in &self.field {
8018 #[cfg(feature = "extra-children")]
8019 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8020 extra_iter
8021 .next()
8022 .unwrap()
8023 .node
8024 .write_to(writer)
8025 .map_err(SerializeError::from)?;
8026 }
8027 item.write_element("field", writer)?;
8028 #[cfg(feature = "extra-children")]
8029 {
8030 emit_idx += 1;
8031 }
8032 }
8033 #[cfg(feature = "extra-children")]
8034 for extra in extra_iter {
8035 extra.node.write_to(writer).map_err(SerializeError::from)?;
8036 }
8037 Ok(())
8038 }
8039
8040 fn is_empty_element(&self) -> bool {
8041 if !self.field.is_empty() {
8042 return false;
8043 }
8044 #[cfg(feature = "extra-children")]
8045 if !self.extra_children.is_empty() {
8046 return false;
8047 }
8048 true
8049 }
8050}
8051
8052impl ToXml for ColFields {
8053 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8054 #[allow(unused_mut)]
8055 let mut start = start;
8056 if let Some(ref val) = self.count {
8057 {
8058 let s = val.to_string();
8059 start.push_attribute(("count", s.as_str()));
8060 }
8061 }
8062 #[cfg(feature = "extra-attrs")]
8063 for (key, value) in &self.extra_attrs {
8064 start.push_attribute((key.as_str(), value.as_str()));
8065 }
8066 start
8067 }
8068
8069 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8070 #[cfg(feature = "extra-children")]
8071 let mut extra_iter = self.extra_children.iter().peekable();
8072 #[cfg(feature = "extra-children")]
8073 let mut emit_idx: usize = 0;
8074 for item in &self.field {
8075 #[cfg(feature = "extra-children")]
8076 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8077 extra_iter
8078 .next()
8079 .unwrap()
8080 .node
8081 .write_to(writer)
8082 .map_err(SerializeError::from)?;
8083 }
8084 item.write_element("field", writer)?;
8085 #[cfg(feature = "extra-children")]
8086 {
8087 emit_idx += 1;
8088 }
8089 }
8090 #[cfg(feature = "extra-children")]
8091 for extra in extra_iter {
8092 extra.node.write_to(writer).map_err(SerializeError::from)?;
8093 }
8094 Ok(())
8095 }
8096
8097 fn is_empty_element(&self) -> bool {
8098 if !self.field.is_empty() {
8099 return false;
8100 }
8101 #[cfg(feature = "extra-children")]
8102 if !self.extra_children.is_empty() {
8103 return false;
8104 }
8105 true
8106 }
8107}
8108
8109impl ToXml for CTField {
8110 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8111 #[allow(unused_mut)]
8112 let mut start = start;
8113 {
8114 let val = &self.x;
8115 {
8116 let s = val.to_string();
8117 start.push_attribute(("x", s.as_str()));
8118 }
8119 }
8120 #[cfg(feature = "extra-attrs")]
8121 for (key, value) in &self.extra_attrs {
8122 start.push_attribute((key.as_str(), value.as_str()));
8123 }
8124 start
8125 }
8126
8127 fn is_empty_element(&self) -> bool {
8128 true
8129 }
8130}
8131
8132impl ToXml for CTFormats {
8133 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8134 #[allow(unused_mut)]
8135 let mut start = start;
8136 if let Some(ref val) = self.count {
8137 {
8138 let s = val.to_string();
8139 start.push_attribute(("count", s.as_str()));
8140 }
8141 }
8142 #[cfg(feature = "extra-attrs")]
8143 for (key, value) in &self.extra_attrs {
8144 start.push_attribute((key.as_str(), value.as_str()));
8145 }
8146 start
8147 }
8148
8149 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8150 #[cfg(feature = "extra-children")]
8151 let mut extra_iter = self.extra_children.iter().peekable();
8152 #[cfg(feature = "extra-children")]
8153 let mut emit_idx: usize = 0;
8154 for item in &self.format {
8155 #[cfg(feature = "extra-children")]
8156 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8157 extra_iter
8158 .next()
8159 .unwrap()
8160 .node
8161 .write_to(writer)
8162 .map_err(SerializeError::from)?;
8163 }
8164 item.write_element("format", writer)?;
8165 #[cfg(feature = "extra-children")]
8166 {
8167 emit_idx += 1;
8168 }
8169 }
8170 #[cfg(feature = "extra-children")]
8171 for extra in extra_iter {
8172 extra.node.write_to(writer).map_err(SerializeError::from)?;
8173 }
8174 Ok(())
8175 }
8176
8177 fn is_empty_element(&self) -> bool {
8178 if !self.format.is_empty() {
8179 return false;
8180 }
8181 #[cfg(feature = "extra-children")]
8182 if !self.extra_children.is_empty() {
8183 return false;
8184 }
8185 true
8186 }
8187}
8188
8189impl ToXml for CTFormat {
8190 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8191 #[allow(unused_mut)]
8192 let mut start = start;
8193 if let Some(ref val) = self.action {
8194 {
8195 let s = val.to_string();
8196 start.push_attribute(("action", s.as_str()));
8197 }
8198 }
8199 if let Some(ref val) = self.dxf_id {
8200 {
8201 let s = val.to_string();
8202 start.push_attribute(("dxfId", s.as_str()));
8203 }
8204 }
8205 #[cfg(feature = "extra-attrs")]
8206 for (key, value) in &self.extra_attrs {
8207 start.push_attribute((key.as_str(), value.as_str()));
8208 }
8209 start
8210 }
8211
8212 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8213 #[cfg(feature = "extra-children")]
8214 let mut extra_iter = self.extra_children.iter().peekable();
8215 #[cfg(feature = "extra-children")]
8216 let mut emit_idx: usize = 0;
8217 #[cfg(feature = "extra-children")]
8218 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8219 extra_iter
8220 .next()
8221 .unwrap()
8222 .node
8223 .write_to(writer)
8224 .map_err(SerializeError::from)?;
8225 }
8226 {
8227 let val = &self.pivot_area;
8228 val.write_element("pivotArea", writer)?;
8229 }
8230 #[cfg(feature = "extra-children")]
8231 {
8232 emit_idx += 1;
8233 }
8234 #[cfg(feature = "extra-children")]
8235 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8236 extra_iter
8237 .next()
8238 .unwrap()
8239 .node
8240 .write_to(writer)
8241 .map_err(SerializeError::from)?;
8242 }
8243 if let Some(ref val) = self.extension_list {
8244 val.write_element("extLst", writer)?;
8245 }
8246 #[cfg(feature = "extra-children")]
8247 {
8248 emit_idx += 1;
8249 }
8250 #[cfg(feature = "extra-children")]
8251 for extra in extra_iter {
8252 extra.node.write_to(writer).map_err(SerializeError::from)?;
8253 }
8254 Ok(())
8255 }
8256
8257 fn is_empty_element(&self) -> bool {
8258 false
8259 }
8260}
8261
8262impl ToXml for CTConditionalFormats {
8263 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8264 #[allow(unused_mut)]
8265 let mut start = start;
8266 if let Some(ref val) = self.count {
8267 {
8268 let s = val.to_string();
8269 start.push_attribute(("count", s.as_str()));
8270 }
8271 }
8272 #[cfg(feature = "extra-attrs")]
8273 for (key, value) in &self.extra_attrs {
8274 start.push_attribute((key.as_str(), value.as_str()));
8275 }
8276 start
8277 }
8278
8279 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8280 #[cfg(feature = "extra-children")]
8281 let mut extra_iter = self.extra_children.iter().peekable();
8282 #[cfg(feature = "extra-children")]
8283 let mut emit_idx: usize = 0;
8284 for item in &self.conditional_format {
8285 #[cfg(feature = "extra-children")]
8286 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8287 extra_iter
8288 .next()
8289 .unwrap()
8290 .node
8291 .write_to(writer)
8292 .map_err(SerializeError::from)?;
8293 }
8294 item.write_element("conditionalFormat", writer)?;
8295 #[cfg(feature = "extra-children")]
8296 {
8297 emit_idx += 1;
8298 }
8299 }
8300 #[cfg(feature = "extra-children")]
8301 for extra in extra_iter {
8302 extra.node.write_to(writer).map_err(SerializeError::from)?;
8303 }
8304 Ok(())
8305 }
8306
8307 fn is_empty_element(&self) -> bool {
8308 if !self.conditional_format.is_empty() {
8309 return false;
8310 }
8311 #[cfg(feature = "extra-children")]
8312 if !self.extra_children.is_empty() {
8313 return false;
8314 }
8315 true
8316 }
8317}
8318
8319impl ToXml for CTConditionalFormat {
8320 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8321 #[allow(unused_mut)]
8322 let mut start = start;
8323 if let Some(ref val) = self.scope {
8324 {
8325 let s = val.to_string();
8326 start.push_attribute(("scope", s.as_str()));
8327 }
8328 }
8329 if let Some(ref val) = self.r#type {
8330 {
8331 let s = val.to_string();
8332 start.push_attribute(("type", s.as_str()));
8333 }
8334 }
8335 {
8336 let val = &self.priority;
8337 {
8338 let s = val.to_string();
8339 start.push_attribute(("priority", s.as_str()));
8340 }
8341 }
8342 #[cfg(feature = "extra-attrs")]
8343 for (key, value) in &self.extra_attrs {
8344 start.push_attribute((key.as_str(), value.as_str()));
8345 }
8346 start
8347 }
8348
8349 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8350 #[cfg(feature = "extra-children")]
8351 let mut extra_iter = self.extra_children.iter().peekable();
8352 #[cfg(feature = "extra-children")]
8353 let mut emit_idx: usize = 0;
8354 #[cfg(feature = "extra-children")]
8355 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8356 extra_iter
8357 .next()
8358 .unwrap()
8359 .node
8360 .write_to(writer)
8361 .map_err(SerializeError::from)?;
8362 }
8363 {
8364 let val = &self.pivot_areas;
8365 val.write_element("pivotAreas", writer)?;
8366 }
8367 #[cfg(feature = "extra-children")]
8368 {
8369 emit_idx += 1;
8370 }
8371 #[cfg(feature = "extra-children")]
8372 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8373 extra_iter
8374 .next()
8375 .unwrap()
8376 .node
8377 .write_to(writer)
8378 .map_err(SerializeError::from)?;
8379 }
8380 if let Some(ref val) = self.extension_list {
8381 val.write_element("extLst", writer)?;
8382 }
8383 #[cfg(feature = "extra-children")]
8384 {
8385 emit_idx += 1;
8386 }
8387 #[cfg(feature = "extra-children")]
8388 for extra in extra_iter {
8389 extra.node.write_to(writer).map_err(SerializeError::from)?;
8390 }
8391 Ok(())
8392 }
8393
8394 fn is_empty_element(&self) -> bool {
8395 false
8396 }
8397}
8398
8399impl ToXml for PivotAreas {
8400 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8401 #[allow(unused_mut)]
8402 let mut start = start;
8403 if let Some(ref val) = self.count {
8404 {
8405 let s = val.to_string();
8406 start.push_attribute(("count", s.as_str()));
8407 }
8408 }
8409 #[cfg(feature = "extra-attrs")]
8410 for (key, value) in &self.extra_attrs {
8411 start.push_attribute((key.as_str(), value.as_str()));
8412 }
8413 start
8414 }
8415
8416 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8417 #[cfg(feature = "extra-children")]
8418 let mut extra_iter = self.extra_children.iter().peekable();
8419 #[cfg(feature = "extra-children")]
8420 let mut emit_idx: usize = 0;
8421 for item in &self.pivot_area {
8422 #[cfg(feature = "extra-children")]
8423 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8424 extra_iter
8425 .next()
8426 .unwrap()
8427 .node
8428 .write_to(writer)
8429 .map_err(SerializeError::from)?;
8430 }
8431 item.write_element("pivotArea", writer)?;
8432 #[cfg(feature = "extra-children")]
8433 {
8434 emit_idx += 1;
8435 }
8436 }
8437 #[cfg(feature = "extra-children")]
8438 for extra in extra_iter {
8439 extra.node.write_to(writer).map_err(SerializeError::from)?;
8440 }
8441 Ok(())
8442 }
8443
8444 fn is_empty_element(&self) -> bool {
8445 if !self.pivot_area.is_empty() {
8446 return false;
8447 }
8448 #[cfg(feature = "extra-children")]
8449 if !self.extra_children.is_empty() {
8450 return false;
8451 }
8452 true
8453 }
8454}
8455
8456impl ToXml for CTChartFormats {
8457 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8458 #[allow(unused_mut)]
8459 let mut start = start;
8460 if let Some(ref val) = self.count {
8461 {
8462 let s = val.to_string();
8463 start.push_attribute(("count", s.as_str()));
8464 }
8465 }
8466 #[cfg(feature = "extra-attrs")]
8467 for (key, value) in &self.extra_attrs {
8468 start.push_attribute((key.as_str(), value.as_str()));
8469 }
8470 start
8471 }
8472
8473 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8474 #[cfg(feature = "extra-children")]
8475 let mut extra_iter = self.extra_children.iter().peekable();
8476 #[cfg(feature = "extra-children")]
8477 let mut emit_idx: usize = 0;
8478 for item in &self.chart_format {
8479 #[cfg(feature = "extra-children")]
8480 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8481 extra_iter
8482 .next()
8483 .unwrap()
8484 .node
8485 .write_to(writer)
8486 .map_err(SerializeError::from)?;
8487 }
8488 item.write_element("chartFormat", writer)?;
8489 #[cfg(feature = "extra-children")]
8490 {
8491 emit_idx += 1;
8492 }
8493 }
8494 #[cfg(feature = "extra-children")]
8495 for extra in extra_iter {
8496 extra.node.write_to(writer).map_err(SerializeError::from)?;
8497 }
8498 Ok(())
8499 }
8500
8501 fn is_empty_element(&self) -> bool {
8502 if !self.chart_format.is_empty() {
8503 return false;
8504 }
8505 #[cfg(feature = "extra-children")]
8506 if !self.extra_children.is_empty() {
8507 return false;
8508 }
8509 true
8510 }
8511}
8512
8513impl ToXml for CTChartFormat {
8514 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8515 #[allow(unused_mut)]
8516 let mut start = start;
8517 {
8518 let val = &self.chart;
8519 {
8520 let s = val.to_string();
8521 start.push_attribute(("chart", s.as_str()));
8522 }
8523 }
8524 {
8525 let val = &self.format;
8526 {
8527 let s = val.to_string();
8528 start.push_attribute(("format", s.as_str()));
8529 }
8530 }
8531 if let Some(ref val) = self.series {
8532 start.push_attribute(("series", if *val { "1" } else { "0" }));
8533 }
8534 #[cfg(feature = "extra-attrs")]
8535 for (key, value) in &self.extra_attrs {
8536 start.push_attribute((key.as_str(), value.as_str()));
8537 }
8538 start
8539 }
8540
8541 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8542 #[cfg(feature = "extra-children")]
8543 let mut extra_iter = self.extra_children.iter().peekable();
8544 #[cfg(feature = "extra-children")]
8545 let mut emit_idx: usize = 0;
8546 #[cfg(feature = "extra-children")]
8547 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8548 extra_iter
8549 .next()
8550 .unwrap()
8551 .node
8552 .write_to(writer)
8553 .map_err(SerializeError::from)?;
8554 }
8555 {
8556 let val = &self.pivot_area;
8557 val.write_element("pivotArea", writer)?;
8558 }
8559 #[cfg(feature = "extra-children")]
8560 {
8561 emit_idx += 1;
8562 }
8563 #[cfg(feature = "extra-children")]
8564 for extra in extra_iter {
8565 extra.node.write_to(writer).map_err(SerializeError::from)?;
8566 }
8567 Ok(())
8568 }
8569
8570 fn is_empty_element(&self) -> bool {
8571 false
8572 }
8573}
8574
8575impl ToXml for CTPivotHierarchies {
8576 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8577 #[allow(unused_mut)]
8578 let mut start = start;
8579 if let Some(ref val) = self.count {
8580 {
8581 let s = val.to_string();
8582 start.push_attribute(("count", s.as_str()));
8583 }
8584 }
8585 #[cfg(feature = "extra-attrs")]
8586 for (key, value) in &self.extra_attrs {
8587 start.push_attribute((key.as_str(), value.as_str()));
8588 }
8589 start
8590 }
8591
8592 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8593 #[cfg(feature = "extra-children")]
8594 let mut extra_iter = self.extra_children.iter().peekable();
8595 #[cfg(feature = "extra-children")]
8596 let mut emit_idx: usize = 0;
8597 for item in &self.pivot_hierarchy {
8598 #[cfg(feature = "extra-children")]
8599 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8600 extra_iter
8601 .next()
8602 .unwrap()
8603 .node
8604 .write_to(writer)
8605 .map_err(SerializeError::from)?;
8606 }
8607 item.write_element("pivotHierarchy", writer)?;
8608 #[cfg(feature = "extra-children")]
8609 {
8610 emit_idx += 1;
8611 }
8612 }
8613 #[cfg(feature = "extra-children")]
8614 for extra in extra_iter {
8615 extra.node.write_to(writer).map_err(SerializeError::from)?;
8616 }
8617 Ok(())
8618 }
8619
8620 fn is_empty_element(&self) -> bool {
8621 if !self.pivot_hierarchy.is_empty() {
8622 return false;
8623 }
8624 #[cfg(feature = "extra-children")]
8625 if !self.extra_children.is_empty() {
8626 return false;
8627 }
8628 true
8629 }
8630}
8631
8632impl ToXml for CTPivotHierarchy {
8633 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8634 #[allow(unused_mut)]
8635 let mut start = start;
8636 if let Some(ref val) = self.outline {
8637 start.push_attribute(("outline", if *val { "1" } else { "0" }));
8638 }
8639 if let Some(ref val) = self.multiple_item_selection_allowed {
8640 start.push_attribute(("multipleItemSelectionAllowed", if *val { "1" } else { "0" }));
8641 }
8642 if let Some(ref val) = self.subtotal_top {
8643 start.push_attribute(("subtotalTop", if *val { "1" } else { "0" }));
8644 }
8645 if let Some(ref val) = self.show_in_field_list {
8646 start.push_attribute(("showInFieldList", if *val { "1" } else { "0" }));
8647 }
8648 if let Some(ref val) = self.drag_to_row {
8649 start.push_attribute(("dragToRow", if *val { "1" } else { "0" }));
8650 }
8651 if let Some(ref val) = self.drag_to_col {
8652 start.push_attribute(("dragToCol", if *val { "1" } else { "0" }));
8653 }
8654 if let Some(ref val) = self.drag_to_page {
8655 start.push_attribute(("dragToPage", if *val { "1" } else { "0" }));
8656 }
8657 if let Some(ref val) = self.drag_to_data {
8658 start.push_attribute(("dragToData", if *val { "1" } else { "0" }));
8659 }
8660 if let Some(ref val) = self.drag_off {
8661 start.push_attribute(("dragOff", if *val { "1" } else { "0" }));
8662 }
8663 if let Some(ref val) = self.include_new_items_in_filter {
8664 start.push_attribute(("includeNewItemsInFilter", if *val { "1" } else { "0" }));
8665 }
8666 if let Some(ref val) = self.caption {
8667 start.push_attribute(("caption", val.as_str()));
8668 }
8669 #[cfg(feature = "extra-attrs")]
8670 for (key, value) in &self.extra_attrs {
8671 start.push_attribute((key.as_str(), value.as_str()));
8672 }
8673 start
8674 }
8675
8676 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8677 #[cfg(feature = "extra-children")]
8678 let mut extra_iter = self.extra_children.iter().peekable();
8679 #[cfg(feature = "extra-children")]
8680 let mut emit_idx: usize = 0;
8681 #[cfg(feature = "extra-children")]
8682 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8683 extra_iter
8684 .next()
8685 .unwrap()
8686 .node
8687 .write_to(writer)
8688 .map_err(SerializeError::from)?;
8689 }
8690 if let Some(ref val) = self.mps {
8691 val.write_element("mps", writer)?;
8692 }
8693 #[cfg(feature = "extra-children")]
8694 {
8695 emit_idx += 1;
8696 }
8697 for item in &self.members {
8698 #[cfg(feature = "extra-children")]
8699 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8700 extra_iter
8701 .next()
8702 .unwrap()
8703 .node
8704 .write_to(writer)
8705 .map_err(SerializeError::from)?;
8706 }
8707 item.write_element("members", writer)?;
8708 #[cfg(feature = "extra-children")]
8709 {
8710 emit_idx += 1;
8711 }
8712 }
8713 #[cfg(feature = "extra-children")]
8714 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8715 extra_iter
8716 .next()
8717 .unwrap()
8718 .node
8719 .write_to(writer)
8720 .map_err(SerializeError::from)?;
8721 }
8722 if let Some(ref val) = self.extension_list {
8723 val.write_element("extLst", writer)?;
8724 }
8725 #[cfg(feature = "extra-children")]
8726 {
8727 emit_idx += 1;
8728 }
8729 #[cfg(feature = "extra-children")]
8730 for extra in extra_iter {
8731 extra.node.write_to(writer).map_err(SerializeError::from)?;
8732 }
8733 Ok(())
8734 }
8735
8736 fn is_empty_element(&self) -> bool {
8737 if self.mps.is_some() {
8738 return false;
8739 }
8740 if !self.members.is_empty() {
8741 return false;
8742 }
8743 if self.extension_list.is_some() {
8744 return false;
8745 }
8746 #[cfg(feature = "extra-children")]
8747 if !self.extra_children.is_empty() {
8748 return false;
8749 }
8750 true
8751 }
8752}
8753
8754impl ToXml for CTRowHierarchiesUsage {
8755 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8756 #[allow(unused_mut)]
8757 let mut start = start;
8758 if let Some(ref val) = self.count {
8759 {
8760 let s = val.to_string();
8761 start.push_attribute(("count", s.as_str()));
8762 }
8763 }
8764 #[cfg(feature = "extra-attrs")]
8765 for (key, value) in &self.extra_attrs {
8766 start.push_attribute((key.as_str(), value.as_str()));
8767 }
8768 start
8769 }
8770
8771 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8772 #[cfg(feature = "extra-children")]
8773 let mut extra_iter = self.extra_children.iter().peekable();
8774 #[cfg(feature = "extra-children")]
8775 let mut emit_idx: usize = 0;
8776 for item in &self.row_hierarchy_usage {
8777 #[cfg(feature = "extra-children")]
8778 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8779 extra_iter
8780 .next()
8781 .unwrap()
8782 .node
8783 .write_to(writer)
8784 .map_err(SerializeError::from)?;
8785 }
8786 item.write_element("rowHierarchyUsage", writer)?;
8787 #[cfg(feature = "extra-children")]
8788 {
8789 emit_idx += 1;
8790 }
8791 }
8792 #[cfg(feature = "extra-children")]
8793 for extra in extra_iter {
8794 extra.node.write_to(writer).map_err(SerializeError::from)?;
8795 }
8796 Ok(())
8797 }
8798
8799 fn is_empty_element(&self) -> bool {
8800 if !self.row_hierarchy_usage.is_empty() {
8801 return false;
8802 }
8803 #[cfg(feature = "extra-children")]
8804 if !self.extra_children.is_empty() {
8805 return false;
8806 }
8807 true
8808 }
8809}
8810
8811impl ToXml for CTColHierarchiesUsage {
8812 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8813 #[allow(unused_mut)]
8814 let mut start = start;
8815 if let Some(ref val) = self.count {
8816 {
8817 let s = val.to_string();
8818 start.push_attribute(("count", s.as_str()));
8819 }
8820 }
8821 #[cfg(feature = "extra-attrs")]
8822 for (key, value) in &self.extra_attrs {
8823 start.push_attribute((key.as_str(), value.as_str()));
8824 }
8825 start
8826 }
8827
8828 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8829 #[cfg(feature = "extra-children")]
8830 let mut extra_iter = self.extra_children.iter().peekable();
8831 #[cfg(feature = "extra-children")]
8832 let mut emit_idx: usize = 0;
8833 for item in &self.col_hierarchy_usage {
8834 #[cfg(feature = "extra-children")]
8835 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8836 extra_iter
8837 .next()
8838 .unwrap()
8839 .node
8840 .write_to(writer)
8841 .map_err(SerializeError::from)?;
8842 }
8843 item.write_element("colHierarchyUsage", writer)?;
8844 #[cfg(feature = "extra-children")]
8845 {
8846 emit_idx += 1;
8847 }
8848 }
8849 #[cfg(feature = "extra-children")]
8850 for extra in extra_iter {
8851 extra.node.write_to(writer).map_err(SerializeError::from)?;
8852 }
8853 Ok(())
8854 }
8855
8856 fn is_empty_element(&self) -> bool {
8857 if !self.col_hierarchy_usage.is_empty() {
8858 return false;
8859 }
8860 #[cfg(feature = "extra-children")]
8861 if !self.extra_children.is_empty() {
8862 return false;
8863 }
8864 true
8865 }
8866}
8867
8868impl ToXml for CTHierarchyUsage {
8869 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8870 #[allow(unused_mut)]
8871 let mut start = start;
8872 {
8873 let val = &self.hierarchy_usage;
8874 {
8875 let s = val.to_string();
8876 start.push_attribute(("hierarchyUsage", s.as_str()));
8877 }
8878 }
8879 #[cfg(feature = "extra-attrs")]
8880 for (key, value) in &self.extra_attrs {
8881 start.push_attribute((key.as_str(), value.as_str()));
8882 }
8883 start
8884 }
8885
8886 fn is_empty_element(&self) -> bool {
8887 true
8888 }
8889}
8890
8891impl ToXml for CTMemberProperties {
8892 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8893 #[allow(unused_mut)]
8894 let mut start = start;
8895 if let Some(ref val) = self.count {
8896 {
8897 let s = val.to_string();
8898 start.push_attribute(("count", s.as_str()));
8899 }
8900 }
8901 #[cfg(feature = "extra-attrs")]
8902 for (key, value) in &self.extra_attrs {
8903 start.push_attribute((key.as_str(), value.as_str()));
8904 }
8905 start
8906 }
8907
8908 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
8909 #[cfg(feature = "extra-children")]
8910 let mut extra_iter = self.extra_children.iter().peekable();
8911 #[cfg(feature = "extra-children")]
8912 let mut emit_idx: usize = 0;
8913 for item in &self.mp {
8914 #[cfg(feature = "extra-children")]
8915 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
8916 extra_iter
8917 .next()
8918 .unwrap()
8919 .node
8920 .write_to(writer)
8921 .map_err(SerializeError::from)?;
8922 }
8923 item.write_element("mp", writer)?;
8924 #[cfg(feature = "extra-children")]
8925 {
8926 emit_idx += 1;
8927 }
8928 }
8929 #[cfg(feature = "extra-children")]
8930 for extra in extra_iter {
8931 extra.node.write_to(writer).map_err(SerializeError::from)?;
8932 }
8933 Ok(())
8934 }
8935
8936 fn is_empty_element(&self) -> bool {
8937 if !self.mp.is_empty() {
8938 return false;
8939 }
8940 #[cfg(feature = "extra-children")]
8941 if !self.extra_children.is_empty() {
8942 return false;
8943 }
8944 true
8945 }
8946}
8947
8948impl ToXml for CTMemberProperty {
8949 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
8950 #[allow(unused_mut)]
8951 let mut start = start;
8952 if let Some(ref val) = self.name {
8953 start.push_attribute(("name", val.as_str()));
8954 }
8955 if let Some(ref val) = self.show_cell {
8956 start.push_attribute(("showCell", if *val { "1" } else { "0" }));
8957 }
8958 if let Some(ref val) = self.show_tip {
8959 start.push_attribute(("showTip", if *val { "1" } else { "0" }));
8960 }
8961 if let Some(ref val) = self.show_as_caption {
8962 start.push_attribute(("showAsCaption", if *val { "1" } else { "0" }));
8963 }
8964 if let Some(ref val) = self.name_len {
8965 {
8966 let s = val.to_string();
8967 start.push_attribute(("nameLen", s.as_str()));
8968 }
8969 }
8970 if let Some(ref val) = self.p_pos {
8971 {
8972 let s = val.to_string();
8973 start.push_attribute(("pPos", s.as_str()));
8974 }
8975 }
8976 if let Some(ref val) = self.p_len {
8977 {
8978 let s = val.to_string();
8979 start.push_attribute(("pLen", s.as_str()));
8980 }
8981 }
8982 if let Some(ref val) = self.level {
8983 {
8984 let s = val.to_string();
8985 start.push_attribute(("level", s.as_str()));
8986 }
8987 }
8988 {
8989 let val = &self.field;
8990 {
8991 let s = val.to_string();
8992 start.push_attribute(("field", s.as_str()));
8993 }
8994 }
8995 #[cfg(feature = "extra-attrs")]
8996 for (key, value) in &self.extra_attrs {
8997 start.push_attribute((key.as_str(), value.as_str()));
8998 }
8999 start
9000 }
9001
9002 fn is_empty_element(&self) -> bool {
9003 true
9004 }
9005}
9006
9007impl ToXml for CTMembers {
9008 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9009 #[allow(unused_mut)]
9010 let mut start = start;
9011 if let Some(ref val) = self.count {
9012 {
9013 let s = val.to_string();
9014 start.push_attribute(("count", s.as_str()));
9015 }
9016 }
9017 if let Some(ref val) = self.level {
9018 {
9019 let s = val.to_string();
9020 start.push_attribute(("level", s.as_str()));
9021 }
9022 }
9023 #[cfg(feature = "extra-attrs")]
9024 for (key, value) in &self.extra_attrs {
9025 start.push_attribute((key.as_str(), value.as_str()));
9026 }
9027 start
9028 }
9029
9030 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
9031 #[cfg(feature = "extra-children")]
9032 let mut extra_iter = self.extra_children.iter().peekable();
9033 #[cfg(feature = "extra-children")]
9034 let mut emit_idx: usize = 0;
9035 for item in &self.member {
9036 #[cfg(feature = "extra-children")]
9037 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9038 extra_iter
9039 .next()
9040 .unwrap()
9041 .node
9042 .write_to(writer)
9043 .map_err(SerializeError::from)?;
9044 }
9045 item.write_element("member", writer)?;
9046 #[cfg(feature = "extra-children")]
9047 {
9048 emit_idx += 1;
9049 }
9050 }
9051 #[cfg(feature = "extra-children")]
9052 for extra in extra_iter {
9053 extra.node.write_to(writer).map_err(SerializeError::from)?;
9054 }
9055 Ok(())
9056 }
9057
9058 fn is_empty_element(&self) -> bool {
9059 if !self.member.is_empty() {
9060 return false;
9061 }
9062 #[cfg(feature = "extra-children")]
9063 if !self.extra_children.is_empty() {
9064 return false;
9065 }
9066 true
9067 }
9068}
9069
9070impl ToXml for CTMember {
9071 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9072 #[allow(unused_mut)]
9073 let mut start = start;
9074 {
9075 let val = &self.name;
9076 start.push_attribute(("name", val.as_str()));
9077 }
9078 #[cfg(feature = "extra-attrs")]
9079 for (key, value) in &self.extra_attrs {
9080 start.push_attribute((key.as_str(), value.as_str()));
9081 }
9082 start
9083 }
9084
9085 fn is_empty_element(&self) -> bool {
9086 true
9087 }
9088}
9089
9090impl ToXml for CTDimensions {
9091 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9092 #[allow(unused_mut)]
9093 let mut start = start;
9094 if let Some(ref val) = self.count {
9095 {
9096 let s = val.to_string();
9097 start.push_attribute(("count", s.as_str()));
9098 }
9099 }
9100 #[cfg(feature = "extra-attrs")]
9101 for (key, value) in &self.extra_attrs {
9102 start.push_attribute((key.as_str(), value.as_str()));
9103 }
9104 start
9105 }
9106
9107 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
9108 #[cfg(feature = "extra-children")]
9109 let mut extra_iter = self.extra_children.iter().peekable();
9110 #[cfg(feature = "extra-children")]
9111 let mut emit_idx: usize = 0;
9112 for item in &self.dimension {
9113 #[cfg(feature = "extra-children")]
9114 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9115 extra_iter
9116 .next()
9117 .unwrap()
9118 .node
9119 .write_to(writer)
9120 .map_err(SerializeError::from)?;
9121 }
9122 item.write_element("dimension", writer)?;
9123 #[cfg(feature = "extra-children")]
9124 {
9125 emit_idx += 1;
9126 }
9127 }
9128 #[cfg(feature = "extra-children")]
9129 for extra in extra_iter {
9130 extra.node.write_to(writer).map_err(SerializeError::from)?;
9131 }
9132 Ok(())
9133 }
9134
9135 fn is_empty_element(&self) -> bool {
9136 if !self.dimension.is_empty() {
9137 return false;
9138 }
9139 #[cfg(feature = "extra-children")]
9140 if !self.extra_children.is_empty() {
9141 return false;
9142 }
9143 true
9144 }
9145}
9146
9147impl ToXml for CTPivotDimension {
9148 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9149 #[allow(unused_mut)]
9150 let mut start = start;
9151 if let Some(ref val) = self.measure {
9152 start.push_attribute(("measure", if *val { "1" } else { "0" }));
9153 }
9154 {
9155 let val = &self.name;
9156 start.push_attribute(("name", val.as_str()));
9157 }
9158 {
9159 let val = &self.unique_name;
9160 start.push_attribute(("uniqueName", val.as_str()));
9161 }
9162 {
9163 let val = &self.caption;
9164 start.push_attribute(("caption", val.as_str()));
9165 }
9166 #[cfg(feature = "extra-attrs")]
9167 for (key, value) in &self.extra_attrs {
9168 start.push_attribute((key.as_str(), value.as_str()));
9169 }
9170 start
9171 }
9172
9173 fn is_empty_element(&self) -> bool {
9174 true
9175 }
9176}
9177
9178impl ToXml for CTMeasureGroups {
9179 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9180 #[allow(unused_mut)]
9181 let mut start = start;
9182 if let Some(ref val) = self.count {
9183 {
9184 let s = val.to_string();
9185 start.push_attribute(("count", s.as_str()));
9186 }
9187 }
9188 #[cfg(feature = "extra-attrs")]
9189 for (key, value) in &self.extra_attrs {
9190 start.push_attribute((key.as_str(), value.as_str()));
9191 }
9192 start
9193 }
9194
9195 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
9196 #[cfg(feature = "extra-children")]
9197 let mut extra_iter = self.extra_children.iter().peekable();
9198 #[cfg(feature = "extra-children")]
9199 let mut emit_idx: usize = 0;
9200 for item in &self.measure_group {
9201 #[cfg(feature = "extra-children")]
9202 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9203 extra_iter
9204 .next()
9205 .unwrap()
9206 .node
9207 .write_to(writer)
9208 .map_err(SerializeError::from)?;
9209 }
9210 item.write_element("measureGroup", writer)?;
9211 #[cfg(feature = "extra-children")]
9212 {
9213 emit_idx += 1;
9214 }
9215 }
9216 #[cfg(feature = "extra-children")]
9217 for extra in extra_iter {
9218 extra.node.write_to(writer).map_err(SerializeError::from)?;
9219 }
9220 Ok(())
9221 }
9222
9223 fn is_empty_element(&self) -> bool {
9224 if !self.measure_group.is_empty() {
9225 return false;
9226 }
9227 #[cfg(feature = "extra-children")]
9228 if !self.extra_children.is_empty() {
9229 return false;
9230 }
9231 true
9232 }
9233}
9234
9235impl ToXml for CTMeasureDimensionMaps {
9236 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9237 #[allow(unused_mut)]
9238 let mut start = start;
9239 if let Some(ref val) = self.count {
9240 {
9241 let s = val.to_string();
9242 start.push_attribute(("count", s.as_str()));
9243 }
9244 }
9245 #[cfg(feature = "extra-attrs")]
9246 for (key, value) in &self.extra_attrs {
9247 start.push_attribute((key.as_str(), value.as_str()));
9248 }
9249 start
9250 }
9251
9252 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
9253 #[cfg(feature = "extra-children")]
9254 let mut extra_iter = self.extra_children.iter().peekable();
9255 #[cfg(feature = "extra-children")]
9256 let mut emit_idx: usize = 0;
9257 for item in &self.map {
9258 #[cfg(feature = "extra-children")]
9259 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9260 extra_iter
9261 .next()
9262 .unwrap()
9263 .node
9264 .write_to(writer)
9265 .map_err(SerializeError::from)?;
9266 }
9267 item.write_element("map", writer)?;
9268 #[cfg(feature = "extra-children")]
9269 {
9270 emit_idx += 1;
9271 }
9272 }
9273 #[cfg(feature = "extra-children")]
9274 for extra in extra_iter {
9275 extra.node.write_to(writer).map_err(SerializeError::from)?;
9276 }
9277 Ok(())
9278 }
9279
9280 fn is_empty_element(&self) -> bool {
9281 if !self.map.is_empty() {
9282 return false;
9283 }
9284 #[cfg(feature = "extra-children")]
9285 if !self.extra_children.is_empty() {
9286 return false;
9287 }
9288 true
9289 }
9290}
9291
9292impl ToXml for CTMeasureGroup {
9293 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9294 #[allow(unused_mut)]
9295 let mut start = start;
9296 {
9297 let val = &self.name;
9298 start.push_attribute(("name", val.as_str()));
9299 }
9300 {
9301 let val = &self.caption;
9302 start.push_attribute(("caption", val.as_str()));
9303 }
9304 #[cfg(feature = "extra-attrs")]
9305 for (key, value) in &self.extra_attrs {
9306 start.push_attribute((key.as_str(), value.as_str()));
9307 }
9308 start
9309 }
9310
9311 fn is_empty_element(&self) -> bool {
9312 true
9313 }
9314}
9315
9316impl ToXml for CTMeasureDimensionMap {
9317 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9318 #[allow(unused_mut)]
9319 let mut start = start;
9320 if let Some(ref val) = self.measure_group {
9321 {
9322 let s = val.to_string();
9323 start.push_attribute(("measureGroup", s.as_str()));
9324 }
9325 }
9326 if let Some(ref val) = self.dimension {
9327 {
9328 let s = val.to_string();
9329 start.push_attribute(("dimension", s.as_str()));
9330 }
9331 }
9332 #[cfg(feature = "extra-attrs")]
9333 for (key, value) in &self.extra_attrs {
9334 start.push_attribute((key.as_str(), value.as_str()));
9335 }
9336 start
9337 }
9338
9339 fn is_empty_element(&self) -> bool {
9340 true
9341 }
9342}
9343
9344impl ToXml for CTPivotTableStyle {
9345 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9346 #[allow(unused_mut)]
9347 let mut start = start;
9348 if let Some(ref val) = self.name {
9349 start.push_attribute(("name", val.as_str()));
9350 }
9351 if let Some(ref val) = self.show_row_headers {
9352 start.push_attribute(("showRowHeaders", if *val { "1" } else { "0" }));
9353 }
9354 if let Some(ref val) = self.show_col_headers {
9355 start.push_attribute(("showColHeaders", if *val { "1" } else { "0" }));
9356 }
9357 if let Some(ref val) = self.show_row_stripes {
9358 start.push_attribute(("showRowStripes", if *val { "1" } else { "0" }));
9359 }
9360 if let Some(ref val) = self.show_col_stripes {
9361 start.push_attribute(("showColStripes", if *val { "1" } else { "0" }));
9362 }
9363 if let Some(ref val) = self.show_last_column {
9364 start.push_attribute(("showLastColumn", if *val { "1" } else { "0" }));
9365 }
9366 #[cfg(feature = "extra-attrs")]
9367 for (key, value) in &self.extra_attrs {
9368 start.push_attribute((key.as_str(), value.as_str()));
9369 }
9370 start
9371 }
9372
9373 fn is_empty_element(&self) -> bool {
9374 true
9375 }
9376}
9377
9378impl ToXml for PivotFilters {
9379 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9380 #[allow(unused_mut)]
9381 let mut start = start;
9382 if let Some(ref val) = self.count {
9383 {
9384 let s = val.to_string();
9385 start.push_attribute(("count", s.as_str()));
9386 }
9387 }
9388 #[cfg(feature = "extra-attrs")]
9389 for (key, value) in &self.extra_attrs {
9390 start.push_attribute((key.as_str(), value.as_str()));
9391 }
9392 start
9393 }
9394
9395 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
9396 #[cfg(feature = "extra-children")]
9397 let mut extra_iter = self.extra_children.iter().peekable();
9398 #[cfg(feature = "extra-children")]
9399 let mut emit_idx: usize = 0;
9400 for item in &self.filter {
9401 #[cfg(feature = "extra-children")]
9402 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9403 extra_iter
9404 .next()
9405 .unwrap()
9406 .node
9407 .write_to(writer)
9408 .map_err(SerializeError::from)?;
9409 }
9410 item.write_element("filter", writer)?;
9411 #[cfg(feature = "extra-children")]
9412 {
9413 emit_idx += 1;
9414 }
9415 }
9416 #[cfg(feature = "extra-children")]
9417 for extra in extra_iter {
9418 extra.node.write_to(writer).map_err(SerializeError::from)?;
9419 }
9420 Ok(())
9421 }
9422
9423 fn is_empty_element(&self) -> bool {
9424 if !self.filter.is_empty() {
9425 return false;
9426 }
9427 #[cfg(feature = "extra-children")]
9428 if !self.extra_children.is_empty() {
9429 return false;
9430 }
9431 true
9432 }
9433}
9434
9435impl ToXml for PivotFilter {
9436 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9437 #[allow(unused_mut)]
9438 let mut start = start;
9439 {
9440 let val = &self.fld;
9441 {
9442 let s = val.to_string();
9443 start.push_attribute(("fld", s.as_str()));
9444 }
9445 }
9446 if let Some(ref val) = self.mp_fld {
9447 {
9448 let s = val.to_string();
9449 start.push_attribute(("mpFld", s.as_str()));
9450 }
9451 }
9452 {
9453 let val = &self.r#type;
9454 {
9455 let s = val.to_string();
9456 start.push_attribute(("type", s.as_str()));
9457 }
9458 }
9459 if let Some(ref val) = self.eval_order {
9460 {
9461 let s = val.to_string();
9462 start.push_attribute(("evalOrder", s.as_str()));
9463 }
9464 }
9465 {
9466 let val = &self.id;
9467 {
9468 let s = val.to_string();
9469 start.push_attribute(("id", s.as_str()));
9470 }
9471 }
9472 if let Some(ref val) = self.i_measure_hier {
9473 {
9474 let s = val.to_string();
9475 start.push_attribute(("iMeasureHier", s.as_str()));
9476 }
9477 }
9478 if let Some(ref val) = self.i_measure_fld {
9479 {
9480 let s = val.to_string();
9481 start.push_attribute(("iMeasureFld", s.as_str()));
9482 }
9483 }
9484 if let Some(ref val) = self.name {
9485 start.push_attribute(("name", val.as_str()));
9486 }
9487 if let Some(ref val) = self.description {
9488 start.push_attribute(("description", val.as_str()));
9489 }
9490 if let Some(ref val) = self.string_value1 {
9491 start.push_attribute(("stringValue1", val.as_str()));
9492 }
9493 if let Some(ref val) = self.string_value2 {
9494 start.push_attribute(("stringValue2", val.as_str()));
9495 }
9496 #[cfg(feature = "extra-attrs")]
9497 for (key, value) in &self.extra_attrs {
9498 start.push_attribute((key.as_str(), value.as_str()));
9499 }
9500 start
9501 }
9502
9503 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
9504 #[cfg(feature = "extra-children")]
9505 let mut extra_iter = self.extra_children.iter().peekable();
9506 #[cfg(feature = "extra-children")]
9507 let mut emit_idx: usize = 0;
9508 #[cfg(feature = "extra-children")]
9509 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9510 extra_iter
9511 .next()
9512 .unwrap()
9513 .node
9514 .write_to(writer)
9515 .map_err(SerializeError::from)?;
9516 }
9517 {
9518 let val = &self.auto_filter;
9519 val.write_element("autoFilter", writer)?;
9520 }
9521 #[cfg(feature = "extra-children")]
9522 {
9523 emit_idx += 1;
9524 }
9525 #[cfg(feature = "extra-children")]
9526 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9527 extra_iter
9528 .next()
9529 .unwrap()
9530 .node
9531 .write_to(writer)
9532 .map_err(SerializeError::from)?;
9533 }
9534 if let Some(ref val) = self.extension_list {
9535 val.write_element("extLst", writer)?;
9536 }
9537 #[cfg(feature = "extra-children")]
9538 {
9539 emit_idx += 1;
9540 }
9541 #[cfg(feature = "extra-children")]
9542 for extra in extra_iter {
9543 extra.node.write_to(writer).map_err(SerializeError::from)?;
9544 }
9545 Ok(())
9546 }
9547
9548 fn is_empty_element(&self) -> bool {
9549 false
9550 }
9551}
9552
9553impl ToXml for PivotArea {
9554 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9555 #[allow(unused_mut)]
9556 let mut start = start;
9557 if let Some(ref val) = self.field {
9558 {
9559 let s = val.to_string();
9560 start.push_attribute(("field", s.as_str()));
9561 }
9562 }
9563 if let Some(ref val) = self.r#type {
9564 {
9565 let s = val.to_string();
9566 start.push_attribute(("type", s.as_str()));
9567 }
9568 }
9569 if let Some(ref val) = self.data_only {
9570 start.push_attribute(("dataOnly", if *val { "1" } else { "0" }));
9571 }
9572 if let Some(ref val) = self.label_only {
9573 start.push_attribute(("labelOnly", if *val { "1" } else { "0" }));
9574 }
9575 if let Some(ref val) = self.grand_row {
9576 start.push_attribute(("grandRow", if *val { "1" } else { "0" }));
9577 }
9578 if let Some(ref val) = self.grand_col {
9579 start.push_attribute(("grandCol", if *val { "1" } else { "0" }));
9580 }
9581 if let Some(ref val) = self.cache_index {
9582 start.push_attribute(("cacheIndex", if *val { "1" } else { "0" }));
9583 }
9584 if let Some(ref val) = self.outline {
9585 start.push_attribute(("outline", if *val { "1" } else { "0" }));
9586 }
9587 if let Some(ref val) = self.offset {
9588 start.push_attribute(("offset", val.as_str()));
9589 }
9590 if let Some(ref val) = self.collapsed_levels_are_subtotals {
9591 start.push_attribute(("collapsedLevelsAreSubtotals", if *val { "1" } else { "0" }));
9592 }
9593 if let Some(ref val) = self.axis {
9594 {
9595 let s = val.to_string();
9596 start.push_attribute(("axis", s.as_str()));
9597 }
9598 }
9599 if let Some(ref val) = self.field_position {
9600 {
9601 let s = val.to_string();
9602 start.push_attribute(("fieldPosition", s.as_str()));
9603 }
9604 }
9605 #[cfg(feature = "extra-attrs")]
9606 for (key, value) in &self.extra_attrs {
9607 start.push_attribute((key.as_str(), value.as_str()));
9608 }
9609 start
9610 }
9611
9612 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
9613 #[cfg(feature = "extra-children")]
9614 let mut extra_iter = self.extra_children.iter().peekable();
9615 #[cfg(feature = "extra-children")]
9616 let mut emit_idx: usize = 0;
9617 #[cfg(feature = "extra-children")]
9618 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9619 extra_iter
9620 .next()
9621 .unwrap()
9622 .node
9623 .write_to(writer)
9624 .map_err(SerializeError::from)?;
9625 }
9626 if let Some(ref val) = self.references {
9627 val.write_element("references", writer)?;
9628 }
9629 #[cfg(feature = "extra-children")]
9630 {
9631 emit_idx += 1;
9632 }
9633 #[cfg(feature = "extra-children")]
9634 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9635 extra_iter
9636 .next()
9637 .unwrap()
9638 .node
9639 .write_to(writer)
9640 .map_err(SerializeError::from)?;
9641 }
9642 if let Some(ref val) = self.extension_list {
9643 val.write_element("extLst", writer)?;
9644 }
9645 #[cfg(feature = "extra-children")]
9646 {
9647 emit_idx += 1;
9648 }
9649 #[cfg(feature = "extra-children")]
9650 for extra in extra_iter {
9651 extra.node.write_to(writer).map_err(SerializeError::from)?;
9652 }
9653 Ok(())
9654 }
9655
9656 fn is_empty_element(&self) -> bool {
9657 if self.references.is_some() {
9658 return false;
9659 }
9660 if self.extension_list.is_some() {
9661 return false;
9662 }
9663 #[cfg(feature = "extra-children")]
9664 if !self.extra_children.is_empty() {
9665 return false;
9666 }
9667 true
9668 }
9669}
9670
9671impl ToXml for CTPivotAreaReferences {
9672 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9673 #[allow(unused_mut)]
9674 let mut start = start;
9675 if let Some(ref val) = self.count {
9676 {
9677 let s = val.to_string();
9678 start.push_attribute(("count", s.as_str()));
9679 }
9680 }
9681 #[cfg(feature = "extra-attrs")]
9682 for (key, value) in &self.extra_attrs {
9683 start.push_attribute((key.as_str(), value.as_str()));
9684 }
9685 start
9686 }
9687
9688 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
9689 #[cfg(feature = "extra-children")]
9690 let mut extra_iter = self.extra_children.iter().peekable();
9691 #[cfg(feature = "extra-children")]
9692 let mut emit_idx: usize = 0;
9693 for item in &self.reference {
9694 #[cfg(feature = "extra-children")]
9695 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9696 extra_iter
9697 .next()
9698 .unwrap()
9699 .node
9700 .write_to(writer)
9701 .map_err(SerializeError::from)?;
9702 }
9703 item.write_element("reference", writer)?;
9704 #[cfg(feature = "extra-children")]
9705 {
9706 emit_idx += 1;
9707 }
9708 }
9709 #[cfg(feature = "extra-children")]
9710 for extra in extra_iter {
9711 extra.node.write_to(writer).map_err(SerializeError::from)?;
9712 }
9713 Ok(())
9714 }
9715
9716 fn is_empty_element(&self) -> bool {
9717 if !self.reference.is_empty() {
9718 return false;
9719 }
9720 #[cfg(feature = "extra-children")]
9721 if !self.extra_children.is_empty() {
9722 return false;
9723 }
9724 true
9725 }
9726}
9727
9728impl ToXml for CTPivotAreaReference {
9729 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9730 #[allow(unused_mut)]
9731 let mut start = start;
9732 if let Some(ref val) = self.field {
9733 {
9734 let s = val.to_string();
9735 start.push_attribute(("field", s.as_str()));
9736 }
9737 }
9738 if let Some(ref val) = self.count {
9739 {
9740 let s = val.to_string();
9741 start.push_attribute(("count", s.as_str()));
9742 }
9743 }
9744 if let Some(ref val) = self.selected {
9745 start.push_attribute(("selected", if *val { "1" } else { "0" }));
9746 }
9747 if let Some(ref val) = self.by_position {
9748 start.push_attribute(("byPosition", if *val { "1" } else { "0" }));
9749 }
9750 if let Some(ref val) = self.relative {
9751 start.push_attribute(("relative", if *val { "1" } else { "0" }));
9752 }
9753 if let Some(ref val) = self.default_subtotal {
9754 start.push_attribute(("defaultSubtotal", if *val { "1" } else { "0" }));
9755 }
9756 if let Some(ref val) = self.sum_subtotal {
9757 start.push_attribute(("sumSubtotal", if *val { "1" } else { "0" }));
9758 }
9759 if let Some(ref val) = self.count_a_subtotal {
9760 start.push_attribute(("countASubtotal", if *val { "1" } else { "0" }));
9761 }
9762 if let Some(ref val) = self.avg_subtotal {
9763 start.push_attribute(("avgSubtotal", if *val { "1" } else { "0" }));
9764 }
9765 if let Some(ref val) = self.max_subtotal {
9766 start.push_attribute(("maxSubtotal", if *val { "1" } else { "0" }));
9767 }
9768 if let Some(ref val) = self.min_subtotal {
9769 start.push_attribute(("minSubtotal", if *val { "1" } else { "0" }));
9770 }
9771 if let Some(ref val) = self.product_subtotal {
9772 start.push_attribute(("productSubtotal", if *val { "1" } else { "0" }));
9773 }
9774 if let Some(ref val) = self.count_subtotal {
9775 start.push_attribute(("countSubtotal", if *val { "1" } else { "0" }));
9776 }
9777 if let Some(ref val) = self.std_dev_subtotal {
9778 start.push_attribute(("stdDevSubtotal", if *val { "1" } else { "0" }));
9779 }
9780 if let Some(ref val) = self.std_dev_p_subtotal {
9781 start.push_attribute(("stdDevPSubtotal", if *val { "1" } else { "0" }));
9782 }
9783 if let Some(ref val) = self.var_subtotal {
9784 start.push_attribute(("varSubtotal", if *val { "1" } else { "0" }));
9785 }
9786 if let Some(ref val) = self.var_p_subtotal {
9787 start.push_attribute(("varPSubtotal", if *val { "1" } else { "0" }));
9788 }
9789 #[cfg(feature = "extra-attrs")]
9790 for (key, value) in &self.extra_attrs {
9791 start.push_attribute((key.as_str(), value.as_str()));
9792 }
9793 start
9794 }
9795
9796 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
9797 #[cfg(feature = "extra-children")]
9798 let mut extra_iter = self.extra_children.iter().peekable();
9799 #[cfg(feature = "extra-children")]
9800 let mut emit_idx: usize = 0;
9801 for item in &self.x {
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 item.write_element("x", writer)?;
9812 #[cfg(feature = "extra-children")]
9813 {
9814 emit_idx += 1;
9815 }
9816 }
9817 #[cfg(feature = "extra-children")]
9818 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9819 extra_iter
9820 .next()
9821 .unwrap()
9822 .node
9823 .write_to(writer)
9824 .map_err(SerializeError::from)?;
9825 }
9826 if let Some(ref val) = self.extension_list {
9827 val.write_element("extLst", writer)?;
9828 }
9829 #[cfg(feature = "extra-children")]
9830 {
9831 emit_idx += 1;
9832 }
9833 #[cfg(feature = "extra-children")]
9834 for extra in extra_iter {
9835 extra.node.write_to(writer).map_err(SerializeError::from)?;
9836 }
9837 Ok(())
9838 }
9839
9840 fn is_empty_element(&self) -> bool {
9841 if !self.x.is_empty() {
9842 return false;
9843 }
9844 if self.extension_list.is_some() {
9845 return false;
9846 }
9847 #[cfg(feature = "extra-children")]
9848 if !self.extra_children.is_empty() {
9849 return false;
9850 }
9851 true
9852 }
9853}
9854
9855impl ToXml for CTIndex {
9856 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9857 #[allow(unused_mut)]
9858 let mut start = start;
9859 {
9860 let val = &self.value;
9861 {
9862 let s = val.to_string();
9863 start.push_attribute(("v", s.as_str()));
9864 }
9865 }
9866 #[cfg(feature = "extra-attrs")]
9867 for (key, value) in &self.extra_attrs {
9868 start.push_attribute((key.as_str(), value.as_str()));
9869 }
9870 start
9871 }
9872
9873 fn is_empty_element(&self) -> bool {
9874 true
9875 }
9876}
9877
9878impl ToXml for QueryTable {
9879 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
9880 #[allow(unused_mut)]
9881 let mut start = start;
9882 {
9883 let val = &self.name;
9884 start.push_attribute(("name", val.as_str()));
9885 }
9886 if let Some(ref val) = self.headers {
9887 start.push_attribute(("headers", if *val { "1" } else { "0" }));
9888 }
9889 if let Some(ref val) = self.row_numbers {
9890 start.push_attribute(("rowNumbers", if *val { "1" } else { "0" }));
9891 }
9892 if let Some(ref val) = self.disable_refresh {
9893 start.push_attribute(("disableRefresh", if *val { "1" } else { "0" }));
9894 }
9895 if let Some(ref val) = self.background_refresh {
9896 start.push_attribute(("backgroundRefresh", if *val { "1" } else { "0" }));
9897 }
9898 if let Some(ref val) = self.first_background_refresh {
9899 start.push_attribute(("firstBackgroundRefresh", if *val { "1" } else { "0" }));
9900 }
9901 if let Some(ref val) = self.refresh_on_load {
9902 start.push_attribute(("refreshOnLoad", if *val { "1" } else { "0" }));
9903 }
9904 if let Some(ref val) = self.grow_shrink_type {
9905 {
9906 let s = val.to_string();
9907 start.push_attribute(("growShrinkType", s.as_str()));
9908 }
9909 }
9910 if let Some(ref val) = self.fill_formulas {
9911 start.push_attribute(("fillFormulas", if *val { "1" } else { "0" }));
9912 }
9913 if let Some(ref val) = self.remove_data_on_save {
9914 start.push_attribute(("removeDataOnSave", if *val { "1" } else { "0" }));
9915 }
9916 if let Some(ref val) = self.disable_edit {
9917 start.push_attribute(("disableEdit", if *val { "1" } else { "0" }));
9918 }
9919 if let Some(ref val) = self.preserve_formatting {
9920 start.push_attribute(("preserveFormatting", if *val { "1" } else { "0" }));
9921 }
9922 if let Some(ref val) = self.adjust_column_width {
9923 start.push_attribute(("adjustColumnWidth", if *val { "1" } else { "0" }));
9924 }
9925 if let Some(ref val) = self.intermediate {
9926 start.push_attribute(("intermediate", if *val { "1" } else { "0" }));
9927 }
9928 {
9929 let val = &self.connection_id;
9930 {
9931 let s = val.to_string();
9932 start.push_attribute(("connectionId", s.as_str()));
9933 }
9934 }
9935 if let Some(ref val) = self.auto_format_id {
9936 {
9937 let s = val.to_string();
9938 start.push_attribute(("autoFormatId", s.as_str()));
9939 }
9940 }
9941 if let Some(ref val) = self.apply_number_formats {
9942 start.push_attribute(("applyNumberFormats", if *val { "1" } else { "0" }));
9943 }
9944 if let Some(ref val) = self.apply_border_formats {
9945 start.push_attribute(("applyBorderFormats", if *val { "1" } else { "0" }));
9946 }
9947 if let Some(ref val) = self.apply_font_formats {
9948 start.push_attribute(("applyFontFormats", if *val { "1" } else { "0" }));
9949 }
9950 if let Some(ref val) = self.apply_pattern_formats {
9951 start.push_attribute(("applyPatternFormats", if *val { "1" } else { "0" }));
9952 }
9953 if let Some(ref val) = self.apply_alignment_formats {
9954 start.push_attribute(("applyAlignmentFormats", if *val { "1" } else { "0" }));
9955 }
9956 if let Some(ref val) = self.apply_width_height_formats {
9957 start.push_attribute(("applyWidthHeightFormats", if *val { "1" } else { "0" }));
9958 }
9959 #[cfg(feature = "extra-attrs")]
9960 for (key, value) in &self.extra_attrs {
9961 start.push_attribute((key.as_str(), value.as_str()));
9962 }
9963 start
9964 }
9965
9966 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
9967 #[cfg(feature = "extra-children")]
9968 let mut extra_iter = self.extra_children.iter().peekable();
9969 #[cfg(feature = "extra-children")]
9970 let mut emit_idx: usize = 0;
9971 #[cfg(feature = "extra-children")]
9972 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9973 extra_iter
9974 .next()
9975 .unwrap()
9976 .node
9977 .write_to(writer)
9978 .map_err(SerializeError::from)?;
9979 }
9980 if let Some(ref val) = self.query_table_refresh {
9981 val.write_element("queryTableRefresh", writer)?;
9982 }
9983 #[cfg(feature = "extra-children")]
9984 {
9985 emit_idx += 1;
9986 }
9987 #[cfg(feature = "extra-children")]
9988 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
9989 extra_iter
9990 .next()
9991 .unwrap()
9992 .node
9993 .write_to(writer)
9994 .map_err(SerializeError::from)?;
9995 }
9996 if let Some(ref val) = self.extension_list {
9997 val.write_element("extLst", writer)?;
9998 }
9999 #[cfg(feature = "extra-children")]
10000 {
10001 emit_idx += 1;
10002 }
10003 #[cfg(feature = "extra-children")]
10004 for extra in extra_iter {
10005 extra.node.write_to(writer).map_err(SerializeError::from)?;
10006 }
10007 Ok(())
10008 }
10009
10010 fn is_empty_element(&self) -> bool {
10011 if self.query_table_refresh.is_some() {
10012 return false;
10013 }
10014 if self.extension_list.is_some() {
10015 return false;
10016 }
10017 #[cfg(feature = "extra-children")]
10018 if !self.extra_children.is_empty() {
10019 return false;
10020 }
10021 true
10022 }
10023}
10024
10025impl ToXml for QueryTableRefresh {
10026 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
10027 #[allow(unused_mut)]
10028 let mut start = start;
10029 if let Some(ref val) = self.preserve_sort_filter_layout {
10030 start.push_attribute(("preserveSortFilterLayout", if *val { "1" } else { "0" }));
10031 }
10032 if let Some(ref val) = self.field_id_wrapped {
10033 start.push_attribute(("fieldIdWrapped", if *val { "1" } else { "0" }));
10034 }
10035 if let Some(ref val) = self.headers_in_last_refresh {
10036 start.push_attribute(("headersInLastRefresh", if *val { "1" } else { "0" }));
10037 }
10038 if let Some(ref val) = self.minimum_version {
10039 {
10040 let s = val.to_string();
10041 start.push_attribute(("minimumVersion", s.as_str()));
10042 }
10043 }
10044 if let Some(ref val) = self.next_id {
10045 {
10046 let s = val.to_string();
10047 start.push_attribute(("nextId", s.as_str()));
10048 }
10049 }
10050 if let Some(ref val) = self.unbound_columns_left {
10051 {
10052 let s = val.to_string();
10053 start.push_attribute(("unboundColumnsLeft", s.as_str()));
10054 }
10055 }
10056 if let Some(ref val) = self.unbound_columns_right {
10057 {
10058 let s = val.to_string();
10059 start.push_attribute(("unboundColumnsRight", s.as_str()));
10060 }
10061 }
10062 #[cfg(feature = "extra-attrs")]
10063 for (key, value) in &self.extra_attrs {
10064 start.push_attribute((key.as_str(), value.as_str()));
10065 }
10066 start
10067 }
10068
10069 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
10070 #[cfg(feature = "extra-children")]
10071 let mut extra_iter = self.extra_children.iter().peekable();
10072 #[cfg(feature = "extra-children")]
10073 let mut emit_idx: usize = 0;
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 {
10084 let val = &self.query_table_fields;
10085 val.write_element("queryTableFields", writer)?;
10086 }
10087 #[cfg(feature = "extra-children")]
10088 {
10089 emit_idx += 1;
10090 }
10091 #[cfg(feature = "extra-children")]
10092 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10093 extra_iter
10094 .next()
10095 .unwrap()
10096 .node
10097 .write_to(writer)
10098 .map_err(SerializeError::from)?;
10099 }
10100 if let Some(ref val) = self.query_table_deleted_fields {
10101 val.write_element("queryTableDeletedFields", writer)?;
10102 }
10103 #[cfg(feature = "extra-children")]
10104 {
10105 emit_idx += 1;
10106 }
10107 #[cfg(feature = "extra-children")]
10108 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10109 extra_iter
10110 .next()
10111 .unwrap()
10112 .node
10113 .write_to(writer)
10114 .map_err(SerializeError::from)?;
10115 }
10116 if let Some(ref val) = self.sort_state {
10117 val.write_element("sortState", writer)?;
10118 }
10119 #[cfg(feature = "extra-children")]
10120 {
10121 emit_idx += 1;
10122 }
10123 #[cfg(feature = "extra-children")]
10124 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10125 extra_iter
10126 .next()
10127 .unwrap()
10128 .node
10129 .write_to(writer)
10130 .map_err(SerializeError::from)?;
10131 }
10132 if let Some(ref val) = self.extension_list {
10133 val.write_element("extLst", writer)?;
10134 }
10135 #[cfg(feature = "extra-children")]
10136 {
10137 emit_idx += 1;
10138 }
10139 #[cfg(feature = "extra-children")]
10140 for extra in extra_iter {
10141 extra.node.write_to(writer).map_err(SerializeError::from)?;
10142 }
10143 Ok(())
10144 }
10145
10146 fn is_empty_element(&self) -> bool {
10147 false
10148 }
10149}
10150
10151impl ToXml for QueryTableDeletedFields {
10152 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
10153 #[allow(unused_mut)]
10154 let mut start = start;
10155 if let Some(ref val) = self.count {
10156 {
10157 let s = val.to_string();
10158 start.push_attribute(("count", s.as_str()));
10159 }
10160 }
10161 #[cfg(feature = "extra-attrs")]
10162 for (key, value) in &self.extra_attrs {
10163 start.push_attribute((key.as_str(), value.as_str()));
10164 }
10165 start
10166 }
10167
10168 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
10169 #[cfg(feature = "extra-children")]
10170 let mut extra_iter = self.extra_children.iter().peekable();
10171 #[cfg(feature = "extra-children")]
10172 let mut emit_idx: usize = 0;
10173 for item in &self.deleted_field {
10174 #[cfg(feature = "extra-children")]
10175 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10176 extra_iter
10177 .next()
10178 .unwrap()
10179 .node
10180 .write_to(writer)
10181 .map_err(SerializeError::from)?;
10182 }
10183 item.write_element("deletedField", writer)?;
10184 #[cfg(feature = "extra-children")]
10185 {
10186 emit_idx += 1;
10187 }
10188 }
10189 #[cfg(feature = "extra-children")]
10190 for extra in extra_iter {
10191 extra.node.write_to(writer).map_err(SerializeError::from)?;
10192 }
10193 Ok(())
10194 }
10195
10196 fn is_empty_element(&self) -> bool {
10197 if !self.deleted_field.is_empty() {
10198 return false;
10199 }
10200 #[cfg(feature = "extra-children")]
10201 if !self.extra_children.is_empty() {
10202 return false;
10203 }
10204 true
10205 }
10206}
10207
10208impl ToXml for CTDeletedField {
10209 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
10210 #[allow(unused_mut)]
10211 let mut start = start;
10212 {
10213 let val = &self.name;
10214 start.push_attribute(("name", val.as_str()));
10215 }
10216 #[cfg(feature = "extra-attrs")]
10217 for (key, value) in &self.extra_attrs {
10218 start.push_attribute((key.as_str(), value.as_str()));
10219 }
10220 start
10221 }
10222
10223 fn is_empty_element(&self) -> bool {
10224 true
10225 }
10226}
10227
10228impl ToXml for QueryTableFields {
10229 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
10230 #[allow(unused_mut)]
10231 let mut start = start;
10232 if let Some(ref val) = self.count {
10233 {
10234 let s = val.to_string();
10235 start.push_attribute(("count", s.as_str()));
10236 }
10237 }
10238 #[cfg(feature = "extra-attrs")]
10239 for (key, value) in &self.extra_attrs {
10240 start.push_attribute((key.as_str(), value.as_str()));
10241 }
10242 start
10243 }
10244
10245 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
10246 #[cfg(feature = "extra-children")]
10247 let mut extra_iter = self.extra_children.iter().peekable();
10248 #[cfg(feature = "extra-children")]
10249 let mut emit_idx: usize = 0;
10250 for item in &self.query_table_field {
10251 #[cfg(feature = "extra-children")]
10252 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10253 extra_iter
10254 .next()
10255 .unwrap()
10256 .node
10257 .write_to(writer)
10258 .map_err(SerializeError::from)?;
10259 }
10260 item.write_element("queryTableField", writer)?;
10261 #[cfg(feature = "extra-children")]
10262 {
10263 emit_idx += 1;
10264 }
10265 }
10266 #[cfg(feature = "extra-children")]
10267 for extra in extra_iter {
10268 extra.node.write_to(writer).map_err(SerializeError::from)?;
10269 }
10270 Ok(())
10271 }
10272
10273 fn is_empty_element(&self) -> bool {
10274 if !self.query_table_field.is_empty() {
10275 return false;
10276 }
10277 #[cfg(feature = "extra-children")]
10278 if !self.extra_children.is_empty() {
10279 return false;
10280 }
10281 true
10282 }
10283}
10284
10285impl ToXml for QueryTableField {
10286 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
10287 #[allow(unused_mut)]
10288 let mut start = start;
10289 {
10290 let val = &self.id;
10291 {
10292 let s = val.to_string();
10293 start.push_attribute(("id", s.as_str()));
10294 }
10295 }
10296 if let Some(ref val) = self.name {
10297 start.push_attribute(("name", val.as_str()));
10298 }
10299 if let Some(ref val) = self.data_bound {
10300 start.push_attribute(("dataBound", if *val { "1" } else { "0" }));
10301 }
10302 if let Some(ref val) = self.row_numbers {
10303 start.push_attribute(("rowNumbers", if *val { "1" } else { "0" }));
10304 }
10305 if let Some(ref val) = self.fill_formulas {
10306 start.push_attribute(("fillFormulas", if *val { "1" } else { "0" }));
10307 }
10308 if let Some(ref val) = self.clipped {
10309 start.push_attribute(("clipped", if *val { "1" } else { "0" }));
10310 }
10311 if let Some(ref val) = self.table_column_id {
10312 {
10313 let s = val.to_string();
10314 start.push_attribute(("tableColumnId", s.as_str()));
10315 }
10316 }
10317 #[cfg(feature = "extra-attrs")]
10318 for (key, value) in &self.extra_attrs {
10319 start.push_attribute((key.as_str(), value.as_str()));
10320 }
10321 start
10322 }
10323
10324 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
10325 #[cfg(feature = "extra-children")]
10326 let mut extra_iter = self.extra_children.iter().peekable();
10327 #[cfg(feature = "extra-children")]
10328 let mut emit_idx: usize = 0;
10329 #[cfg(feature = "extra-children")]
10330 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10331 extra_iter
10332 .next()
10333 .unwrap()
10334 .node
10335 .write_to(writer)
10336 .map_err(SerializeError::from)?;
10337 }
10338 if let Some(ref val) = self.extension_list {
10339 val.write_element("extLst", writer)?;
10340 }
10341 #[cfg(feature = "extra-children")]
10342 {
10343 emit_idx += 1;
10344 }
10345 #[cfg(feature = "extra-children")]
10346 for extra in extra_iter {
10347 extra.node.write_to(writer).map_err(SerializeError::from)?;
10348 }
10349 Ok(())
10350 }
10351
10352 fn is_empty_element(&self) -> bool {
10353 if self.extension_list.is_some() {
10354 return false;
10355 }
10356 #[cfg(feature = "extra-children")]
10357 if !self.extra_children.is_empty() {
10358 return false;
10359 }
10360 true
10361 }
10362}
10363
10364impl ToXml for SharedStrings {
10365 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
10366 #[allow(unused_mut)]
10367 let mut start = start;
10368 if let Some(ref val) = self.count {
10369 {
10370 let s = val.to_string();
10371 start.push_attribute(("count", s.as_str()));
10372 }
10373 }
10374 if let Some(ref val) = self.unique_count {
10375 {
10376 let s = val.to_string();
10377 start.push_attribute(("uniqueCount", s.as_str()));
10378 }
10379 }
10380 #[cfg(feature = "extra-attrs")]
10381 for (key, value) in &self.extra_attrs {
10382 start.push_attribute((key.as_str(), value.as_str()));
10383 }
10384 start
10385 }
10386
10387 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
10388 #[cfg(feature = "extra-children")]
10389 let mut extra_iter = self.extra_children.iter().peekable();
10390 #[cfg(feature = "extra-children")]
10391 let mut emit_idx: usize = 0;
10392 for item in &self.si {
10393 #[cfg(feature = "extra-children")]
10394 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10395 extra_iter
10396 .next()
10397 .unwrap()
10398 .node
10399 .write_to(writer)
10400 .map_err(SerializeError::from)?;
10401 }
10402 item.write_element("si", writer)?;
10403 #[cfg(feature = "extra-children")]
10404 {
10405 emit_idx += 1;
10406 }
10407 }
10408 #[cfg(feature = "extra-children")]
10409 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10410 extra_iter
10411 .next()
10412 .unwrap()
10413 .node
10414 .write_to(writer)
10415 .map_err(SerializeError::from)?;
10416 }
10417 if let Some(ref val) = self.extension_list {
10418 val.write_element("extLst", writer)?;
10419 }
10420 #[cfg(feature = "extra-children")]
10421 {
10422 emit_idx += 1;
10423 }
10424 #[cfg(feature = "extra-children")]
10425 for extra in extra_iter {
10426 extra.node.write_to(writer).map_err(SerializeError::from)?;
10427 }
10428 Ok(())
10429 }
10430
10431 fn is_empty_element(&self) -> bool {
10432 if !self.si.is_empty() {
10433 return false;
10434 }
10435 if self.extension_list.is_some() {
10436 return false;
10437 }
10438 #[cfg(feature = "extra-children")]
10439 if !self.extra_children.is_empty() {
10440 return false;
10441 }
10442 true
10443 }
10444}
10445
10446impl ToXml for PhoneticRun {
10447 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
10448 #[allow(unused_mut)]
10449 let mut start = start;
10450 {
10451 let val = &self.sb;
10452 {
10453 let s = val.to_string();
10454 start.push_attribute(("sb", s.as_str()));
10455 }
10456 }
10457 {
10458 let val = &self.eb;
10459 {
10460 let s = val.to_string();
10461 start.push_attribute(("eb", s.as_str()));
10462 }
10463 }
10464 #[cfg(feature = "extra-attrs")]
10465 for (key, value) in &self.extra_attrs {
10466 start.push_attribute((key.as_str(), value.as_str()));
10467 }
10468 start
10469 }
10470
10471 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
10472 #[cfg(feature = "extra-children")]
10473 let mut extra_iter = self.extra_children.iter().peekable();
10474 #[cfg(feature = "extra-children")]
10475 let mut emit_idx: usize = 0;
10476 #[cfg(feature = "extra-children")]
10477 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10478 extra_iter
10479 .next()
10480 .unwrap()
10481 .node
10482 .write_to(writer)
10483 .map_err(SerializeError::from)?;
10484 }
10485 {
10486 let val = &self.cell_type;
10487 {
10488 let start = BytesStart::new("t");
10489 writer.write_event(Event::Start(start))?;
10490 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
10491 writer.write_event(Event::End(BytesEnd::new("t")))?;
10492 }
10493 }
10494 #[cfg(feature = "extra-children")]
10495 {
10496 emit_idx += 1;
10497 }
10498 #[cfg(feature = "extra-children")]
10499 for extra in extra_iter {
10500 extra.node.write_to(writer).map_err(SerializeError::from)?;
10501 }
10502 Ok(())
10503 }
10504
10505 fn is_empty_element(&self) -> bool {
10506 false
10507 }
10508}
10509
10510impl ToXml for RichTextElement {
10511 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
10512 #[cfg(feature = "extra-children")]
10513 let mut extra_iter = self.extra_children.iter().peekable();
10514 #[cfg(feature = "extra-children")]
10515 let mut emit_idx: usize = 0;
10516 #[cfg(feature = "extra-children")]
10517 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10518 extra_iter
10519 .next()
10520 .unwrap()
10521 .node
10522 .write_to(writer)
10523 .map_err(SerializeError::from)?;
10524 }
10525 if let Some(ref val) = self.r_pr {
10526 val.write_element("rPr", writer)?;
10527 }
10528 #[cfg(feature = "extra-children")]
10529 {
10530 emit_idx += 1;
10531 }
10532 #[cfg(feature = "extra-children")]
10533 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10534 extra_iter
10535 .next()
10536 .unwrap()
10537 .node
10538 .write_to(writer)
10539 .map_err(SerializeError::from)?;
10540 }
10541 {
10542 let val = &self.cell_type;
10543 {
10544 let start = BytesStart::new("t");
10545 writer.write_event(Event::Start(start))?;
10546 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
10547 writer.write_event(Event::End(BytesEnd::new("t")))?;
10548 }
10549 }
10550 #[cfg(feature = "extra-children")]
10551 {
10552 emit_idx += 1;
10553 }
10554 #[cfg(feature = "extra-children")]
10555 for extra in extra_iter {
10556 extra.node.write_to(writer).map_err(SerializeError::from)?;
10557 }
10558 Ok(())
10559 }
10560
10561 fn is_empty_element(&self) -> bool {
10562 if self.r_pr.is_some() {
10563 return false;
10564 }
10565 false
10566 }
10567}
10568
10569impl ToXml for RichTextRunProperties {
10570 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
10571 #[cfg(feature = "extra-children")]
10572 let mut extra_iter = self.extra_children.iter().peekable();
10573 #[cfg(feature = "extra-children")]
10574 let mut emit_idx: usize = 0;
10575 #[cfg(feature = "extra-children")]
10576 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10577 extra_iter
10578 .next()
10579 .unwrap()
10580 .node
10581 .write_to(writer)
10582 .map_err(SerializeError::from)?;
10583 }
10584 if let Some(ref val) = self.r_font {
10585 val.write_element("rFont", writer)?;
10586 }
10587 #[cfg(feature = "extra-children")]
10588 {
10589 emit_idx += 1;
10590 }
10591 #[cfg(feature = "extra-children")]
10592 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10593 extra_iter
10594 .next()
10595 .unwrap()
10596 .node
10597 .write_to(writer)
10598 .map_err(SerializeError::from)?;
10599 }
10600 if let Some(ref val) = self.charset {
10601 val.write_element("charset", writer)?;
10602 }
10603 #[cfg(feature = "extra-children")]
10604 {
10605 emit_idx += 1;
10606 }
10607 #[cfg(feature = "extra-children")]
10608 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10609 extra_iter
10610 .next()
10611 .unwrap()
10612 .node
10613 .write_to(writer)
10614 .map_err(SerializeError::from)?;
10615 }
10616 if let Some(ref val) = self.family {
10617 val.write_element("family", writer)?;
10618 }
10619 #[cfg(feature = "extra-children")]
10620 {
10621 emit_idx += 1;
10622 }
10623 #[cfg(feature = "extra-children")]
10624 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10625 extra_iter
10626 .next()
10627 .unwrap()
10628 .node
10629 .write_to(writer)
10630 .map_err(SerializeError::from)?;
10631 }
10632 if let Some(ref val) = self.b {
10633 val.write_element("b", writer)?;
10634 }
10635 #[cfg(feature = "extra-children")]
10636 {
10637 emit_idx += 1;
10638 }
10639 #[cfg(feature = "extra-children")]
10640 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10641 extra_iter
10642 .next()
10643 .unwrap()
10644 .node
10645 .write_to(writer)
10646 .map_err(SerializeError::from)?;
10647 }
10648 if let Some(ref val) = self.i {
10649 val.write_element("i", writer)?;
10650 }
10651 #[cfg(feature = "extra-children")]
10652 {
10653 emit_idx += 1;
10654 }
10655 #[cfg(feature = "extra-children")]
10656 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10657 extra_iter
10658 .next()
10659 .unwrap()
10660 .node
10661 .write_to(writer)
10662 .map_err(SerializeError::from)?;
10663 }
10664 if let Some(ref val) = self.strike {
10665 val.write_element("strike", writer)?;
10666 }
10667 #[cfg(feature = "extra-children")]
10668 {
10669 emit_idx += 1;
10670 }
10671 #[cfg(feature = "extra-children")]
10672 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10673 extra_iter
10674 .next()
10675 .unwrap()
10676 .node
10677 .write_to(writer)
10678 .map_err(SerializeError::from)?;
10679 }
10680 if let Some(ref val) = self.outline {
10681 val.write_element("outline", writer)?;
10682 }
10683 #[cfg(feature = "extra-children")]
10684 {
10685 emit_idx += 1;
10686 }
10687 #[cfg(feature = "extra-children")]
10688 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10689 extra_iter
10690 .next()
10691 .unwrap()
10692 .node
10693 .write_to(writer)
10694 .map_err(SerializeError::from)?;
10695 }
10696 if let Some(ref val) = self.shadow {
10697 val.write_element("shadow", writer)?;
10698 }
10699 #[cfg(feature = "extra-children")]
10700 {
10701 emit_idx += 1;
10702 }
10703 #[cfg(feature = "extra-children")]
10704 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10705 extra_iter
10706 .next()
10707 .unwrap()
10708 .node
10709 .write_to(writer)
10710 .map_err(SerializeError::from)?;
10711 }
10712 if let Some(ref val) = self.condense {
10713 val.write_element("condense", writer)?;
10714 }
10715 #[cfg(feature = "extra-children")]
10716 {
10717 emit_idx += 1;
10718 }
10719 #[cfg(feature = "extra-children")]
10720 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10721 extra_iter
10722 .next()
10723 .unwrap()
10724 .node
10725 .write_to(writer)
10726 .map_err(SerializeError::from)?;
10727 }
10728 if let Some(ref val) = self.extend {
10729 val.write_element("extend", writer)?;
10730 }
10731 #[cfg(feature = "extra-children")]
10732 {
10733 emit_idx += 1;
10734 }
10735 #[cfg(feature = "extra-children")]
10736 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10737 extra_iter
10738 .next()
10739 .unwrap()
10740 .node
10741 .write_to(writer)
10742 .map_err(SerializeError::from)?;
10743 }
10744 if let Some(ref val) = self.color {
10745 val.write_element("color", writer)?;
10746 }
10747 #[cfg(feature = "extra-children")]
10748 {
10749 emit_idx += 1;
10750 }
10751 #[cfg(feature = "extra-children")]
10752 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10753 extra_iter
10754 .next()
10755 .unwrap()
10756 .node
10757 .write_to(writer)
10758 .map_err(SerializeError::from)?;
10759 }
10760 if let Some(ref val) = self.sz {
10761 val.write_element("sz", writer)?;
10762 }
10763 #[cfg(feature = "extra-children")]
10764 {
10765 emit_idx += 1;
10766 }
10767 #[cfg(feature = "extra-children")]
10768 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10769 extra_iter
10770 .next()
10771 .unwrap()
10772 .node
10773 .write_to(writer)
10774 .map_err(SerializeError::from)?;
10775 }
10776 if let Some(ref val) = self.u {
10777 val.write_element("u", writer)?;
10778 }
10779 #[cfg(feature = "extra-children")]
10780 {
10781 emit_idx += 1;
10782 }
10783 #[cfg(feature = "extra-children")]
10784 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10785 extra_iter
10786 .next()
10787 .unwrap()
10788 .node
10789 .write_to(writer)
10790 .map_err(SerializeError::from)?;
10791 }
10792 if let Some(ref val) = self.vert_align {
10793 val.write_element("vertAlign", writer)?;
10794 }
10795 #[cfg(feature = "extra-children")]
10796 {
10797 emit_idx += 1;
10798 }
10799 #[cfg(feature = "extra-children")]
10800 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10801 extra_iter
10802 .next()
10803 .unwrap()
10804 .node
10805 .write_to(writer)
10806 .map_err(SerializeError::from)?;
10807 }
10808 if let Some(ref val) = self.scheme {
10809 val.write_element("scheme", writer)?;
10810 }
10811 #[cfg(feature = "extra-children")]
10812 {
10813 emit_idx += 1;
10814 }
10815 #[cfg(feature = "extra-children")]
10816 for extra in extra_iter {
10817 extra.node.write_to(writer).map_err(SerializeError::from)?;
10818 }
10819 Ok(())
10820 }
10821
10822 fn is_empty_element(&self) -> bool {
10823 if self.r_font.is_some() {
10824 return false;
10825 }
10826 if self.charset.is_some() {
10827 return false;
10828 }
10829 if self.family.is_some() {
10830 return false;
10831 }
10832 if self.b.is_some() {
10833 return false;
10834 }
10835 if self.i.is_some() {
10836 return false;
10837 }
10838 if self.strike.is_some() {
10839 return false;
10840 }
10841 if self.outline.is_some() {
10842 return false;
10843 }
10844 if self.shadow.is_some() {
10845 return false;
10846 }
10847 if self.condense.is_some() {
10848 return false;
10849 }
10850 if self.extend.is_some() {
10851 return false;
10852 }
10853 if self.color.is_some() {
10854 return false;
10855 }
10856 if self.sz.is_some() {
10857 return false;
10858 }
10859 if self.u.is_some() {
10860 return false;
10861 }
10862 if self.vert_align.is_some() {
10863 return false;
10864 }
10865 if self.scheme.is_some() {
10866 return false;
10867 }
10868 #[cfg(feature = "extra-children")]
10869 if !self.extra_children.is_empty() {
10870 return false;
10871 }
10872 true
10873 }
10874}
10875
10876impl ToXml for RichString {
10877 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
10878 #[cfg(feature = "extra-children")]
10879 let mut extra_iter = self.extra_children.iter().peekable();
10880 #[cfg(feature = "extra-children")]
10881 let mut emit_idx: usize = 0;
10882 #[cfg(feature = "extra-children")]
10883 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10884 extra_iter
10885 .next()
10886 .unwrap()
10887 .node
10888 .write_to(writer)
10889 .map_err(SerializeError::from)?;
10890 }
10891 if let Some(ref val) = self.cell_type {
10892 {
10893 let start = BytesStart::new("t");
10894 writer.write_event(Event::Start(start))?;
10895 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
10896 writer.write_event(Event::End(BytesEnd::new("t")))?;
10897 }
10898 }
10899 #[cfg(feature = "extra-children")]
10900 {
10901 emit_idx += 1;
10902 }
10903 for item in &self.reference {
10904 #[cfg(feature = "extra-children")]
10905 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10906 extra_iter
10907 .next()
10908 .unwrap()
10909 .node
10910 .write_to(writer)
10911 .map_err(SerializeError::from)?;
10912 }
10913 item.write_element("r", writer)?;
10914 #[cfg(feature = "extra-children")]
10915 {
10916 emit_idx += 1;
10917 }
10918 }
10919 for item in &self.r_ph {
10920 #[cfg(feature = "extra-children")]
10921 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10922 extra_iter
10923 .next()
10924 .unwrap()
10925 .node
10926 .write_to(writer)
10927 .map_err(SerializeError::from)?;
10928 }
10929 item.write_element("rPh", writer)?;
10930 #[cfg(feature = "extra-children")]
10931 {
10932 emit_idx += 1;
10933 }
10934 }
10935 #[cfg(feature = "extra-children")]
10936 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
10937 extra_iter
10938 .next()
10939 .unwrap()
10940 .node
10941 .write_to(writer)
10942 .map_err(SerializeError::from)?;
10943 }
10944 if let Some(ref val) = self.phonetic_pr {
10945 val.write_element("phoneticPr", writer)?;
10946 }
10947 #[cfg(feature = "extra-children")]
10948 {
10949 emit_idx += 1;
10950 }
10951 #[cfg(feature = "extra-children")]
10952 for extra in extra_iter {
10953 extra.node.write_to(writer).map_err(SerializeError::from)?;
10954 }
10955 Ok(())
10956 }
10957
10958 fn is_empty_element(&self) -> bool {
10959 if self.cell_type.is_some() {
10960 return false;
10961 }
10962 if !self.reference.is_empty() {
10963 return false;
10964 }
10965 if !self.r_ph.is_empty() {
10966 return false;
10967 }
10968 if self.phonetic_pr.is_some() {
10969 return false;
10970 }
10971 #[cfg(feature = "extra-children")]
10972 if !self.extra_children.is_empty() {
10973 return false;
10974 }
10975 true
10976 }
10977}
10978
10979impl ToXml for PhoneticProperties {
10980 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
10981 #[allow(unused_mut)]
10982 let mut start = start;
10983 {
10984 let val = &self.font_id;
10985 {
10986 let s = val.to_string();
10987 start.push_attribute(("fontId", s.as_str()));
10988 }
10989 }
10990 if let Some(ref val) = self.r#type {
10991 {
10992 let s = val.to_string();
10993 start.push_attribute(("type", s.as_str()));
10994 }
10995 }
10996 if let Some(ref val) = self.alignment {
10997 {
10998 let s = val.to_string();
10999 start.push_attribute(("alignment", s.as_str()));
11000 }
11001 }
11002 #[cfg(feature = "extra-attrs")]
11003 for (key, value) in &self.extra_attrs {
11004 start.push_attribute((key.as_str(), value.as_str()));
11005 }
11006 start
11007 }
11008
11009 fn is_empty_element(&self) -> bool {
11010 true
11011 }
11012}
11013
11014impl ToXml for RevisionHeaders {
11015 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11016 #[allow(unused_mut)]
11017 let mut start = start;
11018 {
11019 let val = &self.guid;
11020 start.push_attribute(("guid", val.as_str()));
11021 }
11022 if let Some(ref val) = self.last_guid {
11023 start.push_attribute(("lastGuid", val.as_str()));
11024 }
11025 if let Some(ref val) = self.shared {
11026 start.push_attribute(("shared", if *val { "1" } else { "0" }));
11027 }
11028 if let Some(ref val) = self.disk_revisions {
11029 start.push_attribute(("diskRevisions", if *val { "1" } else { "0" }));
11030 }
11031 if let Some(ref val) = self.history {
11032 start.push_attribute(("history", if *val { "1" } else { "0" }));
11033 }
11034 if let Some(ref val) = self.track_revisions {
11035 start.push_attribute(("trackRevisions", if *val { "1" } else { "0" }));
11036 }
11037 if let Some(ref val) = self.exclusive {
11038 start.push_attribute(("exclusive", if *val { "1" } else { "0" }));
11039 }
11040 if let Some(ref val) = self.revision_id {
11041 {
11042 let s = val.to_string();
11043 start.push_attribute(("revisionId", s.as_str()));
11044 }
11045 }
11046 if let Some(ref val) = self.version {
11047 {
11048 let s = val.to_string();
11049 start.push_attribute(("version", s.as_str()));
11050 }
11051 }
11052 if let Some(ref val) = self.keep_change_history {
11053 start.push_attribute(("keepChangeHistory", if *val { "1" } else { "0" }));
11054 }
11055 if let Some(ref val) = self.protected {
11056 start.push_attribute(("protected", if *val { "1" } else { "0" }));
11057 }
11058 if let Some(ref val) = self.preserve_history {
11059 {
11060 let s = val.to_string();
11061 start.push_attribute(("preserveHistory", s.as_str()));
11062 }
11063 }
11064 #[cfg(feature = "extra-attrs")]
11065 for (key, value) in &self.extra_attrs {
11066 start.push_attribute((key.as_str(), value.as_str()));
11067 }
11068 start
11069 }
11070
11071 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
11072 #[cfg(feature = "extra-children")]
11073 let mut extra_iter = self.extra_children.iter().peekable();
11074 #[cfg(feature = "extra-children")]
11075 let mut emit_idx: usize = 0;
11076 for item in &self.header {
11077 #[cfg(feature = "extra-children")]
11078 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11079 extra_iter
11080 .next()
11081 .unwrap()
11082 .node
11083 .write_to(writer)
11084 .map_err(SerializeError::from)?;
11085 }
11086 item.write_element("header", writer)?;
11087 #[cfg(feature = "extra-children")]
11088 {
11089 emit_idx += 1;
11090 }
11091 }
11092 #[cfg(feature = "extra-children")]
11093 for extra in extra_iter {
11094 extra.node.write_to(writer).map_err(SerializeError::from)?;
11095 }
11096 Ok(())
11097 }
11098
11099 fn is_empty_element(&self) -> bool {
11100 if !self.header.is_empty() {
11101 return false;
11102 }
11103 #[cfg(feature = "extra-children")]
11104 if !self.extra_children.is_empty() {
11105 return false;
11106 }
11107 true
11108 }
11109}
11110
11111impl ToXml for Revisions {
11112 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
11113 #[cfg(feature = "extra-children")]
11114 for child in &self.extra_children {
11115 child.node.write_to(writer).map_err(SerializeError::from)?;
11116 }
11117 Ok(())
11118 }
11119
11120 fn is_empty_element(&self) -> bool {
11121 #[cfg(feature = "extra-children")]
11122 if !self.extra_children.is_empty() {
11123 return false;
11124 }
11125 true
11126 }
11127}
11128
11129impl ToXml for SmlAGRevData {
11130 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11131 #[allow(unused_mut)]
11132 let mut start = start;
11133 {
11134 let val = &self.r_id;
11135 {
11136 let s = val.to_string();
11137 start.push_attribute(("rId", s.as_str()));
11138 }
11139 }
11140 if let Some(ref val) = self.ua {
11141 start.push_attribute(("ua", if *val { "1" } else { "0" }));
11142 }
11143 if let Some(ref val) = self.ra {
11144 start.push_attribute(("ra", if *val { "1" } else { "0" }));
11145 }
11146 #[cfg(feature = "extra-attrs")]
11147 for (key, value) in &self.extra_attrs {
11148 start.push_attribute((key.as_str(), value.as_str()));
11149 }
11150 start
11151 }
11152
11153 fn is_empty_element(&self) -> bool {
11154 true
11155 }
11156}
11157
11158impl ToXml for RevisionHeader {
11159 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11160 #[allow(unused_mut)]
11161 let mut start = start;
11162 {
11163 let val = &self.guid;
11164 start.push_attribute(("guid", val.as_str()));
11165 }
11166 {
11167 let val = &self.date_time;
11168 start.push_attribute(("dateTime", val.as_str()));
11169 }
11170 {
11171 let val = &self.max_sheet_id;
11172 {
11173 let s = val.to_string();
11174 start.push_attribute(("maxSheetId", s.as_str()));
11175 }
11176 }
11177 {
11178 let val = &self.user_name;
11179 start.push_attribute(("userName", val.as_str()));
11180 }
11181 {
11182 let val = &self.id;
11183 start.push_attribute(("r:id", val.as_str()));
11184 }
11185 if let Some(ref val) = self.min_r_id {
11186 {
11187 let s = val.to_string();
11188 start.push_attribute(("minRId", s.as_str()));
11189 }
11190 }
11191 if let Some(ref val) = self.max_r_id {
11192 {
11193 let s = val.to_string();
11194 start.push_attribute(("maxRId", s.as_str()));
11195 }
11196 }
11197 #[cfg(feature = "extra-attrs")]
11198 for (key, value) in &self.extra_attrs {
11199 start.push_attribute((key.as_str(), value.as_str()));
11200 }
11201 start
11202 }
11203
11204 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
11205 #[cfg(feature = "extra-children")]
11206 let mut extra_iter = self.extra_children.iter().peekable();
11207 #[cfg(feature = "extra-children")]
11208 let mut emit_idx: usize = 0;
11209 #[cfg(feature = "extra-children")]
11210 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11211 extra_iter
11212 .next()
11213 .unwrap()
11214 .node
11215 .write_to(writer)
11216 .map_err(SerializeError::from)?;
11217 }
11218 {
11219 let val = &self.sheet_id_map;
11220 val.write_element("sheetIdMap", writer)?;
11221 }
11222 #[cfg(feature = "extra-children")]
11223 {
11224 emit_idx += 1;
11225 }
11226 #[cfg(feature = "extra-children")]
11227 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11228 extra_iter
11229 .next()
11230 .unwrap()
11231 .node
11232 .write_to(writer)
11233 .map_err(SerializeError::from)?;
11234 }
11235 if let Some(ref val) = self.reviewed_list {
11236 val.write_element("reviewedList", writer)?;
11237 }
11238 #[cfg(feature = "extra-children")]
11239 {
11240 emit_idx += 1;
11241 }
11242 #[cfg(feature = "extra-children")]
11243 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11244 extra_iter
11245 .next()
11246 .unwrap()
11247 .node
11248 .write_to(writer)
11249 .map_err(SerializeError::from)?;
11250 }
11251 if let Some(ref val) = self.extension_list {
11252 val.write_element("extLst", writer)?;
11253 }
11254 #[cfg(feature = "extra-children")]
11255 {
11256 emit_idx += 1;
11257 }
11258 #[cfg(feature = "extra-children")]
11259 for extra in extra_iter {
11260 extra.node.write_to(writer).map_err(SerializeError::from)?;
11261 }
11262 Ok(())
11263 }
11264
11265 fn is_empty_element(&self) -> bool {
11266 false
11267 }
11268}
11269
11270impl ToXml for CTSheetIdMap {
11271 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11272 #[allow(unused_mut)]
11273 let mut start = start;
11274 if let Some(ref val) = self.count {
11275 {
11276 let s = val.to_string();
11277 start.push_attribute(("count", s.as_str()));
11278 }
11279 }
11280 #[cfg(feature = "extra-attrs")]
11281 for (key, value) in &self.extra_attrs {
11282 start.push_attribute((key.as_str(), value.as_str()));
11283 }
11284 start
11285 }
11286
11287 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
11288 #[cfg(feature = "extra-children")]
11289 let mut extra_iter = self.extra_children.iter().peekable();
11290 #[cfg(feature = "extra-children")]
11291 let mut emit_idx: usize = 0;
11292 for item in &self.sheet_id {
11293 #[cfg(feature = "extra-children")]
11294 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11295 extra_iter
11296 .next()
11297 .unwrap()
11298 .node
11299 .write_to(writer)
11300 .map_err(SerializeError::from)?;
11301 }
11302 item.write_element("sheetId", writer)?;
11303 #[cfg(feature = "extra-children")]
11304 {
11305 emit_idx += 1;
11306 }
11307 }
11308 #[cfg(feature = "extra-children")]
11309 for extra in extra_iter {
11310 extra.node.write_to(writer).map_err(SerializeError::from)?;
11311 }
11312 Ok(())
11313 }
11314
11315 fn is_empty_element(&self) -> bool {
11316 if !self.sheet_id.is_empty() {
11317 return false;
11318 }
11319 #[cfg(feature = "extra-children")]
11320 if !self.extra_children.is_empty() {
11321 return false;
11322 }
11323 true
11324 }
11325}
11326
11327impl ToXml for CTSheetId {
11328 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11329 #[allow(unused_mut)]
11330 let mut start = start;
11331 {
11332 let val = &self.value;
11333 {
11334 let s = val.to_string();
11335 start.push_attribute(("val", s.as_str()));
11336 }
11337 }
11338 #[cfg(feature = "extra-attrs")]
11339 for (key, value) in &self.extra_attrs {
11340 start.push_attribute((key.as_str(), value.as_str()));
11341 }
11342 start
11343 }
11344
11345 fn is_empty_element(&self) -> bool {
11346 true
11347 }
11348}
11349
11350impl ToXml for ReviewedRevisions {
11351 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11352 #[allow(unused_mut)]
11353 let mut start = start;
11354 if let Some(ref val) = self.count {
11355 {
11356 let s = val.to_string();
11357 start.push_attribute(("count", s.as_str()));
11358 }
11359 }
11360 #[cfg(feature = "extra-attrs")]
11361 for (key, value) in &self.extra_attrs {
11362 start.push_attribute((key.as_str(), value.as_str()));
11363 }
11364 start
11365 }
11366
11367 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
11368 #[cfg(feature = "extra-children")]
11369 let mut extra_iter = self.extra_children.iter().peekable();
11370 #[cfg(feature = "extra-children")]
11371 let mut emit_idx: usize = 0;
11372 for item in &self.reviewed {
11373 #[cfg(feature = "extra-children")]
11374 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11375 extra_iter
11376 .next()
11377 .unwrap()
11378 .node
11379 .write_to(writer)
11380 .map_err(SerializeError::from)?;
11381 }
11382 item.write_element("reviewed", writer)?;
11383 #[cfg(feature = "extra-children")]
11384 {
11385 emit_idx += 1;
11386 }
11387 }
11388 #[cfg(feature = "extra-children")]
11389 for extra in extra_iter {
11390 extra.node.write_to(writer).map_err(SerializeError::from)?;
11391 }
11392 Ok(())
11393 }
11394
11395 fn is_empty_element(&self) -> bool {
11396 if !self.reviewed.is_empty() {
11397 return false;
11398 }
11399 #[cfg(feature = "extra-children")]
11400 if !self.extra_children.is_empty() {
11401 return false;
11402 }
11403 true
11404 }
11405}
11406
11407impl ToXml for Reviewed {
11408 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11409 #[allow(unused_mut)]
11410 let mut start = start;
11411 {
11412 let val = &self.r_id;
11413 {
11414 let s = val.to_string();
11415 start.push_attribute(("rId", s.as_str()));
11416 }
11417 }
11418 #[cfg(feature = "extra-attrs")]
11419 for (key, value) in &self.extra_attrs {
11420 start.push_attribute((key.as_str(), value.as_str()));
11421 }
11422 start
11423 }
11424
11425 fn is_empty_element(&self) -> bool {
11426 true
11427 }
11428}
11429
11430impl ToXml for UndoInfo {
11431 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11432 #[allow(unused_mut)]
11433 let mut start = start;
11434 {
11435 let val = &self.index;
11436 {
11437 let s = val.to_string();
11438 start.push_attribute(("index", s.as_str()));
11439 }
11440 }
11441 {
11442 let val = &self.exp;
11443 {
11444 let s = val.to_string();
11445 start.push_attribute(("exp", s.as_str()));
11446 }
11447 }
11448 if let Some(ref val) = self.ref3_d {
11449 start.push_attribute(("ref3D", if *val { "1" } else { "0" }));
11450 }
11451 if let Some(ref val) = self.array {
11452 start.push_attribute(("array", if *val { "1" } else { "0" }));
11453 }
11454 if let Some(ref val) = self.value {
11455 start.push_attribute(("v", if *val { "1" } else { "0" }));
11456 }
11457 if let Some(ref val) = self.nf {
11458 start.push_attribute(("nf", if *val { "1" } else { "0" }));
11459 }
11460 if let Some(ref val) = self.cs {
11461 start.push_attribute(("cs", if *val { "1" } else { "0" }));
11462 }
11463 {
11464 let val = &self.dr;
11465 start.push_attribute(("dr", val.as_str()));
11466 }
11467 if let Some(ref val) = self.dn {
11468 start.push_attribute(("dn", val.as_str()));
11469 }
11470 if let Some(ref val) = self.reference {
11471 start.push_attribute(("r", val.as_str()));
11472 }
11473 if let Some(ref val) = self.s_id {
11474 {
11475 let s = val.to_string();
11476 start.push_attribute(("sId", s.as_str()));
11477 }
11478 }
11479 #[cfg(feature = "extra-attrs")]
11480 for (key, value) in &self.extra_attrs {
11481 start.push_attribute((key.as_str(), value.as_str()));
11482 }
11483 start
11484 }
11485
11486 fn is_empty_element(&self) -> bool {
11487 true
11488 }
11489}
11490
11491impl ToXml for RevisionRowColumn {
11492 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11493 #[allow(unused_mut)]
11494 let mut start = start;
11495 {
11496 let val = &self.r_id;
11497 {
11498 let s = val.to_string();
11499 start.push_attribute(("rId", s.as_str()));
11500 }
11501 }
11502 if let Some(ref val) = self.ua {
11503 start.push_attribute(("ua", if *val { "1" } else { "0" }));
11504 }
11505 if let Some(ref val) = self.ra {
11506 start.push_attribute(("ra", if *val { "1" } else { "0" }));
11507 }
11508 {
11509 let val = &self.s_id;
11510 {
11511 let s = val.to_string();
11512 start.push_attribute(("sId", s.as_str()));
11513 }
11514 }
11515 if let Some(ref val) = self.eol {
11516 start.push_attribute(("eol", if *val { "1" } else { "0" }));
11517 }
11518 {
11519 let val = &self.reference;
11520 start.push_attribute(("ref", val.as_str()));
11521 }
11522 {
11523 let val = &self.action;
11524 {
11525 let s = val.to_string();
11526 start.push_attribute(("action", s.as_str()));
11527 }
11528 }
11529 if let Some(ref val) = self.edge {
11530 start.push_attribute(("edge", if *val { "1" } else { "0" }));
11531 }
11532 #[cfg(feature = "extra-attrs")]
11533 for (key, value) in &self.extra_attrs {
11534 start.push_attribute((key.as_str(), value.as_str()));
11535 }
11536 start
11537 }
11538
11539 fn is_empty_element(&self) -> bool {
11540 true
11541 }
11542}
11543
11544impl ToXml for RevisionMove {
11545 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11546 #[allow(unused_mut)]
11547 let mut start = start;
11548 {
11549 let val = &self.r_id;
11550 {
11551 let s = val.to_string();
11552 start.push_attribute(("rId", s.as_str()));
11553 }
11554 }
11555 if let Some(ref val) = self.ua {
11556 start.push_attribute(("ua", if *val { "1" } else { "0" }));
11557 }
11558 if let Some(ref val) = self.ra {
11559 start.push_attribute(("ra", if *val { "1" } else { "0" }));
11560 }
11561 {
11562 let val = &self.sheet_id;
11563 {
11564 let s = val.to_string();
11565 start.push_attribute(("sheetId", s.as_str()));
11566 }
11567 }
11568 {
11569 let val = &self.source;
11570 start.push_attribute(("source", val.as_str()));
11571 }
11572 {
11573 let val = &self.destination;
11574 start.push_attribute(("destination", val.as_str()));
11575 }
11576 if let Some(ref val) = self.source_sheet_id {
11577 {
11578 let s = val.to_string();
11579 start.push_attribute(("sourceSheetId", s.as_str()));
11580 }
11581 }
11582 #[cfg(feature = "extra-attrs")]
11583 for (key, value) in &self.extra_attrs {
11584 start.push_attribute((key.as_str(), value.as_str()));
11585 }
11586 start
11587 }
11588
11589 fn is_empty_element(&self) -> bool {
11590 true
11591 }
11592}
11593
11594impl ToXml for RevisionCustomView {
11595 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11596 #[allow(unused_mut)]
11597 let mut start = start;
11598 {
11599 let val = &self.guid;
11600 start.push_attribute(("guid", val.as_str()));
11601 }
11602 {
11603 let val = &self.action;
11604 {
11605 let s = val.to_string();
11606 start.push_attribute(("action", s.as_str()));
11607 }
11608 }
11609 #[cfg(feature = "extra-attrs")]
11610 for (key, value) in &self.extra_attrs {
11611 start.push_attribute((key.as_str(), value.as_str()));
11612 }
11613 start
11614 }
11615
11616 fn is_empty_element(&self) -> bool {
11617 true
11618 }
11619}
11620
11621impl ToXml for RevisionSheetRename {
11622 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11623 #[allow(unused_mut)]
11624 let mut start = start;
11625 {
11626 let val = &self.r_id;
11627 {
11628 let s = val.to_string();
11629 start.push_attribute(("rId", s.as_str()));
11630 }
11631 }
11632 if let Some(ref val) = self.ua {
11633 start.push_attribute(("ua", if *val { "1" } else { "0" }));
11634 }
11635 if let Some(ref val) = self.ra {
11636 start.push_attribute(("ra", if *val { "1" } else { "0" }));
11637 }
11638 {
11639 let val = &self.sheet_id;
11640 {
11641 let s = val.to_string();
11642 start.push_attribute(("sheetId", s.as_str()));
11643 }
11644 }
11645 {
11646 let val = &self.old_name;
11647 start.push_attribute(("oldName", val.as_str()));
11648 }
11649 {
11650 let val = &self.new_name;
11651 start.push_attribute(("newName", val.as_str()));
11652 }
11653 #[cfg(feature = "extra-attrs")]
11654 for (key, value) in &self.extra_attrs {
11655 start.push_attribute((key.as_str(), value.as_str()));
11656 }
11657 start
11658 }
11659
11660 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
11661 #[cfg(feature = "extra-children")]
11662 let mut extra_iter = self.extra_children.iter().peekable();
11663 #[cfg(feature = "extra-children")]
11664 let mut emit_idx: usize = 0;
11665 #[cfg(feature = "extra-children")]
11666 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11667 extra_iter
11668 .next()
11669 .unwrap()
11670 .node
11671 .write_to(writer)
11672 .map_err(SerializeError::from)?;
11673 }
11674 if let Some(ref val) = self.extension_list {
11675 val.write_element("extLst", writer)?;
11676 }
11677 #[cfg(feature = "extra-children")]
11678 {
11679 emit_idx += 1;
11680 }
11681 #[cfg(feature = "extra-children")]
11682 for extra in extra_iter {
11683 extra.node.write_to(writer).map_err(SerializeError::from)?;
11684 }
11685 Ok(())
11686 }
11687
11688 fn is_empty_element(&self) -> bool {
11689 if self.extension_list.is_some() {
11690 return false;
11691 }
11692 #[cfg(feature = "extra-children")]
11693 if !self.extra_children.is_empty() {
11694 return false;
11695 }
11696 true
11697 }
11698}
11699
11700impl ToXml for RevisionInsertSheet {
11701 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11702 #[allow(unused_mut)]
11703 let mut start = start;
11704 {
11705 let val = &self.r_id;
11706 {
11707 let s = val.to_string();
11708 start.push_attribute(("rId", s.as_str()));
11709 }
11710 }
11711 if let Some(ref val) = self.ua {
11712 start.push_attribute(("ua", if *val { "1" } else { "0" }));
11713 }
11714 if let Some(ref val) = self.ra {
11715 start.push_attribute(("ra", if *val { "1" } else { "0" }));
11716 }
11717 {
11718 let val = &self.sheet_id;
11719 {
11720 let s = val.to_string();
11721 start.push_attribute(("sheetId", s.as_str()));
11722 }
11723 }
11724 {
11725 let val = &self.name;
11726 start.push_attribute(("name", val.as_str()));
11727 }
11728 {
11729 let val = &self.sheet_position;
11730 {
11731 let s = val.to_string();
11732 start.push_attribute(("sheetPosition", s.as_str()));
11733 }
11734 }
11735 #[cfg(feature = "extra-attrs")]
11736 for (key, value) in &self.extra_attrs {
11737 start.push_attribute((key.as_str(), value.as_str()));
11738 }
11739 start
11740 }
11741
11742 fn is_empty_element(&self) -> bool {
11743 true
11744 }
11745}
11746
11747impl ToXml for RevisionCellChange {
11748 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11749 #[allow(unused_mut)]
11750 let mut start = start;
11751 {
11752 let val = &self.r_id;
11753 {
11754 let s = val.to_string();
11755 start.push_attribute(("rId", s.as_str()));
11756 }
11757 }
11758 if let Some(ref val) = self.ua {
11759 start.push_attribute(("ua", if *val { "1" } else { "0" }));
11760 }
11761 if let Some(ref val) = self.ra {
11762 start.push_attribute(("ra", if *val { "1" } else { "0" }));
11763 }
11764 {
11765 let val = &self.s_id;
11766 {
11767 let s = val.to_string();
11768 start.push_attribute(("sId", s.as_str()));
11769 }
11770 }
11771 if let Some(ref val) = self.odxf {
11772 start.push_attribute(("odxf", if *val { "1" } else { "0" }));
11773 }
11774 if let Some(ref val) = self.xf_dxf {
11775 start.push_attribute(("xfDxf", if *val { "1" } else { "0" }));
11776 }
11777 if let Some(ref val) = self.style_index {
11778 start.push_attribute(("s", if *val { "1" } else { "0" }));
11779 }
11780 if let Some(ref val) = self.dxf {
11781 start.push_attribute(("dxf", if *val { "1" } else { "0" }));
11782 }
11783 if let Some(ref val) = self.number_format_id {
11784 {
11785 let s = val.to_string();
11786 start.push_attribute(("numFmtId", s.as_str()));
11787 }
11788 }
11789 if let Some(ref val) = self.quote_prefix {
11790 start.push_attribute(("quotePrefix", if *val { "1" } else { "0" }));
11791 }
11792 if let Some(ref val) = self.old_quote_prefix {
11793 start.push_attribute(("oldQuotePrefix", if *val { "1" } else { "0" }));
11794 }
11795 if let Some(ref val) = self.placeholder {
11796 start.push_attribute(("ph", if *val { "1" } else { "0" }));
11797 }
11798 if let Some(ref val) = self.old_ph {
11799 start.push_attribute(("oldPh", if *val { "1" } else { "0" }));
11800 }
11801 if let Some(ref val) = self.end_of_list_formula_update {
11802 start.push_attribute(("endOfListFormulaUpdate", if *val { "1" } else { "0" }));
11803 }
11804 #[cfg(feature = "extra-attrs")]
11805 for (key, value) in &self.extra_attrs {
11806 start.push_attribute((key.as_str(), value.as_str()));
11807 }
11808 start
11809 }
11810
11811 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
11812 #[cfg(feature = "extra-children")]
11813 let mut extra_iter = self.extra_children.iter().peekable();
11814 #[cfg(feature = "extra-children")]
11815 let mut emit_idx: usize = 0;
11816 #[cfg(feature = "extra-children")]
11817 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11818 extra_iter
11819 .next()
11820 .unwrap()
11821 .node
11822 .write_to(writer)
11823 .map_err(SerializeError::from)?;
11824 }
11825 if let Some(ref val) = self.oc {
11826 val.write_element("oc", writer)?;
11827 }
11828 #[cfg(feature = "extra-children")]
11829 {
11830 emit_idx += 1;
11831 }
11832 #[cfg(feature = "extra-children")]
11833 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11834 extra_iter
11835 .next()
11836 .unwrap()
11837 .node
11838 .write_to(writer)
11839 .map_err(SerializeError::from)?;
11840 }
11841 {
11842 let val = &self.nc;
11843 val.write_element("nc", writer)?;
11844 }
11845 #[cfg(feature = "extra-children")]
11846 {
11847 emit_idx += 1;
11848 }
11849 #[cfg(feature = "extra-children")]
11850 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11851 extra_iter
11852 .next()
11853 .unwrap()
11854 .node
11855 .write_to(writer)
11856 .map_err(SerializeError::from)?;
11857 }
11858 if let Some(ref val) = self.ndxf {
11859 val.write_element("ndxf", writer)?;
11860 }
11861 #[cfg(feature = "extra-children")]
11862 {
11863 emit_idx += 1;
11864 }
11865 #[cfg(feature = "extra-children")]
11866 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11867 extra_iter
11868 .next()
11869 .unwrap()
11870 .node
11871 .write_to(writer)
11872 .map_err(SerializeError::from)?;
11873 }
11874 if let Some(ref val) = self.extension_list {
11875 val.write_element("extLst", writer)?;
11876 }
11877 #[cfg(feature = "extra-children")]
11878 {
11879 emit_idx += 1;
11880 }
11881 #[cfg(feature = "extra-children")]
11882 for extra in extra_iter {
11883 extra.node.write_to(writer).map_err(SerializeError::from)?;
11884 }
11885 Ok(())
11886 }
11887
11888 fn is_empty_element(&self) -> bool {
11889 if self.oc.is_some() {
11890 return false;
11891 }
11892 false
11893 }
11894}
11895
11896impl ToXml for RevisionFormatting {
11897 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11898 #[allow(unused_mut)]
11899 let mut start = start;
11900 {
11901 let val = &self.sheet_id;
11902 {
11903 let s = val.to_string();
11904 start.push_attribute(("sheetId", s.as_str()));
11905 }
11906 }
11907 if let Some(ref val) = self.xf_dxf {
11908 start.push_attribute(("xfDxf", if *val { "1" } else { "0" }));
11909 }
11910 if let Some(ref val) = self.style_index {
11911 start.push_attribute(("s", if *val { "1" } else { "0" }));
11912 }
11913 {
11914 let val = &self.square_reference;
11915 start.push_attribute(("sqref", val.as_str()));
11916 }
11917 if let Some(ref val) = self.start {
11918 {
11919 let s = val.to_string();
11920 start.push_attribute(("start", s.as_str()));
11921 }
11922 }
11923 if let Some(ref val) = self.length {
11924 {
11925 let s = val.to_string();
11926 start.push_attribute(("length", s.as_str()));
11927 }
11928 }
11929 #[cfg(feature = "extra-attrs")]
11930 for (key, value) in &self.extra_attrs {
11931 start.push_attribute((key.as_str(), value.as_str()));
11932 }
11933 start
11934 }
11935
11936 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
11937 #[cfg(feature = "extra-children")]
11938 let mut extra_iter = self.extra_children.iter().peekable();
11939 #[cfg(feature = "extra-children")]
11940 let mut emit_idx: usize = 0;
11941 #[cfg(feature = "extra-children")]
11942 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11943 extra_iter
11944 .next()
11945 .unwrap()
11946 .node
11947 .write_to(writer)
11948 .map_err(SerializeError::from)?;
11949 }
11950 if let Some(ref val) = self.dxf {
11951 val.write_element("dxf", writer)?;
11952 }
11953 #[cfg(feature = "extra-children")]
11954 {
11955 emit_idx += 1;
11956 }
11957 #[cfg(feature = "extra-children")]
11958 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
11959 extra_iter
11960 .next()
11961 .unwrap()
11962 .node
11963 .write_to(writer)
11964 .map_err(SerializeError::from)?;
11965 }
11966 if let Some(ref val) = self.extension_list {
11967 val.write_element("extLst", writer)?;
11968 }
11969 #[cfg(feature = "extra-children")]
11970 {
11971 emit_idx += 1;
11972 }
11973 #[cfg(feature = "extra-children")]
11974 for extra in extra_iter {
11975 extra.node.write_to(writer).map_err(SerializeError::from)?;
11976 }
11977 Ok(())
11978 }
11979
11980 fn is_empty_element(&self) -> bool {
11981 if self.dxf.is_some() {
11982 return false;
11983 }
11984 if self.extension_list.is_some() {
11985 return false;
11986 }
11987 #[cfg(feature = "extra-children")]
11988 if !self.extra_children.is_empty() {
11989 return false;
11990 }
11991 true
11992 }
11993}
11994
11995impl ToXml for RevisionAutoFormatting {
11996 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
11997 #[allow(unused_mut)]
11998 let mut start = start;
11999 {
12000 let val = &self.sheet_id;
12001 {
12002 let s = val.to_string();
12003 start.push_attribute(("sheetId", s.as_str()));
12004 }
12005 }
12006 if let Some(ref val) = self.auto_format_id {
12007 {
12008 let s = val.to_string();
12009 start.push_attribute(("autoFormatId", s.as_str()));
12010 }
12011 }
12012 if let Some(ref val) = self.apply_number_formats {
12013 start.push_attribute(("applyNumberFormats", if *val { "1" } else { "0" }));
12014 }
12015 if let Some(ref val) = self.apply_border_formats {
12016 start.push_attribute(("applyBorderFormats", if *val { "1" } else { "0" }));
12017 }
12018 if let Some(ref val) = self.apply_font_formats {
12019 start.push_attribute(("applyFontFormats", if *val { "1" } else { "0" }));
12020 }
12021 if let Some(ref val) = self.apply_pattern_formats {
12022 start.push_attribute(("applyPatternFormats", if *val { "1" } else { "0" }));
12023 }
12024 if let Some(ref val) = self.apply_alignment_formats {
12025 start.push_attribute(("applyAlignmentFormats", if *val { "1" } else { "0" }));
12026 }
12027 if let Some(ref val) = self.apply_width_height_formats {
12028 start.push_attribute(("applyWidthHeightFormats", if *val { "1" } else { "0" }));
12029 }
12030 {
12031 let val = &self.reference;
12032 start.push_attribute(("ref", val.as_str()));
12033 }
12034 #[cfg(feature = "extra-attrs")]
12035 for (key, value) in &self.extra_attrs {
12036 start.push_attribute((key.as_str(), value.as_str()));
12037 }
12038 start
12039 }
12040
12041 fn is_empty_element(&self) -> bool {
12042 true
12043 }
12044}
12045
12046impl ToXml for RevisionComment {
12047 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
12048 #[allow(unused_mut)]
12049 let mut start = start;
12050 {
12051 let val = &self.sheet_id;
12052 {
12053 let s = val.to_string();
12054 start.push_attribute(("sheetId", s.as_str()));
12055 }
12056 }
12057 {
12058 let val = &self.cell;
12059 start.push_attribute(("cell", val.as_str()));
12060 }
12061 {
12062 let val = &self.guid;
12063 start.push_attribute(("guid", val.as_str()));
12064 }
12065 if let Some(ref val) = self.action {
12066 {
12067 let s = val.to_string();
12068 start.push_attribute(("action", s.as_str()));
12069 }
12070 }
12071 if let Some(ref val) = self.always_show {
12072 start.push_attribute(("alwaysShow", if *val { "1" } else { "0" }));
12073 }
12074 if let Some(ref val) = self.old {
12075 start.push_attribute(("old", if *val { "1" } else { "0" }));
12076 }
12077 if let Some(ref val) = self.hidden_row {
12078 start.push_attribute(("hiddenRow", if *val { "1" } else { "0" }));
12079 }
12080 if let Some(ref val) = self.hidden_column {
12081 start.push_attribute(("hiddenColumn", if *val { "1" } else { "0" }));
12082 }
12083 {
12084 let val = &self.author;
12085 start.push_attribute(("author", val.as_str()));
12086 }
12087 if let Some(ref val) = self.old_length {
12088 {
12089 let s = val.to_string();
12090 start.push_attribute(("oldLength", s.as_str()));
12091 }
12092 }
12093 if let Some(ref val) = self.new_length {
12094 {
12095 let s = val.to_string();
12096 start.push_attribute(("newLength", s.as_str()));
12097 }
12098 }
12099 #[cfg(feature = "extra-attrs")]
12100 for (key, value) in &self.extra_attrs {
12101 start.push_attribute((key.as_str(), value.as_str()));
12102 }
12103 start
12104 }
12105
12106 fn is_empty_element(&self) -> bool {
12107 true
12108 }
12109}
12110
12111impl ToXml for RevisionDefinedName {
12112 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
12113 #[allow(unused_mut)]
12114 let mut start = start;
12115 {
12116 let val = &self.r_id;
12117 {
12118 let s = val.to_string();
12119 start.push_attribute(("rId", s.as_str()));
12120 }
12121 }
12122 if let Some(ref val) = self.ua {
12123 start.push_attribute(("ua", if *val { "1" } else { "0" }));
12124 }
12125 if let Some(ref val) = self.ra {
12126 start.push_attribute(("ra", if *val { "1" } else { "0" }));
12127 }
12128 if let Some(ref val) = self.local_sheet_id {
12129 {
12130 let s = val.to_string();
12131 start.push_attribute(("localSheetId", s.as_str()));
12132 }
12133 }
12134 if let Some(ref val) = self.custom_view {
12135 start.push_attribute(("customView", if *val { "1" } else { "0" }));
12136 }
12137 {
12138 let val = &self.name;
12139 start.push_attribute(("name", val.as_str()));
12140 }
12141 if let Some(ref val) = self.function {
12142 start.push_attribute(("function", if *val { "1" } else { "0" }));
12143 }
12144 if let Some(ref val) = self.old_function {
12145 start.push_attribute(("oldFunction", if *val { "1" } else { "0" }));
12146 }
12147 if let Some(ref val) = self.function_group_id {
12148 {
12149 let s = val.to_string();
12150 start.push_attribute(("functionGroupId", s.as_str()));
12151 }
12152 }
12153 if let Some(ref val) = self.old_function_group_id {
12154 {
12155 let s = val.to_string();
12156 start.push_attribute(("oldFunctionGroupId", s.as_str()));
12157 }
12158 }
12159 if let Some(ref val) = self.shortcut_key {
12160 {
12161 let s = val.to_string();
12162 start.push_attribute(("shortcutKey", s.as_str()));
12163 }
12164 }
12165 if let Some(ref val) = self.old_shortcut_key {
12166 {
12167 let s = val.to_string();
12168 start.push_attribute(("oldShortcutKey", s.as_str()));
12169 }
12170 }
12171 if let Some(ref val) = self.hidden {
12172 start.push_attribute(("hidden", if *val { "1" } else { "0" }));
12173 }
12174 if let Some(ref val) = self.old_hidden {
12175 start.push_attribute(("oldHidden", if *val { "1" } else { "0" }));
12176 }
12177 if let Some(ref val) = self.custom_menu {
12178 start.push_attribute(("customMenu", val.as_str()));
12179 }
12180 if let Some(ref val) = self.old_custom_menu {
12181 start.push_attribute(("oldCustomMenu", val.as_str()));
12182 }
12183 if let Some(ref val) = self.description {
12184 start.push_attribute(("description", val.as_str()));
12185 }
12186 if let Some(ref val) = self.old_description {
12187 start.push_attribute(("oldDescription", val.as_str()));
12188 }
12189 if let Some(ref val) = self.help {
12190 start.push_attribute(("help", val.as_str()));
12191 }
12192 if let Some(ref val) = self.old_help {
12193 start.push_attribute(("oldHelp", val.as_str()));
12194 }
12195 if let Some(ref val) = self.status_bar {
12196 start.push_attribute(("statusBar", val.as_str()));
12197 }
12198 if let Some(ref val) = self.old_status_bar {
12199 start.push_attribute(("oldStatusBar", val.as_str()));
12200 }
12201 if let Some(ref val) = self.comment {
12202 start.push_attribute(("comment", val.as_str()));
12203 }
12204 if let Some(ref val) = self.old_comment {
12205 start.push_attribute(("oldComment", val.as_str()));
12206 }
12207 #[cfg(feature = "extra-attrs")]
12208 for (key, value) in &self.extra_attrs {
12209 start.push_attribute((key.as_str(), value.as_str()));
12210 }
12211 start
12212 }
12213
12214 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
12215 #[cfg(feature = "extra-children")]
12216 let mut extra_iter = self.extra_children.iter().peekable();
12217 #[cfg(feature = "extra-children")]
12218 let mut emit_idx: usize = 0;
12219 #[cfg(feature = "extra-children")]
12220 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12221 extra_iter
12222 .next()
12223 .unwrap()
12224 .node
12225 .write_to(writer)
12226 .map_err(SerializeError::from)?;
12227 }
12228 if let Some(ref val) = self.formula {
12229 {
12230 let start = BytesStart::new("formula");
12231 writer.write_event(Event::Start(start))?;
12232 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
12233 writer.write_event(Event::End(BytesEnd::new("formula")))?;
12234 }
12235 }
12236 #[cfg(feature = "extra-children")]
12237 {
12238 emit_idx += 1;
12239 }
12240 #[cfg(feature = "extra-children")]
12241 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12242 extra_iter
12243 .next()
12244 .unwrap()
12245 .node
12246 .write_to(writer)
12247 .map_err(SerializeError::from)?;
12248 }
12249 if let Some(ref val) = self.old_formula {
12250 {
12251 let start = BytesStart::new("oldFormula");
12252 writer.write_event(Event::Start(start))?;
12253 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
12254 writer.write_event(Event::End(BytesEnd::new("oldFormula")))?;
12255 }
12256 }
12257 #[cfg(feature = "extra-children")]
12258 {
12259 emit_idx += 1;
12260 }
12261 #[cfg(feature = "extra-children")]
12262 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12263 extra_iter
12264 .next()
12265 .unwrap()
12266 .node
12267 .write_to(writer)
12268 .map_err(SerializeError::from)?;
12269 }
12270 if let Some(ref val) = self.extension_list {
12271 val.write_element("extLst", writer)?;
12272 }
12273 #[cfg(feature = "extra-children")]
12274 {
12275 emit_idx += 1;
12276 }
12277 #[cfg(feature = "extra-children")]
12278 for extra in extra_iter {
12279 extra.node.write_to(writer).map_err(SerializeError::from)?;
12280 }
12281 Ok(())
12282 }
12283
12284 fn is_empty_element(&self) -> bool {
12285 if self.formula.is_some() {
12286 return false;
12287 }
12288 if self.old_formula.is_some() {
12289 return false;
12290 }
12291 if self.extension_list.is_some() {
12292 return false;
12293 }
12294 #[cfg(feature = "extra-children")]
12295 if !self.extra_children.is_empty() {
12296 return false;
12297 }
12298 true
12299 }
12300}
12301
12302impl ToXml for RevisionConflict {
12303 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
12304 #[allow(unused_mut)]
12305 let mut start = start;
12306 {
12307 let val = &self.r_id;
12308 {
12309 let s = val.to_string();
12310 start.push_attribute(("rId", s.as_str()));
12311 }
12312 }
12313 if let Some(ref val) = self.ua {
12314 start.push_attribute(("ua", if *val { "1" } else { "0" }));
12315 }
12316 if let Some(ref val) = self.ra {
12317 start.push_attribute(("ra", if *val { "1" } else { "0" }));
12318 }
12319 if let Some(ref val) = self.sheet_id {
12320 {
12321 let s = val.to_string();
12322 start.push_attribute(("sheetId", s.as_str()));
12323 }
12324 }
12325 #[cfg(feature = "extra-attrs")]
12326 for (key, value) in &self.extra_attrs {
12327 start.push_attribute((key.as_str(), value.as_str()));
12328 }
12329 start
12330 }
12331
12332 fn is_empty_element(&self) -> bool {
12333 true
12334 }
12335}
12336
12337impl ToXml for RevisionQueryTableField {
12338 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
12339 #[allow(unused_mut)]
12340 let mut start = start;
12341 {
12342 let val = &self.sheet_id;
12343 {
12344 let s = val.to_string();
12345 start.push_attribute(("sheetId", s.as_str()));
12346 }
12347 }
12348 {
12349 let val = &self.reference;
12350 start.push_attribute(("ref", val.as_str()));
12351 }
12352 {
12353 let val = &self.field_id;
12354 {
12355 let s = val.to_string();
12356 start.push_attribute(("fieldId", s.as_str()));
12357 }
12358 }
12359 #[cfg(feature = "extra-attrs")]
12360 for (key, value) in &self.extra_attrs {
12361 start.push_attribute((key.as_str(), value.as_str()));
12362 }
12363 start
12364 }
12365
12366 fn is_empty_element(&self) -> bool {
12367 true
12368 }
12369}
12370
12371impl ToXml for Users {
12372 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
12373 #[allow(unused_mut)]
12374 let mut start = start;
12375 if let Some(ref val) = self.count {
12376 {
12377 let s = val.to_string();
12378 start.push_attribute(("count", s.as_str()));
12379 }
12380 }
12381 #[cfg(feature = "extra-attrs")]
12382 for (key, value) in &self.extra_attrs {
12383 start.push_attribute((key.as_str(), value.as_str()));
12384 }
12385 start
12386 }
12387
12388 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
12389 #[cfg(feature = "extra-children")]
12390 let mut extra_iter = self.extra_children.iter().peekable();
12391 #[cfg(feature = "extra-children")]
12392 let mut emit_idx: usize = 0;
12393 for item in &self.user_info {
12394 #[cfg(feature = "extra-children")]
12395 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12396 extra_iter
12397 .next()
12398 .unwrap()
12399 .node
12400 .write_to(writer)
12401 .map_err(SerializeError::from)?;
12402 }
12403 item.write_element("userInfo", writer)?;
12404 #[cfg(feature = "extra-children")]
12405 {
12406 emit_idx += 1;
12407 }
12408 }
12409 #[cfg(feature = "extra-children")]
12410 for extra in extra_iter {
12411 extra.node.write_to(writer).map_err(SerializeError::from)?;
12412 }
12413 Ok(())
12414 }
12415
12416 fn is_empty_element(&self) -> bool {
12417 if !self.user_info.is_empty() {
12418 return false;
12419 }
12420 #[cfg(feature = "extra-children")]
12421 if !self.extra_children.is_empty() {
12422 return false;
12423 }
12424 true
12425 }
12426}
12427
12428impl ToXml for SharedUser {
12429 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
12430 #[allow(unused_mut)]
12431 let mut start = start;
12432 {
12433 let val = &self.guid;
12434 start.push_attribute(("guid", val.as_str()));
12435 }
12436 {
12437 let val = &self.name;
12438 start.push_attribute(("name", val.as_str()));
12439 }
12440 {
12441 let val = &self.id;
12442 {
12443 let s = val.to_string();
12444 start.push_attribute(("id", s.as_str()));
12445 }
12446 }
12447 {
12448 let val = &self.date_time;
12449 start.push_attribute(("dateTime", val.as_str()));
12450 }
12451 #[cfg(feature = "extra-attrs")]
12452 for (key, value) in &self.extra_attrs {
12453 start.push_attribute((key.as_str(), value.as_str()));
12454 }
12455 start
12456 }
12457
12458 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
12459 #[cfg(feature = "extra-children")]
12460 let mut extra_iter = self.extra_children.iter().peekable();
12461 #[cfg(feature = "extra-children")]
12462 let mut emit_idx: usize = 0;
12463 #[cfg(feature = "extra-children")]
12464 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12465 extra_iter
12466 .next()
12467 .unwrap()
12468 .node
12469 .write_to(writer)
12470 .map_err(SerializeError::from)?;
12471 }
12472 if let Some(ref val) = self.extension_list {
12473 val.write_element("extLst", writer)?;
12474 }
12475 #[cfg(feature = "extra-children")]
12476 {
12477 emit_idx += 1;
12478 }
12479 #[cfg(feature = "extra-children")]
12480 for extra in extra_iter {
12481 extra.node.write_to(writer).map_err(SerializeError::from)?;
12482 }
12483 Ok(())
12484 }
12485
12486 fn is_empty_element(&self) -> bool {
12487 if self.extension_list.is_some() {
12488 return false;
12489 }
12490 #[cfg(feature = "extra-children")]
12491 if !self.extra_children.is_empty() {
12492 return false;
12493 }
12494 true
12495 }
12496}
12497
12498impl ToXml for CTMacrosheet {
12499 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
12500 #[cfg(feature = "extra-children")]
12501 let mut extra_iter = self.extra_children.iter().peekable();
12502 #[cfg(feature = "extra-children")]
12503 let mut emit_idx: usize = 0;
12504 #[cfg(feature = "extra-children")]
12505 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12506 extra_iter
12507 .next()
12508 .unwrap()
12509 .node
12510 .write_to(writer)
12511 .map_err(SerializeError::from)?;
12512 }
12513 if let Some(ref val) = self.sheet_properties {
12514 val.write_element("sheetPr", writer)?;
12515 }
12516 #[cfg(feature = "extra-children")]
12517 {
12518 emit_idx += 1;
12519 }
12520 #[cfg(feature = "extra-children")]
12521 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12522 extra_iter
12523 .next()
12524 .unwrap()
12525 .node
12526 .write_to(writer)
12527 .map_err(SerializeError::from)?;
12528 }
12529 if let Some(ref val) = self.dimension {
12530 val.write_element("dimension", writer)?;
12531 }
12532 #[cfg(feature = "extra-children")]
12533 {
12534 emit_idx += 1;
12535 }
12536 #[cfg(feature = "extra-children")]
12537 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12538 extra_iter
12539 .next()
12540 .unwrap()
12541 .node
12542 .write_to(writer)
12543 .map_err(SerializeError::from)?;
12544 }
12545 if let Some(ref val) = self.sheet_views {
12546 val.write_element("sheetViews", writer)?;
12547 }
12548 #[cfg(feature = "extra-children")]
12549 {
12550 emit_idx += 1;
12551 }
12552 #[cfg(feature = "extra-children")]
12553 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12554 extra_iter
12555 .next()
12556 .unwrap()
12557 .node
12558 .write_to(writer)
12559 .map_err(SerializeError::from)?;
12560 }
12561 if let Some(ref val) = self.sheet_format {
12562 val.write_element("sheetFormatPr", writer)?;
12563 }
12564 #[cfg(feature = "extra-children")]
12565 {
12566 emit_idx += 1;
12567 }
12568 for item in &self.cols {
12569 #[cfg(feature = "extra-children")]
12570 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12571 extra_iter
12572 .next()
12573 .unwrap()
12574 .node
12575 .write_to(writer)
12576 .map_err(SerializeError::from)?;
12577 }
12578 item.write_element("cols", writer)?;
12579 #[cfg(feature = "extra-children")]
12580 {
12581 emit_idx += 1;
12582 }
12583 }
12584 #[cfg(feature = "extra-children")]
12585 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12586 extra_iter
12587 .next()
12588 .unwrap()
12589 .node
12590 .write_to(writer)
12591 .map_err(SerializeError::from)?;
12592 }
12593 {
12594 let val = &self.sheet_data;
12595 val.write_element("sheetData", writer)?;
12596 }
12597 #[cfg(feature = "extra-children")]
12598 {
12599 emit_idx += 1;
12600 }
12601 #[cfg(feature = "extra-children")]
12602 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12603 extra_iter
12604 .next()
12605 .unwrap()
12606 .node
12607 .write_to(writer)
12608 .map_err(SerializeError::from)?;
12609 }
12610 if let Some(ref val) = self.sheet_protection {
12611 val.write_element("sheetProtection", writer)?;
12612 }
12613 #[cfg(feature = "extra-children")]
12614 {
12615 emit_idx += 1;
12616 }
12617 #[cfg(feature = "extra-children")]
12618 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12619 extra_iter
12620 .next()
12621 .unwrap()
12622 .node
12623 .write_to(writer)
12624 .map_err(SerializeError::from)?;
12625 }
12626 if let Some(ref val) = self.auto_filter {
12627 val.write_element("autoFilter", writer)?;
12628 }
12629 #[cfg(feature = "extra-children")]
12630 {
12631 emit_idx += 1;
12632 }
12633 #[cfg(feature = "extra-children")]
12634 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12635 extra_iter
12636 .next()
12637 .unwrap()
12638 .node
12639 .write_to(writer)
12640 .map_err(SerializeError::from)?;
12641 }
12642 if let Some(ref val) = self.sort_state {
12643 val.write_element("sortState", writer)?;
12644 }
12645 #[cfg(feature = "extra-children")]
12646 {
12647 emit_idx += 1;
12648 }
12649 #[cfg(feature = "extra-children")]
12650 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12651 extra_iter
12652 .next()
12653 .unwrap()
12654 .node
12655 .write_to(writer)
12656 .map_err(SerializeError::from)?;
12657 }
12658 if let Some(ref val) = self.data_consolidate {
12659 val.write_element("dataConsolidate", writer)?;
12660 }
12661 #[cfg(feature = "extra-children")]
12662 {
12663 emit_idx += 1;
12664 }
12665 #[cfg(feature = "extra-children")]
12666 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12667 extra_iter
12668 .next()
12669 .unwrap()
12670 .node
12671 .write_to(writer)
12672 .map_err(SerializeError::from)?;
12673 }
12674 if let Some(ref val) = self.custom_sheet_views {
12675 val.write_element("customSheetViews", writer)?;
12676 }
12677 #[cfg(feature = "extra-children")]
12678 {
12679 emit_idx += 1;
12680 }
12681 #[cfg(feature = "extra-children")]
12682 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12683 extra_iter
12684 .next()
12685 .unwrap()
12686 .node
12687 .write_to(writer)
12688 .map_err(SerializeError::from)?;
12689 }
12690 if let Some(ref val) = self.phonetic_pr {
12691 val.write_element("phoneticPr", writer)?;
12692 }
12693 #[cfg(feature = "extra-children")]
12694 {
12695 emit_idx += 1;
12696 }
12697 for item in &self.conditional_formatting {
12698 #[cfg(feature = "extra-children")]
12699 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12700 extra_iter
12701 .next()
12702 .unwrap()
12703 .node
12704 .write_to(writer)
12705 .map_err(SerializeError::from)?;
12706 }
12707 item.write_element("conditionalFormatting", writer)?;
12708 #[cfg(feature = "extra-children")]
12709 {
12710 emit_idx += 1;
12711 }
12712 }
12713 #[cfg(feature = "extra-children")]
12714 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12715 extra_iter
12716 .next()
12717 .unwrap()
12718 .node
12719 .write_to(writer)
12720 .map_err(SerializeError::from)?;
12721 }
12722 if let Some(ref val) = self.print_options {
12723 val.write_element("printOptions", writer)?;
12724 }
12725 #[cfg(feature = "extra-children")]
12726 {
12727 emit_idx += 1;
12728 }
12729 #[cfg(feature = "extra-children")]
12730 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12731 extra_iter
12732 .next()
12733 .unwrap()
12734 .node
12735 .write_to(writer)
12736 .map_err(SerializeError::from)?;
12737 }
12738 if let Some(ref val) = self.page_margins {
12739 val.write_element("pageMargins", writer)?;
12740 }
12741 #[cfg(feature = "extra-children")]
12742 {
12743 emit_idx += 1;
12744 }
12745 #[cfg(feature = "extra-children")]
12746 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12747 extra_iter
12748 .next()
12749 .unwrap()
12750 .node
12751 .write_to(writer)
12752 .map_err(SerializeError::from)?;
12753 }
12754 if let Some(ref val) = self.page_setup {
12755 val.write_element("pageSetup", writer)?;
12756 }
12757 #[cfg(feature = "extra-children")]
12758 {
12759 emit_idx += 1;
12760 }
12761 #[cfg(feature = "extra-children")]
12762 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12763 extra_iter
12764 .next()
12765 .unwrap()
12766 .node
12767 .write_to(writer)
12768 .map_err(SerializeError::from)?;
12769 }
12770 if let Some(ref val) = self.header_footer {
12771 val.write_element("headerFooter", writer)?;
12772 }
12773 #[cfg(feature = "extra-children")]
12774 {
12775 emit_idx += 1;
12776 }
12777 #[cfg(feature = "extra-children")]
12778 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12779 extra_iter
12780 .next()
12781 .unwrap()
12782 .node
12783 .write_to(writer)
12784 .map_err(SerializeError::from)?;
12785 }
12786 if let Some(ref val) = self.row_breaks {
12787 val.write_element("rowBreaks", writer)?;
12788 }
12789 #[cfg(feature = "extra-children")]
12790 {
12791 emit_idx += 1;
12792 }
12793 #[cfg(feature = "extra-children")]
12794 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12795 extra_iter
12796 .next()
12797 .unwrap()
12798 .node
12799 .write_to(writer)
12800 .map_err(SerializeError::from)?;
12801 }
12802 if let Some(ref val) = self.col_breaks {
12803 val.write_element("colBreaks", writer)?;
12804 }
12805 #[cfg(feature = "extra-children")]
12806 {
12807 emit_idx += 1;
12808 }
12809 #[cfg(feature = "extra-children")]
12810 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12811 extra_iter
12812 .next()
12813 .unwrap()
12814 .node
12815 .write_to(writer)
12816 .map_err(SerializeError::from)?;
12817 }
12818 if let Some(ref val) = self.custom_properties {
12819 val.write_element("customProperties", writer)?;
12820 }
12821 #[cfg(feature = "extra-children")]
12822 {
12823 emit_idx += 1;
12824 }
12825 #[cfg(feature = "extra-children")]
12826 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12827 extra_iter
12828 .next()
12829 .unwrap()
12830 .node
12831 .write_to(writer)
12832 .map_err(SerializeError::from)?;
12833 }
12834 if let Some(ref val) = self.drawing {
12835 val.write_element("drawing", writer)?;
12836 }
12837 #[cfg(feature = "extra-children")]
12838 {
12839 emit_idx += 1;
12840 }
12841 #[cfg(feature = "extra-children")]
12842 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12843 extra_iter
12844 .next()
12845 .unwrap()
12846 .node
12847 .write_to(writer)
12848 .map_err(SerializeError::from)?;
12849 }
12850 if let Some(ref val) = self.legacy_drawing {
12851 val.write_element("legacyDrawing", writer)?;
12852 }
12853 #[cfg(feature = "extra-children")]
12854 {
12855 emit_idx += 1;
12856 }
12857 #[cfg(feature = "extra-children")]
12858 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12859 extra_iter
12860 .next()
12861 .unwrap()
12862 .node
12863 .write_to(writer)
12864 .map_err(SerializeError::from)?;
12865 }
12866 if let Some(ref val) = self.legacy_drawing_h_f {
12867 val.write_element("legacyDrawingHF", writer)?;
12868 }
12869 #[cfg(feature = "extra-children")]
12870 {
12871 emit_idx += 1;
12872 }
12873 #[cfg(feature = "extra-children")]
12874 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12875 extra_iter
12876 .next()
12877 .unwrap()
12878 .node
12879 .write_to(writer)
12880 .map_err(SerializeError::from)?;
12881 }
12882 if let Some(ref val) = self.drawing_h_f {
12883 val.write_element("drawingHF", writer)?;
12884 }
12885 #[cfg(feature = "extra-children")]
12886 {
12887 emit_idx += 1;
12888 }
12889 #[cfg(feature = "extra-children")]
12890 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12891 extra_iter
12892 .next()
12893 .unwrap()
12894 .node
12895 .write_to(writer)
12896 .map_err(SerializeError::from)?;
12897 }
12898 if let Some(ref val) = self.picture {
12899 val.write_element("picture", writer)?;
12900 }
12901 #[cfg(feature = "extra-children")]
12902 {
12903 emit_idx += 1;
12904 }
12905 #[cfg(feature = "extra-children")]
12906 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12907 extra_iter
12908 .next()
12909 .unwrap()
12910 .node
12911 .write_to(writer)
12912 .map_err(SerializeError::from)?;
12913 }
12914 if let Some(ref val) = self.ole_objects {
12915 val.write_element("oleObjects", writer)?;
12916 }
12917 #[cfg(feature = "extra-children")]
12918 {
12919 emit_idx += 1;
12920 }
12921 #[cfg(feature = "extra-children")]
12922 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12923 extra_iter
12924 .next()
12925 .unwrap()
12926 .node
12927 .write_to(writer)
12928 .map_err(SerializeError::from)?;
12929 }
12930 if let Some(ref val) = self.extension_list {
12931 val.write_element("extLst", writer)?;
12932 }
12933 #[cfg(feature = "extra-children")]
12934 {
12935 emit_idx += 1;
12936 }
12937 #[cfg(feature = "extra-children")]
12938 for extra in extra_iter {
12939 extra.node.write_to(writer).map_err(SerializeError::from)?;
12940 }
12941 Ok(())
12942 }
12943
12944 fn is_empty_element(&self) -> bool {
12945 if self.sheet_properties.is_some() {
12946 return false;
12947 }
12948 if self.dimension.is_some() {
12949 return false;
12950 }
12951 if self.sheet_views.is_some() {
12952 return false;
12953 }
12954 if self.sheet_format.is_some() {
12955 return false;
12956 }
12957 if !self.cols.is_empty() {
12958 return false;
12959 }
12960 false
12961 }
12962}
12963
12964impl ToXml for CTDialogsheet {
12965 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
12966 #[cfg(feature = "extra-children")]
12967 let mut extra_iter = self.extra_children.iter().peekable();
12968 #[cfg(feature = "extra-children")]
12969 let mut emit_idx: usize = 0;
12970 #[cfg(feature = "extra-children")]
12971 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12972 extra_iter
12973 .next()
12974 .unwrap()
12975 .node
12976 .write_to(writer)
12977 .map_err(SerializeError::from)?;
12978 }
12979 if let Some(ref val) = self.sheet_properties {
12980 val.write_element("sheetPr", writer)?;
12981 }
12982 #[cfg(feature = "extra-children")]
12983 {
12984 emit_idx += 1;
12985 }
12986 #[cfg(feature = "extra-children")]
12987 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
12988 extra_iter
12989 .next()
12990 .unwrap()
12991 .node
12992 .write_to(writer)
12993 .map_err(SerializeError::from)?;
12994 }
12995 if let Some(ref val) = self.sheet_views {
12996 val.write_element("sheetViews", writer)?;
12997 }
12998 #[cfg(feature = "extra-children")]
12999 {
13000 emit_idx += 1;
13001 }
13002 #[cfg(feature = "extra-children")]
13003 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13004 extra_iter
13005 .next()
13006 .unwrap()
13007 .node
13008 .write_to(writer)
13009 .map_err(SerializeError::from)?;
13010 }
13011 if let Some(ref val) = self.sheet_format {
13012 val.write_element("sheetFormatPr", writer)?;
13013 }
13014 #[cfg(feature = "extra-children")]
13015 {
13016 emit_idx += 1;
13017 }
13018 #[cfg(feature = "extra-children")]
13019 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13020 extra_iter
13021 .next()
13022 .unwrap()
13023 .node
13024 .write_to(writer)
13025 .map_err(SerializeError::from)?;
13026 }
13027 if let Some(ref val) = self.sheet_protection {
13028 val.write_element("sheetProtection", writer)?;
13029 }
13030 #[cfg(feature = "extra-children")]
13031 {
13032 emit_idx += 1;
13033 }
13034 #[cfg(feature = "extra-children")]
13035 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13036 extra_iter
13037 .next()
13038 .unwrap()
13039 .node
13040 .write_to(writer)
13041 .map_err(SerializeError::from)?;
13042 }
13043 if let Some(ref val) = self.custom_sheet_views {
13044 val.write_element("customSheetViews", writer)?;
13045 }
13046 #[cfg(feature = "extra-children")]
13047 {
13048 emit_idx += 1;
13049 }
13050 #[cfg(feature = "extra-children")]
13051 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13052 extra_iter
13053 .next()
13054 .unwrap()
13055 .node
13056 .write_to(writer)
13057 .map_err(SerializeError::from)?;
13058 }
13059 if let Some(ref val) = self.print_options {
13060 val.write_element("printOptions", writer)?;
13061 }
13062 #[cfg(feature = "extra-children")]
13063 {
13064 emit_idx += 1;
13065 }
13066 #[cfg(feature = "extra-children")]
13067 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13068 extra_iter
13069 .next()
13070 .unwrap()
13071 .node
13072 .write_to(writer)
13073 .map_err(SerializeError::from)?;
13074 }
13075 if let Some(ref val) = self.page_margins {
13076 val.write_element("pageMargins", writer)?;
13077 }
13078 #[cfg(feature = "extra-children")]
13079 {
13080 emit_idx += 1;
13081 }
13082 #[cfg(feature = "extra-children")]
13083 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13084 extra_iter
13085 .next()
13086 .unwrap()
13087 .node
13088 .write_to(writer)
13089 .map_err(SerializeError::from)?;
13090 }
13091 if let Some(ref val) = self.page_setup {
13092 val.write_element("pageSetup", writer)?;
13093 }
13094 #[cfg(feature = "extra-children")]
13095 {
13096 emit_idx += 1;
13097 }
13098 #[cfg(feature = "extra-children")]
13099 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13100 extra_iter
13101 .next()
13102 .unwrap()
13103 .node
13104 .write_to(writer)
13105 .map_err(SerializeError::from)?;
13106 }
13107 if let Some(ref val) = self.header_footer {
13108 val.write_element("headerFooter", writer)?;
13109 }
13110 #[cfg(feature = "extra-children")]
13111 {
13112 emit_idx += 1;
13113 }
13114 #[cfg(feature = "extra-children")]
13115 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13116 extra_iter
13117 .next()
13118 .unwrap()
13119 .node
13120 .write_to(writer)
13121 .map_err(SerializeError::from)?;
13122 }
13123 if let Some(ref val) = self.drawing {
13124 val.write_element("drawing", writer)?;
13125 }
13126 #[cfg(feature = "extra-children")]
13127 {
13128 emit_idx += 1;
13129 }
13130 #[cfg(feature = "extra-children")]
13131 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13132 extra_iter
13133 .next()
13134 .unwrap()
13135 .node
13136 .write_to(writer)
13137 .map_err(SerializeError::from)?;
13138 }
13139 if let Some(ref val) = self.legacy_drawing {
13140 val.write_element("legacyDrawing", writer)?;
13141 }
13142 #[cfg(feature = "extra-children")]
13143 {
13144 emit_idx += 1;
13145 }
13146 #[cfg(feature = "extra-children")]
13147 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13148 extra_iter
13149 .next()
13150 .unwrap()
13151 .node
13152 .write_to(writer)
13153 .map_err(SerializeError::from)?;
13154 }
13155 if let Some(ref val) = self.legacy_drawing_h_f {
13156 val.write_element("legacyDrawingHF", writer)?;
13157 }
13158 #[cfg(feature = "extra-children")]
13159 {
13160 emit_idx += 1;
13161 }
13162 #[cfg(feature = "extra-children")]
13163 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13164 extra_iter
13165 .next()
13166 .unwrap()
13167 .node
13168 .write_to(writer)
13169 .map_err(SerializeError::from)?;
13170 }
13171 if let Some(ref val) = self.drawing_h_f {
13172 val.write_element("drawingHF", writer)?;
13173 }
13174 #[cfg(feature = "extra-children")]
13175 {
13176 emit_idx += 1;
13177 }
13178 #[cfg(feature = "extra-children")]
13179 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13180 extra_iter
13181 .next()
13182 .unwrap()
13183 .node
13184 .write_to(writer)
13185 .map_err(SerializeError::from)?;
13186 }
13187 if let Some(ref val) = self.ole_objects {
13188 val.write_element("oleObjects", writer)?;
13189 }
13190 #[cfg(feature = "extra-children")]
13191 {
13192 emit_idx += 1;
13193 }
13194 #[cfg(feature = "extra-children")]
13195 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13196 extra_iter
13197 .next()
13198 .unwrap()
13199 .node
13200 .write_to(writer)
13201 .map_err(SerializeError::from)?;
13202 }
13203 if let Some(ref val) = self.controls {
13204 val.write_element("controls", writer)?;
13205 }
13206 #[cfg(feature = "extra-children")]
13207 {
13208 emit_idx += 1;
13209 }
13210 #[cfg(feature = "extra-children")]
13211 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13212 extra_iter
13213 .next()
13214 .unwrap()
13215 .node
13216 .write_to(writer)
13217 .map_err(SerializeError::from)?;
13218 }
13219 if let Some(ref val) = self.extension_list {
13220 val.write_element("extLst", writer)?;
13221 }
13222 #[cfg(feature = "extra-children")]
13223 {
13224 emit_idx += 1;
13225 }
13226 #[cfg(feature = "extra-children")]
13227 for extra in extra_iter {
13228 extra.node.write_to(writer).map_err(SerializeError::from)?;
13229 }
13230 Ok(())
13231 }
13232
13233 fn is_empty_element(&self) -> bool {
13234 if self.sheet_properties.is_some() {
13235 return false;
13236 }
13237 if self.sheet_views.is_some() {
13238 return false;
13239 }
13240 if self.sheet_format.is_some() {
13241 return false;
13242 }
13243 if self.sheet_protection.is_some() {
13244 return false;
13245 }
13246 if self.custom_sheet_views.is_some() {
13247 return false;
13248 }
13249 if self.print_options.is_some() {
13250 return false;
13251 }
13252 if self.page_margins.is_some() {
13253 return false;
13254 }
13255 if self.page_setup.is_some() {
13256 return false;
13257 }
13258 if self.header_footer.is_some() {
13259 return false;
13260 }
13261 if self.drawing.is_some() {
13262 return false;
13263 }
13264 if self.legacy_drawing.is_some() {
13265 return false;
13266 }
13267 if self.legacy_drawing_h_f.is_some() {
13268 return false;
13269 }
13270 if self.drawing_h_f.is_some() {
13271 return false;
13272 }
13273 if self.ole_objects.is_some() {
13274 return false;
13275 }
13276 if self.controls.is_some() {
13277 return false;
13278 }
13279 if self.extension_list.is_some() {
13280 return false;
13281 }
13282 #[cfg(feature = "extra-children")]
13283 if !self.extra_children.is_empty() {
13284 return false;
13285 }
13286 true
13287 }
13288}
13289
13290impl ToXml for Worksheet {
13291 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
13292 #[cfg(feature = "extra-children")]
13293 let mut extra_iter = self.extra_children.iter().peekable();
13294 #[cfg(feature = "extra-children")]
13295 let mut emit_idx: usize = 0;
13296 #[cfg(feature = "extra-children")]
13297 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13298 extra_iter
13299 .next()
13300 .unwrap()
13301 .node
13302 .write_to(writer)
13303 .map_err(SerializeError::from)?;
13304 }
13305 #[cfg(feature = "sml-styling")]
13306 if let Some(ref val) = self.sheet_properties {
13307 val.write_element("sheetPr", writer)?;
13308 }
13309 #[cfg(feature = "extra-children")]
13310 {
13311 emit_idx += 1;
13312 }
13313 #[cfg(feature = "extra-children")]
13314 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13315 extra_iter
13316 .next()
13317 .unwrap()
13318 .node
13319 .write_to(writer)
13320 .map_err(SerializeError::from)?;
13321 }
13322 if let Some(ref val) = self.dimension {
13323 val.write_element("dimension", writer)?;
13324 }
13325 #[cfg(feature = "extra-children")]
13326 {
13327 emit_idx += 1;
13328 }
13329 #[cfg(feature = "extra-children")]
13330 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13331 extra_iter
13332 .next()
13333 .unwrap()
13334 .node
13335 .write_to(writer)
13336 .map_err(SerializeError::from)?;
13337 }
13338 if let Some(ref val) = self.sheet_views {
13339 val.write_element("sheetViews", writer)?;
13340 }
13341 #[cfg(feature = "extra-children")]
13342 {
13343 emit_idx += 1;
13344 }
13345 #[cfg(feature = "extra-children")]
13346 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13347 extra_iter
13348 .next()
13349 .unwrap()
13350 .node
13351 .write_to(writer)
13352 .map_err(SerializeError::from)?;
13353 }
13354 #[cfg(feature = "sml-styling")]
13355 if let Some(ref val) = self.sheet_format {
13356 val.write_element("sheetFormatPr", writer)?;
13357 }
13358 #[cfg(feature = "extra-children")]
13359 {
13360 emit_idx += 1;
13361 }
13362 #[cfg(feature = "sml-styling")]
13363 for item in &self.cols {
13364 #[cfg(feature = "extra-children")]
13365 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13366 extra_iter
13367 .next()
13368 .unwrap()
13369 .node
13370 .write_to(writer)
13371 .map_err(SerializeError::from)?;
13372 }
13373 item.write_element("cols", writer)?;
13374 #[cfg(feature = "extra-children")]
13375 {
13376 emit_idx += 1;
13377 }
13378 }
13379 #[cfg(feature = "extra-children")]
13380 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13381 extra_iter
13382 .next()
13383 .unwrap()
13384 .node
13385 .write_to(writer)
13386 .map_err(SerializeError::from)?;
13387 }
13388 {
13389 let val = &self.sheet_data;
13390 val.write_element("sheetData", writer)?;
13391 }
13392 #[cfg(feature = "extra-children")]
13393 {
13394 emit_idx += 1;
13395 }
13396 #[cfg(feature = "extra-children")]
13397 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13398 extra_iter
13399 .next()
13400 .unwrap()
13401 .node
13402 .write_to(writer)
13403 .map_err(SerializeError::from)?;
13404 }
13405 #[cfg(feature = "sml-formulas")]
13406 if let Some(ref val) = self.sheet_calc_pr {
13407 val.write_element("sheetCalcPr", writer)?;
13408 }
13409 #[cfg(feature = "extra-children")]
13410 {
13411 emit_idx += 1;
13412 }
13413 #[cfg(feature = "extra-children")]
13414 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13415 extra_iter
13416 .next()
13417 .unwrap()
13418 .node
13419 .write_to(writer)
13420 .map_err(SerializeError::from)?;
13421 }
13422 #[cfg(feature = "sml-protection")]
13423 if let Some(ref val) = self.sheet_protection {
13424 val.write_element("sheetProtection", writer)?;
13425 }
13426 #[cfg(feature = "extra-children")]
13427 {
13428 emit_idx += 1;
13429 }
13430 #[cfg(feature = "extra-children")]
13431 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13432 extra_iter
13433 .next()
13434 .unwrap()
13435 .node
13436 .write_to(writer)
13437 .map_err(SerializeError::from)?;
13438 }
13439 #[cfg(feature = "sml-protection")]
13440 if let Some(ref val) = self.protected_ranges {
13441 val.write_element("protectedRanges", writer)?;
13442 }
13443 #[cfg(feature = "extra-children")]
13444 {
13445 emit_idx += 1;
13446 }
13447 #[cfg(feature = "extra-children")]
13448 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13449 extra_iter
13450 .next()
13451 .unwrap()
13452 .node
13453 .write_to(writer)
13454 .map_err(SerializeError::from)?;
13455 }
13456 #[cfg(feature = "sml-formulas-advanced")]
13457 if let Some(ref val) = self.scenarios {
13458 val.write_element("scenarios", writer)?;
13459 }
13460 #[cfg(feature = "extra-children")]
13461 {
13462 emit_idx += 1;
13463 }
13464 #[cfg(feature = "extra-children")]
13465 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13466 extra_iter
13467 .next()
13468 .unwrap()
13469 .node
13470 .write_to(writer)
13471 .map_err(SerializeError::from)?;
13472 }
13473 #[cfg(feature = "sml-filtering")]
13474 if let Some(ref val) = self.auto_filter {
13475 val.write_element("autoFilter", writer)?;
13476 }
13477 #[cfg(feature = "extra-children")]
13478 {
13479 emit_idx += 1;
13480 }
13481 #[cfg(feature = "extra-children")]
13482 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13483 extra_iter
13484 .next()
13485 .unwrap()
13486 .node
13487 .write_to(writer)
13488 .map_err(SerializeError::from)?;
13489 }
13490 #[cfg(feature = "sml-filtering")]
13491 if let Some(ref val) = self.sort_state {
13492 val.write_element("sortState", writer)?;
13493 }
13494 #[cfg(feature = "extra-children")]
13495 {
13496 emit_idx += 1;
13497 }
13498 #[cfg(feature = "extra-children")]
13499 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13500 extra_iter
13501 .next()
13502 .unwrap()
13503 .node
13504 .write_to(writer)
13505 .map_err(SerializeError::from)?;
13506 }
13507 #[cfg(feature = "sml-formulas-advanced")]
13508 if let Some(ref val) = self.data_consolidate {
13509 val.write_element("dataConsolidate", writer)?;
13510 }
13511 #[cfg(feature = "extra-children")]
13512 {
13513 emit_idx += 1;
13514 }
13515 #[cfg(feature = "extra-children")]
13516 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13517 extra_iter
13518 .next()
13519 .unwrap()
13520 .node
13521 .write_to(writer)
13522 .map_err(SerializeError::from)?;
13523 }
13524 #[cfg(feature = "sml-structure")]
13525 if let Some(ref val) = self.custom_sheet_views {
13526 val.write_element("customSheetViews", writer)?;
13527 }
13528 #[cfg(feature = "extra-children")]
13529 {
13530 emit_idx += 1;
13531 }
13532 #[cfg(feature = "extra-children")]
13533 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13534 extra_iter
13535 .next()
13536 .unwrap()
13537 .node
13538 .write_to(writer)
13539 .map_err(SerializeError::from)?;
13540 }
13541 if let Some(ref val) = self.merged_cells {
13542 val.write_element("mergeCells", writer)?;
13543 }
13544 #[cfg(feature = "extra-children")]
13545 {
13546 emit_idx += 1;
13547 }
13548 #[cfg(feature = "extra-children")]
13549 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13550 extra_iter
13551 .next()
13552 .unwrap()
13553 .node
13554 .write_to(writer)
13555 .map_err(SerializeError::from)?;
13556 }
13557 #[cfg(feature = "sml-i18n")]
13558 if let Some(ref val) = self.phonetic_pr {
13559 val.write_element("phoneticPr", writer)?;
13560 }
13561 #[cfg(feature = "extra-children")]
13562 {
13563 emit_idx += 1;
13564 }
13565 #[cfg(feature = "sml-styling")]
13566 for item in &self.conditional_formatting {
13567 #[cfg(feature = "extra-children")]
13568 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13569 extra_iter
13570 .next()
13571 .unwrap()
13572 .node
13573 .write_to(writer)
13574 .map_err(SerializeError::from)?;
13575 }
13576 item.write_element("conditionalFormatting", writer)?;
13577 #[cfg(feature = "extra-children")]
13578 {
13579 emit_idx += 1;
13580 }
13581 }
13582 #[cfg(feature = "extra-children")]
13583 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13584 extra_iter
13585 .next()
13586 .unwrap()
13587 .node
13588 .write_to(writer)
13589 .map_err(SerializeError::from)?;
13590 }
13591 #[cfg(feature = "sml-validation")]
13592 if let Some(ref val) = self.data_validations {
13593 val.write_element("dataValidations", writer)?;
13594 }
13595 #[cfg(feature = "extra-children")]
13596 {
13597 emit_idx += 1;
13598 }
13599 #[cfg(feature = "extra-children")]
13600 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13601 extra_iter
13602 .next()
13603 .unwrap()
13604 .node
13605 .write_to(writer)
13606 .map_err(SerializeError::from)?;
13607 }
13608 #[cfg(feature = "sml-hyperlinks")]
13609 if let Some(ref val) = self.hyperlinks {
13610 val.write_element("hyperlinks", writer)?;
13611 }
13612 #[cfg(feature = "extra-children")]
13613 {
13614 emit_idx += 1;
13615 }
13616 #[cfg(feature = "extra-children")]
13617 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13618 extra_iter
13619 .next()
13620 .unwrap()
13621 .node
13622 .write_to(writer)
13623 .map_err(SerializeError::from)?;
13624 }
13625 #[cfg(feature = "sml-layout")]
13626 if let Some(ref val) = self.print_options {
13627 val.write_element("printOptions", writer)?;
13628 }
13629 #[cfg(feature = "extra-children")]
13630 {
13631 emit_idx += 1;
13632 }
13633 #[cfg(feature = "extra-children")]
13634 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13635 extra_iter
13636 .next()
13637 .unwrap()
13638 .node
13639 .write_to(writer)
13640 .map_err(SerializeError::from)?;
13641 }
13642 #[cfg(feature = "sml-layout")]
13643 if let Some(ref val) = self.page_margins {
13644 val.write_element("pageMargins", writer)?;
13645 }
13646 #[cfg(feature = "extra-children")]
13647 {
13648 emit_idx += 1;
13649 }
13650 #[cfg(feature = "extra-children")]
13651 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13652 extra_iter
13653 .next()
13654 .unwrap()
13655 .node
13656 .write_to(writer)
13657 .map_err(SerializeError::from)?;
13658 }
13659 #[cfg(feature = "sml-layout")]
13660 if let Some(ref val) = self.page_setup {
13661 val.write_element("pageSetup", writer)?;
13662 }
13663 #[cfg(feature = "extra-children")]
13664 {
13665 emit_idx += 1;
13666 }
13667 #[cfg(feature = "extra-children")]
13668 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13669 extra_iter
13670 .next()
13671 .unwrap()
13672 .node
13673 .write_to(writer)
13674 .map_err(SerializeError::from)?;
13675 }
13676 #[cfg(feature = "sml-layout")]
13677 if let Some(ref val) = self.header_footer {
13678 val.write_element("headerFooter", writer)?;
13679 }
13680 #[cfg(feature = "extra-children")]
13681 {
13682 emit_idx += 1;
13683 }
13684 #[cfg(feature = "extra-children")]
13685 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13686 extra_iter
13687 .next()
13688 .unwrap()
13689 .node
13690 .write_to(writer)
13691 .map_err(SerializeError::from)?;
13692 }
13693 #[cfg(feature = "sml-layout")]
13694 if let Some(ref val) = self.row_breaks {
13695 val.write_element("rowBreaks", writer)?;
13696 }
13697 #[cfg(feature = "extra-children")]
13698 {
13699 emit_idx += 1;
13700 }
13701 #[cfg(feature = "extra-children")]
13702 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13703 extra_iter
13704 .next()
13705 .unwrap()
13706 .node
13707 .write_to(writer)
13708 .map_err(SerializeError::from)?;
13709 }
13710 #[cfg(feature = "sml-layout")]
13711 if let Some(ref val) = self.col_breaks {
13712 val.write_element("colBreaks", writer)?;
13713 }
13714 #[cfg(feature = "extra-children")]
13715 {
13716 emit_idx += 1;
13717 }
13718 #[cfg(feature = "extra-children")]
13719 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13720 extra_iter
13721 .next()
13722 .unwrap()
13723 .node
13724 .write_to(writer)
13725 .map_err(SerializeError::from)?;
13726 }
13727 #[cfg(feature = "sml-metadata")]
13728 if let Some(ref val) = self.custom_properties {
13729 val.write_element("customProperties", writer)?;
13730 }
13731 #[cfg(feature = "extra-children")]
13732 {
13733 emit_idx += 1;
13734 }
13735 #[cfg(feature = "extra-children")]
13736 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13737 extra_iter
13738 .next()
13739 .unwrap()
13740 .node
13741 .write_to(writer)
13742 .map_err(SerializeError::from)?;
13743 }
13744 #[cfg(feature = "sml-formulas-advanced")]
13745 if let Some(ref val) = self.cell_watches {
13746 val.write_element("cellWatches", writer)?;
13747 }
13748 #[cfg(feature = "extra-children")]
13749 {
13750 emit_idx += 1;
13751 }
13752 #[cfg(feature = "extra-children")]
13753 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13754 extra_iter
13755 .next()
13756 .unwrap()
13757 .node
13758 .write_to(writer)
13759 .map_err(SerializeError::from)?;
13760 }
13761 #[cfg(feature = "sml-validation")]
13762 if let Some(ref val) = self.ignored_errors {
13763 val.write_element("ignoredErrors", writer)?;
13764 }
13765 #[cfg(feature = "extra-children")]
13766 {
13767 emit_idx += 1;
13768 }
13769 #[cfg(feature = "extra-children")]
13770 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13771 extra_iter
13772 .next()
13773 .unwrap()
13774 .node
13775 .write_to(writer)
13776 .map_err(SerializeError::from)?;
13777 }
13778 #[cfg(feature = "sml-metadata")]
13779 if let Some(ref val) = self.smart_tags {
13780 val.write_element("smartTags", writer)?;
13781 }
13782 #[cfg(feature = "extra-children")]
13783 {
13784 emit_idx += 1;
13785 }
13786 #[cfg(feature = "extra-children")]
13787 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13788 extra_iter
13789 .next()
13790 .unwrap()
13791 .node
13792 .write_to(writer)
13793 .map_err(SerializeError::from)?;
13794 }
13795 #[cfg(feature = "sml-drawings")]
13796 if let Some(ref val) = self.drawing {
13797 val.write_element("drawing", writer)?;
13798 }
13799 #[cfg(feature = "extra-children")]
13800 {
13801 emit_idx += 1;
13802 }
13803 #[cfg(feature = "extra-children")]
13804 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13805 extra_iter
13806 .next()
13807 .unwrap()
13808 .node
13809 .write_to(writer)
13810 .map_err(SerializeError::from)?;
13811 }
13812 #[cfg(feature = "sml-comments")]
13813 if let Some(ref val) = self.legacy_drawing {
13814 val.write_element("legacyDrawing", writer)?;
13815 }
13816 #[cfg(feature = "extra-children")]
13817 {
13818 emit_idx += 1;
13819 }
13820 #[cfg(feature = "extra-children")]
13821 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13822 extra_iter
13823 .next()
13824 .unwrap()
13825 .node
13826 .write_to(writer)
13827 .map_err(SerializeError::from)?;
13828 }
13829 #[cfg(feature = "sml-layout")]
13830 if let Some(ref val) = self.legacy_drawing_h_f {
13831 val.write_element("legacyDrawingHF", writer)?;
13832 }
13833 #[cfg(feature = "extra-children")]
13834 {
13835 emit_idx += 1;
13836 }
13837 #[cfg(feature = "extra-children")]
13838 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13839 extra_iter
13840 .next()
13841 .unwrap()
13842 .node
13843 .write_to(writer)
13844 .map_err(SerializeError::from)?;
13845 }
13846 #[cfg(feature = "sml-drawings")]
13847 if let Some(ref val) = self.drawing_h_f {
13848 val.write_element("drawingHF", writer)?;
13849 }
13850 #[cfg(feature = "extra-children")]
13851 {
13852 emit_idx += 1;
13853 }
13854 #[cfg(feature = "extra-children")]
13855 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13856 extra_iter
13857 .next()
13858 .unwrap()
13859 .node
13860 .write_to(writer)
13861 .map_err(SerializeError::from)?;
13862 }
13863 #[cfg(feature = "sml-drawings")]
13864 if let Some(ref val) = self.picture {
13865 val.write_element("picture", writer)?;
13866 }
13867 #[cfg(feature = "extra-children")]
13868 {
13869 emit_idx += 1;
13870 }
13871 #[cfg(feature = "extra-children")]
13872 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13873 extra_iter
13874 .next()
13875 .unwrap()
13876 .node
13877 .write_to(writer)
13878 .map_err(SerializeError::from)?;
13879 }
13880 #[cfg(feature = "sml-external")]
13881 if let Some(ref val) = self.ole_objects {
13882 val.write_element("oleObjects", writer)?;
13883 }
13884 #[cfg(feature = "extra-children")]
13885 {
13886 emit_idx += 1;
13887 }
13888 #[cfg(feature = "extra-children")]
13889 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13890 extra_iter
13891 .next()
13892 .unwrap()
13893 .node
13894 .write_to(writer)
13895 .map_err(SerializeError::from)?;
13896 }
13897 #[cfg(feature = "sml-external")]
13898 if let Some(ref val) = self.controls {
13899 val.write_element("controls", writer)?;
13900 }
13901 #[cfg(feature = "extra-children")]
13902 {
13903 emit_idx += 1;
13904 }
13905 #[cfg(feature = "extra-children")]
13906 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13907 extra_iter
13908 .next()
13909 .unwrap()
13910 .node
13911 .write_to(writer)
13912 .map_err(SerializeError::from)?;
13913 }
13914 #[cfg(feature = "sml-external")]
13915 if let Some(ref val) = self.web_publish_items {
13916 val.write_element("webPublishItems", writer)?;
13917 }
13918 #[cfg(feature = "extra-children")]
13919 {
13920 emit_idx += 1;
13921 }
13922 #[cfg(feature = "extra-children")]
13923 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13924 extra_iter
13925 .next()
13926 .unwrap()
13927 .node
13928 .write_to(writer)
13929 .map_err(SerializeError::from)?;
13930 }
13931 #[cfg(feature = "sml-tables")]
13932 if let Some(ref val) = self.table_parts {
13933 val.write_element("tableParts", writer)?;
13934 }
13935 #[cfg(feature = "extra-children")]
13936 {
13937 emit_idx += 1;
13938 }
13939 #[cfg(feature = "extra-children")]
13940 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13941 extra_iter
13942 .next()
13943 .unwrap()
13944 .node
13945 .write_to(writer)
13946 .map_err(SerializeError::from)?;
13947 }
13948 #[cfg(feature = "sml-extensions")]
13949 if let Some(ref val) = self.extension_list {
13950 val.write_element("extLst", writer)?;
13951 }
13952 #[cfg(feature = "extra-children")]
13953 {
13954 emit_idx += 1;
13955 }
13956 #[cfg(feature = "extra-children")]
13957 for extra in extra_iter {
13958 extra.node.write_to(writer).map_err(SerializeError::from)?;
13959 }
13960 Ok(())
13961 }
13962
13963 fn is_empty_element(&self) -> bool {
13964 #[cfg(feature = "sml-styling")]
13965 if self.sheet_properties.is_some() {
13966 return false;
13967 }
13968 if self.dimension.is_some() {
13969 return false;
13970 }
13971 if self.sheet_views.is_some() {
13972 return false;
13973 }
13974 #[cfg(feature = "sml-styling")]
13975 if self.sheet_format.is_some() {
13976 return false;
13977 }
13978 #[cfg(feature = "sml-styling")]
13979 if !self.cols.is_empty() {
13980 return false;
13981 }
13982 false
13983 }
13984}
13985
13986impl ToXml for SheetData {
13987 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
13988 #[cfg(feature = "extra-children")]
13989 let mut extra_iter = self.extra_children.iter().peekable();
13990 #[cfg(feature = "extra-children")]
13991 let mut emit_idx: usize = 0;
13992 for item in &self.row {
13993 #[cfg(feature = "extra-children")]
13994 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
13995 extra_iter
13996 .next()
13997 .unwrap()
13998 .node
13999 .write_to(writer)
14000 .map_err(SerializeError::from)?;
14001 }
14002 item.write_element("row", writer)?;
14003 #[cfg(feature = "extra-children")]
14004 {
14005 emit_idx += 1;
14006 }
14007 }
14008 #[cfg(feature = "extra-children")]
14009 for extra in extra_iter {
14010 extra.node.write_to(writer).map_err(SerializeError::from)?;
14011 }
14012 Ok(())
14013 }
14014
14015 fn is_empty_element(&self) -> bool {
14016 if !self.row.is_empty() {
14017 return false;
14018 }
14019 #[cfg(feature = "extra-children")]
14020 if !self.extra_children.is_empty() {
14021 return false;
14022 }
14023 true
14024 }
14025}
14026
14027impl ToXml for SheetCalcProperties {
14028 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
14029 #[allow(unused_mut)]
14030 let mut start = start;
14031 if let Some(ref val) = self.full_calc_on_load {
14032 start.push_attribute(("fullCalcOnLoad", if *val { "1" } else { "0" }));
14033 }
14034 #[cfg(feature = "extra-attrs")]
14035 for (key, value) in &self.extra_attrs {
14036 start.push_attribute((key.as_str(), value.as_str()));
14037 }
14038 start
14039 }
14040
14041 fn is_empty_element(&self) -> bool {
14042 true
14043 }
14044}
14045
14046impl ToXml for SheetFormat {
14047 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
14048 #[allow(unused_mut)]
14049 let mut start = start;
14050 if let Some(ref val) = self.base_col_width {
14051 {
14052 let s = val.to_string();
14053 start.push_attribute(("baseColWidth", s.as_str()));
14054 }
14055 }
14056 if let Some(ref val) = self.default_col_width {
14057 {
14058 let s = val.to_string();
14059 start.push_attribute(("defaultColWidth", s.as_str()));
14060 }
14061 }
14062 {
14063 let val = &self.default_row_height;
14064 {
14065 let s = val.to_string();
14066 start.push_attribute(("defaultRowHeight", s.as_str()));
14067 }
14068 }
14069 if let Some(ref val) = self.custom_height {
14070 start.push_attribute(("customHeight", if *val { "1" } else { "0" }));
14071 }
14072 if let Some(ref val) = self.zero_height {
14073 start.push_attribute(("zeroHeight", if *val { "1" } else { "0" }));
14074 }
14075 if let Some(ref val) = self.thick_top {
14076 start.push_attribute(("thickTop", if *val { "1" } else { "0" }));
14077 }
14078 if let Some(ref val) = self.thick_bottom {
14079 start.push_attribute(("thickBottom", if *val { "1" } else { "0" }));
14080 }
14081 if let Some(ref val) = self.outline_level_row {
14082 {
14083 let s = val.to_string();
14084 start.push_attribute(("outlineLevelRow", s.as_str()));
14085 }
14086 }
14087 if let Some(ref val) = self.outline_level_col {
14088 {
14089 let s = val.to_string();
14090 start.push_attribute(("outlineLevelCol", s.as_str()));
14091 }
14092 }
14093 #[cfg(feature = "extra-attrs")]
14094 for (key, value) in &self.extra_attrs {
14095 start.push_attribute((key.as_str(), value.as_str()));
14096 }
14097 start
14098 }
14099
14100 fn is_empty_element(&self) -> bool {
14101 true
14102 }
14103}
14104
14105impl ToXml for Columns {
14106 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
14107 #[cfg(feature = "extra-children")]
14108 let mut extra_iter = self.extra_children.iter().peekable();
14109 #[cfg(feature = "extra-children")]
14110 let mut emit_idx: usize = 0;
14111 for item in &self.col {
14112 #[cfg(feature = "extra-children")]
14113 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14114 extra_iter
14115 .next()
14116 .unwrap()
14117 .node
14118 .write_to(writer)
14119 .map_err(SerializeError::from)?;
14120 }
14121 item.write_element("col", writer)?;
14122 #[cfg(feature = "extra-children")]
14123 {
14124 emit_idx += 1;
14125 }
14126 }
14127 #[cfg(feature = "extra-children")]
14128 for extra in extra_iter {
14129 extra.node.write_to(writer).map_err(SerializeError::from)?;
14130 }
14131 Ok(())
14132 }
14133
14134 fn is_empty_element(&self) -> bool {
14135 if !self.col.is_empty() {
14136 return false;
14137 }
14138 #[cfg(feature = "extra-children")]
14139 if !self.extra_children.is_empty() {
14140 return false;
14141 }
14142 true
14143 }
14144}
14145
14146impl ToXml for Column {
14147 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
14148 #[allow(unused_mut)]
14149 let mut start = start;
14150 #[cfg(feature = "sml-styling")]
14151 {
14152 let val = &self.start_column;
14153 {
14154 let s = val.to_string();
14155 start.push_attribute(("min", s.as_str()));
14156 }
14157 }
14158 #[cfg(feature = "sml-styling")]
14159 {
14160 let val = &self.end_column;
14161 {
14162 let s = val.to_string();
14163 start.push_attribute(("max", s.as_str()));
14164 }
14165 }
14166 #[cfg(feature = "sml-styling")]
14167 if let Some(ref val) = self.width {
14168 {
14169 let s = val.to_string();
14170 start.push_attribute(("width", s.as_str()));
14171 }
14172 }
14173 #[cfg(feature = "sml-styling")]
14174 if let Some(ref val) = self.style {
14175 {
14176 let s = val.to_string();
14177 start.push_attribute(("style", s.as_str()));
14178 }
14179 }
14180 #[cfg(feature = "sml-structure")]
14181 if let Some(ref val) = self.hidden {
14182 start.push_attribute(("hidden", if *val { "1" } else { "0" }));
14183 }
14184 #[cfg(feature = "sml-styling")]
14185 if let Some(ref val) = self.best_fit {
14186 start.push_attribute(("bestFit", if *val { "1" } else { "0" }));
14187 }
14188 #[cfg(feature = "sml-styling")]
14189 if let Some(ref val) = self.custom_width {
14190 start.push_attribute(("customWidth", if *val { "1" } else { "0" }));
14191 }
14192 #[cfg(feature = "sml-i18n")]
14193 if let Some(ref val) = self.phonetic {
14194 start.push_attribute(("phonetic", if *val { "1" } else { "0" }));
14195 }
14196 #[cfg(feature = "sml-structure")]
14197 if let Some(ref val) = self.outline_level {
14198 {
14199 let s = val.to_string();
14200 start.push_attribute(("outlineLevel", s.as_str()));
14201 }
14202 }
14203 #[cfg(feature = "sml-structure")]
14204 if let Some(ref val) = self.collapsed {
14205 start.push_attribute(("collapsed", if *val { "1" } else { "0" }));
14206 }
14207 #[cfg(feature = "extra-attrs")]
14208 for (key, value) in &self.extra_attrs {
14209 start.push_attribute((key.as_str(), value.as_str()));
14210 }
14211 start
14212 }
14213
14214 fn is_empty_element(&self) -> bool {
14215 true
14216 }
14217}
14218
14219impl ToXml for Row {
14220 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
14221 #[allow(unused_mut)]
14222 let mut start = start;
14223 if let Some(ref val) = self.reference {
14224 {
14225 let s = val.to_string();
14226 start.push_attribute(("r", s.as_str()));
14227 }
14228 }
14229 if let Some(ref val) = self.cell_spans {
14230 start.push_attribute(("spans", val.as_str()));
14231 }
14232 if let Some(ref val) = self.style_index {
14233 {
14234 let s = val.to_string();
14235 start.push_attribute(("s", s.as_str()));
14236 }
14237 }
14238 #[cfg(feature = "sml-styling")]
14239 if let Some(ref val) = self.custom_format {
14240 start.push_attribute(("customFormat", if *val { "1" } else { "0" }));
14241 }
14242 #[cfg(feature = "sml-styling")]
14243 if let Some(ref val) = self.height {
14244 {
14245 let s = val.to_string();
14246 start.push_attribute(("ht", s.as_str()));
14247 }
14248 }
14249 #[cfg(feature = "sml-structure")]
14250 if let Some(ref val) = self.hidden {
14251 start.push_attribute(("hidden", if *val { "1" } else { "0" }));
14252 }
14253 #[cfg(feature = "sml-styling")]
14254 if let Some(ref val) = self.custom_height {
14255 start.push_attribute(("customHeight", if *val { "1" } else { "0" }));
14256 }
14257 #[cfg(feature = "sml-structure")]
14258 if let Some(ref val) = self.outline_level {
14259 {
14260 let s = val.to_string();
14261 start.push_attribute(("outlineLevel", s.as_str()));
14262 }
14263 }
14264 #[cfg(feature = "sml-structure")]
14265 if let Some(ref val) = self.collapsed {
14266 start.push_attribute(("collapsed", if *val { "1" } else { "0" }));
14267 }
14268 #[cfg(feature = "sml-styling")]
14269 if let Some(ref val) = self.thick_top {
14270 start.push_attribute(("thickTop", if *val { "1" } else { "0" }));
14271 }
14272 #[cfg(feature = "sml-styling")]
14273 if let Some(ref val) = self.thick_bot {
14274 start.push_attribute(("thickBot", if *val { "1" } else { "0" }));
14275 }
14276 #[cfg(feature = "sml-i18n")]
14277 if let Some(ref val) = self.placeholder {
14278 start.push_attribute(("ph", if *val { "1" } else { "0" }));
14279 }
14280 #[cfg(feature = "extra-attrs")]
14281 for (key, value) in &self.extra_attrs {
14282 start.push_attribute((key.as_str(), value.as_str()));
14283 }
14284 start
14285 }
14286
14287 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
14288 #[cfg(feature = "extra-children")]
14289 let mut extra_iter = self.extra_children.iter().peekable();
14290 #[cfg(feature = "extra-children")]
14291 let mut emit_idx: usize = 0;
14292 for item in &self.cells {
14293 #[cfg(feature = "extra-children")]
14294 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14295 extra_iter
14296 .next()
14297 .unwrap()
14298 .node
14299 .write_to(writer)
14300 .map_err(SerializeError::from)?;
14301 }
14302 item.write_element("c", writer)?;
14303 #[cfg(feature = "extra-children")]
14304 {
14305 emit_idx += 1;
14306 }
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 #[cfg(feature = "sml-extensions")]
14318 if let Some(ref val) = self.extension_list {
14319 val.write_element("extLst", writer)?;
14320 }
14321 #[cfg(feature = "extra-children")]
14322 {
14323 emit_idx += 1;
14324 }
14325 #[cfg(feature = "extra-children")]
14326 for extra in extra_iter {
14327 extra.node.write_to(writer).map_err(SerializeError::from)?;
14328 }
14329 Ok(())
14330 }
14331
14332 fn is_empty_element(&self) -> bool {
14333 if !self.cells.is_empty() {
14334 return false;
14335 }
14336 #[cfg(feature = "sml-extensions")]
14337 if self.extension_list.is_some() {
14338 return false;
14339 }
14340 #[cfg(feature = "extra-children")]
14341 if !self.extra_children.is_empty() {
14342 return false;
14343 }
14344 true
14345 }
14346}
14347
14348impl ToXml for Cell {
14349 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
14350 #[allow(unused_mut)]
14351 let mut start = start;
14352 if let Some(ref val) = self.reference {
14353 start.push_attribute(("r", val.as_str()));
14354 }
14355 if let Some(ref val) = self.style_index {
14356 {
14357 let s = val.to_string();
14358 start.push_attribute(("s", s.as_str()));
14359 }
14360 }
14361 if let Some(ref val) = self.cell_type {
14362 {
14363 let s = val.to_string();
14364 start.push_attribute(("t", s.as_str()));
14365 }
14366 }
14367 #[cfg(feature = "sml-metadata")]
14368 if let Some(ref val) = self.cm {
14369 {
14370 let s = val.to_string();
14371 start.push_attribute(("cm", s.as_str()));
14372 }
14373 }
14374 #[cfg(feature = "sml-metadata")]
14375 if let Some(ref val) = self.vm {
14376 {
14377 let s = val.to_string();
14378 start.push_attribute(("vm", s.as_str()));
14379 }
14380 }
14381 #[cfg(feature = "sml-i18n")]
14382 if let Some(ref val) = self.placeholder {
14383 start.push_attribute(("ph", if *val { "1" } else { "0" }));
14384 }
14385 #[cfg(feature = "extra-attrs")]
14386 for (key, value) in &self.extra_attrs {
14387 start.push_attribute((key.as_str(), value.as_str()));
14388 }
14389 start
14390 }
14391
14392 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
14393 #[cfg(feature = "extra-children")]
14394 let mut extra_iter = self.extra_children.iter().peekable();
14395 #[cfg(feature = "extra-children")]
14396 let mut emit_idx: usize = 0;
14397 #[cfg(feature = "extra-children")]
14398 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14399 extra_iter
14400 .next()
14401 .unwrap()
14402 .node
14403 .write_to(writer)
14404 .map_err(SerializeError::from)?;
14405 }
14406 if let Some(ref val) = self.formula {
14407 val.write_element("f", writer)?;
14408 }
14409 #[cfg(feature = "extra-children")]
14410 {
14411 emit_idx += 1;
14412 }
14413 #[cfg(feature = "extra-children")]
14414 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14415 extra_iter
14416 .next()
14417 .unwrap()
14418 .node
14419 .write_to(writer)
14420 .map_err(SerializeError::from)?;
14421 }
14422 if let Some(ref val) = self.value {
14423 {
14424 let start = BytesStart::new("v");
14425 writer.write_event(Event::Start(start))?;
14426 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
14427 writer.write_event(Event::End(BytesEnd::new("v")))?;
14428 }
14429 }
14430 #[cfg(feature = "extra-children")]
14431 {
14432 emit_idx += 1;
14433 }
14434 #[cfg(feature = "extra-children")]
14435 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14436 extra_iter
14437 .next()
14438 .unwrap()
14439 .node
14440 .write_to(writer)
14441 .map_err(SerializeError::from)?;
14442 }
14443 if let Some(ref val) = self.is {
14444 val.write_element("is", writer)?;
14445 }
14446 #[cfg(feature = "extra-children")]
14447 {
14448 emit_idx += 1;
14449 }
14450 #[cfg(feature = "extra-children")]
14451 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14452 extra_iter
14453 .next()
14454 .unwrap()
14455 .node
14456 .write_to(writer)
14457 .map_err(SerializeError::from)?;
14458 }
14459 #[cfg(feature = "sml-extensions")]
14460 if let Some(ref val) = self.extension_list {
14461 val.write_element("extLst", writer)?;
14462 }
14463 #[cfg(feature = "extra-children")]
14464 {
14465 emit_idx += 1;
14466 }
14467 #[cfg(feature = "extra-children")]
14468 for extra in extra_iter {
14469 extra.node.write_to(writer).map_err(SerializeError::from)?;
14470 }
14471 Ok(())
14472 }
14473
14474 fn is_empty_element(&self) -> bool {
14475 if self.formula.is_some() {
14476 return false;
14477 }
14478 if self.value.is_some() {
14479 return false;
14480 }
14481 if self.is.is_some() {
14482 return false;
14483 }
14484 #[cfg(feature = "sml-extensions")]
14485 if self.extension_list.is_some() {
14486 return false;
14487 }
14488 #[cfg(feature = "extra-children")]
14489 if !self.extra_children.is_empty() {
14490 return false;
14491 }
14492 true
14493 }
14494}
14495
14496impl ToXml for SheetProperties {
14497 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
14498 #[allow(unused_mut)]
14499 let mut start = start;
14500 #[cfg(feature = "sml-structure")]
14501 if let Some(ref val) = self.sync_horizontal {
14502 start.push_attribute(("syncHorizontal", if *val { "1" } else { "0" }));
14503 }
14504 #[cfg(feature = "sml-structure")]
14505 if let Some(ref val) = self.sync_vertical {
14506 start.push_attribute(("syncVertical", if *val { "1" } else { "0" }));
14507 }
14508 #[cfg(feature = "sml-structure")]
14509 if let Some(ref val) = self.sync_ref {
14510 start.push_attribute(("syncRef", val.as_str()));
14511 }
14512 #[cfg(feature = "sml-formulas")]
14513 if let Some(ref val) = self.transition_evaluation {
14514 start.push_attribute(("transitionEvaluation", if *val { "1" } else { "0" }));
14515 }
14516 #[cfg(feature = "sml-formulas")]
14517 if let Some(ref val) = self.transition_entry {
14518 start.push_attribute(("transitionEntry", if *val { "1" } else { "0" }));
14519 }
14520 #[cfg(feature = "sml-external")]
14521 if let Some(ref val) = self.published {
14522 start.push_attribute(("published", if *val { "1" } else { "0" }));
14523 }
14524 #[cfg(feature = "sml-structure")]
14525 if let Some(ref val) = self.code_name {
14526 start.push_attribute(("codeName", val.as_str()));
14527 }
14528 #[cfg(feature = "sml-filtering")]
14529 if let Some(ref val) = self.filter_mode {
14530 start.push_attribute(("filterMode", if *val { "1" } else { "0" }));
14531 }
14532 #[cfg(feature = "sml-styling")]
14533 if let Some(ref val) = self.enable_format_conditions_calculation {
14534 start.push_attribute((
14535 "enableFormatConditionsCalculation",
14536 if *val { "1" } else { "0" },
14537 ));
14538 }
14539 #[cfg(feature = "extra-attrs")]
14540 for (key, value) in &self.extra_attrs {
14541 start.push_attribute((key.as_str(), value.as_str()));
14542 }
14543 start
14544 }
14545
14546 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
14547 #[cfg(feature = "extra-children")]
14548 let mut extra_iter = self.extra_children.iter().peekable();
14549 #[cfg(feature = "extra-children")]
14550 let mut emit_idx: usize = 0;
14551 #[cfg(feature = "extra-children")]
14552 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14553 extra_iter
14554 .next()
14555 .unwrap()
14556 .node
14557 .write_to(writer)
14558 .map_err(SerializeError::from)?;
14559 }
14560 #[cfg(feature = "sml-styling")]
14561 if let Some(ref val) = self.tab_color {
14562 val.write_element("tabColor", writer)?;
14563 }
14564 #[cfg(feature = "extra-children")]
14565 {
14566 emit_idx += 1;
14567 }
14568 #[cfg(feature = "extra-children")]
14569 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14570 extra_iter
14571 .next()
14572 .unwrap()
14573 .node
14574 .write_to(writer)
14575 .map_err(SerializeError::from)?;
14576 }
14577 #[cfg(feature = "sml-structure")]
14578 if let Some(ref val) = self.outline_pr {
14579 val.write_element("outlinePr", writer)?;
14580 }
14581 #[cfg(feature = "extra-children")]
14582 {
14583 emit_idx += 1;
14584 }
14585 #[cfg(feature = "extra-children")]
14586 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14587 extra_iter
14588 .next()
14589 .unwrap()
14590 .node
14591 .write_to(writer)
14592 .map_err(SerializeError::from)?;
14593 }
14594 #[cfg(feature = "sml-layout")]
14595 if let Some(ref val) = self.page_set_up_pr {
14596 val.write_element("pageSetUpPr", writer)?;
14597 }
14598 #[cfg(feature = "extra-children")]
14599 {
14600 emit_idx += 1;
14601 }
14602 #[cfg(feature = "extra-children")]
14603 for extra in extra_iter {
14604 extra.node.write_to(writer).map_err(SerializeError::from)?;
14605 }
14606 Ok(())
14607 }
14608
14609 fn is_empty_element(&self) -> bool {
14610 #[cfg(feature = "sml-styling")]
14611 if self.tab_color.is_some() {
14612 return false;
14613 }
14614 #[cfg(feature = "sml-structure")]
14615 if self.outline_pr.is_some() {
14616 return false;
14617 }
14618 #[cfg(feature = "sml-layout")]
14619 if self.page_set_up_pr.is_some() {
14620 return false;
14621 }
14622 #[cfg(feature = "extra-children")]
14623 if !self.extra_children.is_empty() {
14624 return false;
14625 }
14626 true
14627 }
14628}
14629
14630impl ToXml for SheetDimension {
14631 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
14632 #[allow(unused_mut)]
14633 let mut start = start;
14634 {
14635 let val = &self.reference;
14636 start.push_attribute(("ref", val.as_str()));
14637 }
14638 #[cfg(feature = "extra-attrs")]
14639 for (key, value) in &self.extra_attrs {
14640 start.push_attribute((key.as_str(), value.as_str()));
14641 }
14642 start
14643 }
14644
14645 fn is_empty_element(&self) -> bool {
14646 true
14647 }
14648}
14649
14650impl ToXml for SheetViews {
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 for item in &self.sheet_view {
14657 #[cfg(feature = "extra-children")]
14658 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14659 extra_iter
14660 .next()
14661 .unwrap()
14662 .node
14663 .write_to(writer)
14664 .map_err(SerializeError::from)?;
14665 }
14666 item.write_element("sheetView", writer)?;
14667 #[cfg(feature = "extra-children")]
14668 {
14669 emit_idx += 1;
14670 }
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.extension_list {
14682 val.write_element("extLst", writer)?;
14683 }
14684 #[cfg(feature = "extra-children")]
14685 {
14686 emit_idx += 1;
14687 }
14688 #[cfg(feature = "extra-children")]
14689 for extra in extra_iter {
14690 extra.node.write_to(writer).map_err(SerializeError::from)?;
14691 }
14692 Ok(())
14693 }
14694
14695 fn is_empty_element(&self) -> bool {
14696 if !self.sheet_view.is_empty() {
14697 return false;
14698 }
14699 if self.extension_list.is_some() {
14700 return false;
14701 }
14702 #[cfg(feature = "extra-children")]
14703 if !self.extra_children.is_empty() {
14704 return false;
14705 }
14706 true
14707 }
14708}
14709
14710impl ToXml for SheetView {
14711 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
14712 #[allow(unused_mut)]
14713 let mut start = start;
14714 #[cfg(feature = "sml-protection")]
14715 if let Some(ref val) = self.window_protection {
14716 start.push_attribute(("windowProtection", if *val { "1" } else { "0" }));
14717 }
14718 #[cfg(feature = "sml-formulas")]
14719 if let Some(ref val) = self.show_formulas {
14720 start.push_attribute(("showFormulas", if *val { "1" } else { "0" }));
14721 }
14722 #[cfg(feature = "sml-styling")]
14723 if let Some(ref val) = self.show_grid_lines {
14724 start.push_attribute(("showGridLines", if *val { "1" } else { "0" }));
14725 }
14726 #[cfg(feature = "sml-styling")]
14727 if let Some(ref val) = self.show_row_col_headers {
14728 start.push_attribute(("showRowColHeaders", if *val { "1" } else { "0" }));
14729 }
14730 #[cfg(feature = "sml-styling")]
14731 if let Some(ref val) = self.show_zeros {
14732 start.push_attribute(("showZeros", if *val { "1" } else { "0" }));
14733 }
14734 #[cfg(feature = "sml-i18n")]
14735 if let Some(ref val) = self.right_to_left {
14736 start.push_attribute(("rightToLeft", if *val { "1" } else { "0" }));
14737 }
14738 if let Some(ref val) = self.tab_selected {
14739 start.push_attribute(("tabSelected", if *val { "1" } else { "0" }));
14740 }
14741 #[cfg(feature = "sml-layout")]
14742 if let Some(ref val) = self.show_ruler {
14743 start.push_attribute(("showRuler", if *val { "1" } else { "0" }));
14744 }
14745 #[cfg(feature = "sml-structure")]
14746 if let Some(ref val) = self.show_outline_symbols {
14747 start.push_attribute(("showOutlineSymbols", if *val { "1" } else { "0" }));
14748 }
14749 #[cfg(feature = "sml-styling")]
14750 if let Some(ref val) = self.default_grid_color {
14751 start.push_attribute(("defaultGridColor", if *val { "1" } else { "0" }));
14752 }
14753 #[cfg(feature = "sml-layout")]
14754 if let Some(ref val) = self.show_white_space {
14755 start.push_attribute(("showWhiteSpace", if *val { "1" } else { "0" }));
14756 }
14757 if let Some(ref val) = self.view {
14758 {
14759 let s = val.to_string();
14760 start.push_attribute(("view", s.as_str()));
14761 }
14762 }
14763 if let Some(ref val) = self.top_left_cell {
14764 start.push_attribute(("topLeftCell", val.as_str()));
14765 }
14766 #[cfg(feature = "sml-styling")]
14767 if let Some(ref val) = self.color_id {
14768 {
14769 let s = val.to_string();
14770 start.push_attribute(("colorId", s.as_str()));
14771 }
14772 }
14773 if let Some(ref val) = self.zoom_scale {
14774 {
14775 let s = val.to_string();
14776 start.push_attribute(("zoomScale", s.as_str()));
14777 }
14778 }
14779 if let Some(ref val) = self.zoom_scale_normal {
14780 {
14781 let s = val.to_string();
14782 start.push_attribute(("zoomScaleNormal", s.as_str()));
14783 }
14784 }
14785 #[cfg(feature = "sml-layout")]
14786 if let Some(ref val) = self.zoom_scale_sheet_layout_view {
14787 {
14788 let s = val.to_string();
14789 start.push_attribute(("zoomScaleSheetLayoutView", s.as_str()));
14790 }
14791 }
14792 #[cfg(feature = "sml-layout")]
14793 if let Some(ref val) = self.zoom_scale_page_layout_view {
14794 {
14795 let s = val.to_string();
14796 start.push_attribute(("zoomScalePageLayoutView", s.as_str()));
14797 }
14798 }
14799 {
14800 let val = &self.workbook_view_id;
14801 {
14802 let s = val.to_string();
14803 start.push_attribute(("workbookViewId", s.as_str()));
14804 }
14805 }
14806 #[cfg(feature = "extra-attrs")]
14807 for (key, value) in &self.extra_attrs {
14808 start.push_attribute((key.as_str(), value.as_str()));
14809 }
14810 start
14811 }
14812
14813 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
14814 #[cfg(feature = "extra-children")]
14815 let mut extra_iter = self.extra_children.iter().peekable();
14816 #[cfg(feature = "extra-children")]
14817 let mut emit_idx: usize = 0;
14818 #[cfg(feature = "extra-children")]
14819 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14820 extra_iter
14821 .next()
14822 .unwrap()
14823 .node
14824 .write_to(writer)
14825 .map_err(SerializeError::from)?;
14826 }
14827 #[cfg(feature = "sml-structure")]
14828 if let Some(ref val) = self.pane {
14829 val.write_element("pane", writer)?;
14830 }
14831 #[cfg(feature = "extra-children")]
14832 {
14833 emit_idx += 1;
14834 }
14835 for item in &self.selection {
14836 #[cfg(feature = "extra-children")]
14837 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14838 extra_iter
14839 .next()
14840 .unwrap()
14841 .node
14842 .write_to(writer)
14843 .map_err(SerializeError::from)?;
14844 }
14845 item.write_element("selection", writer)?;
14846 #[cfg(feature = "extra-children")]
14847 {
14848 emit_idx += 1;
14849 }
14850 }
14851 #[cfg(feature = "sml-pivot")]
14852 for item in &self.pivot_selection {
14853 #[cfg(feature = "extra-children")]
14854 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14855 extra_iter
14856 .next()
14857 .unwrap()
14858 .node
14859 .write_to(writer)
14860 .map_err(SerializeError::from)?;
14861 }
14862 item.write_element("pivotSelection", writer)?;
14863 #[cfg(feature = "extra-children")]
14864 {
14865 emit_idx += 1;
14866 }
14867 }
14868 #[cfg(feature = "extra-children")]
14869 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
14870 extra_iter
14871 .next()
14872 .unwrap()
14873 .node
14874 .write_to(writer)
14875 .map_err(SerializeError::from)?;
14876 }
14877 #[cfg(feature = "sml-extensions")]
14878 if let Some(ref val) = self.extension_list {
14879 val.write_element("extLst", writer)?;
14880 }
14881 #[cfg(feature = "extra-children")]
14882 {
14883 emit_idx += 1;
14884 }
14885 #[cfg(feature = "extra-children")]
14886 for extra in extra_iter {
14887 extra.node.write_to(writer).map_err(SerializeError::from)?;
14888 }
14889 Ok(())
14890 }
14891
14892 fn is_empty_element(&self) -> bool {
14893 #[cfg(feature = "sml-structure")]
14894 if self.pane.is_some() {
14895 return false;
14896 }
14897 if !self.selection.is_empty() {
14898 return false;
14899 }
14900 #[cfg(feature = "sml-pivot")]
14901 if !self.pivot_selection.is_empty() {
14902 return false;
14903 }
14904 #[cfg(feature = "sml-extensions")]
14905 if self.extension_list.is_some() {
14906 return false;
14907 }
14908 #[cfg(feature = "extra-children")]
14909 if !self.extra_children.is_empty() {
14910 return false;
14911 }
14912 true
14913 }
14914}
14915
14916impl ToXml for Pane {
14917 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
14918 #[allow(unused_mut)]
14919 let mut start = start;
14920 #[cfg(feature = "sml-structure")]
14921 if let Some(ref val) = self.x_split {
14922 {
14923 let s = val.to_string();
14924 start.push_attribute(("xSplit", s.as_str()));
14925 }
14926 }
14927 #[cfg(feature = "sml-structure")]
14928 if let Some(ref val) = self.y_split {
14929 {
14930 let s = val.to_string();
14931 start.push_attribute(("ySplit", s.as_str()));
14932 }
14933 }
14934 #[cfg(feature = "sml-structure")]
14935 if let Some(ref val) = self.top_left_cell {
14936 start.push_attribute(("topLeftCell", val.as_str()));
14937 }
14938 #[cfg(feature = "sml-structure")]
14939 if let Some(ref val) = self.active_pane {
14940 {
14941 let s = val.to_string();
14942 start.push_attribute(("activePane", s.as_str()));
14943 }
14944 }
14945 #[cfg(feature = "sml-structure")]
14946 if let Some(ref val) = self.state {
14947 {
14948 let s = val.to_string();
14949 start.push_attribute(("state", s.as_str()));
14950 }
14951 }
14952 #[cfg(feature = "extra-attrs")]
14953 for (key, value) in &self.extra_attrs {
14954 start.push_attribute((key.as_str(), value.as_str()));
14955 }
14956 start
14957 }
14958
14959 fn is_empty_element(&self) -> bool {
14960 true
14961 }
14962}
14963
14964impl ToXml for CTPivotSelection {
14965 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
14966 #[allow(unused_mut)]
14967 let mut start = start;
14968 if let Some(ref val) = self.pane {
14969 {
14970 let s = val.to_string();
14971 start.push_attribute(("pane", s.as_str()));
14972 }
14973 }
14974 if let Some(ref val) = self.show_header {
14975 start.push_attribute(("showHeader", if *val { "1" } else { "0" }));
14976 }
14977 if let Some(ref val) = self.label {
14978 start.push_attribute(("label", if *val { "1" } else { "0" }));
14979 }
14980 if let Some(ref val) = self.data {
14981 start.push_attribute(("data", if *val { "1" } else { "0" }));
14982 }
14983 if let Some(ref val) = self.extendable {
14984 start.push_attribute(("extendable", if *val { "1" } else { "0" }));
14985 }
14986 if let Some(ref val) = self.count {
14987 {
14988 let s = val.to_string();
14989 start.push_attribute(("count", s.as_str()));
14990 }
14991 }
14992 if let Some(ref val) = self.axis {
14993 {
14994 let s = val.to_string();
14995 start.push_attribute(("axis", s.as_str()));
14996 }
14997 }
14998 if let Some(ref val) = self.dimension {
14999 {
15000 let s = val.to_string();
15001 start.push_attribute(("dimension", s.as_str()));
15002 }
15003 }
15004 if let Some(ref val) = self.start {
15005 {
15006 let s = val.to_string();
15007 start.push_attribute(("start", s.as_str()));
15008 }
15009 }
15010 if let Some(ref val) = self.start_column {
15011 {
15012 let s = val.to_string();
15013 start.push_attribute(("min", s.as_str()));
15014 }
15015 }
15016 if let Some(ref val) = self.end_column {
15017 {
15018 let s = val.to_string();
15019 start.push_attribute(("max", s.as_str()));
15020 }
15021 }
15022 if let Some(ref val) = self.active_row {
15023 {
15024 let s = val.to_string();
15025 start.push_attribute(("activeRow", s.as_str()));
15026 }
15027 }
15028 if let Some(ref val) = self.active_col {
15029 {
15030 let s = val.to_string();
15031 start.push_attribute(("activeCol", s.as_str()));
15032 }
15033 }
15034 if let Some(ref val) = self.previous_row {
15035 {
15036 let s = val.to_string();
15037 start.push_attribute(("previousRow", s.as_str()));
15038 }
15039 }
15040 if let Some(ref val) = self.previous_col {
15041 {
15042 let s = val.to_string();
15043 start.push_attribute(("previousCol", s.as_str()));
15044 }
15045 }
15046 if let Some(ref val) = self.click {
15047 {
15048 let s = val.to_string();
15049 start.push_attribute(("click", s.as_str()));
15050 }
15051 }
15052 if let Some(ref val) = self.id {
15053 start.push_attribute(("r:id", val.as_str()));
15054 }
15055 #[cfg(feature = "extra-attrs")]
15056 for (key, value) in &self.extra_attrs {
15057 start.push_attribute((key.as_str(), value.as_str()));
15058 }
15059 start
15060 }
15061
15062 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15063 #[cfg(feature = "extra-children")]
15064 let mut extra_iter = self.extra_children.iter().peekable();
15065 #[cfg(feature = "extra-children")]
15066 let mut emit_idx: usize = 0;
15067 #[cfg(feature = "extra-children")]
15068 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15069 extra_iter
15070 .next()
15071 .unwrap()
15072 .node
15073 .write_to(writer)
15074 .map_err(SerializeError::from)?;
15075 }
15076 {
15077 let val = &self.pivot_area;
15078 val.write_element("pivotArea", writer)?;
15079 }
15080 #[cfg(feature = "extra-children")]
15081 {
15082 emit_idx += 1;
15083 }
15084 #[cfg(feature = "extra-children")]
15085 for extra in extra_iter {
15086 extra.node.write_to(writer).map_err(SerializeError::from)?;
15087 }
15088 Ok(())
15089 }
15090
15091 fn is_empty_element(&self) -> bool {
15092 false
15093 }
15094}
15095
15096impl ToXml for Selection {
15097 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15098 #[allow(unused_mut)]
15099 let mut start = start;
15100 if let Some(ref val) = self.pane {
15101 {
15102 let s = val.to_string();
15103 start.push_attribute(("pane", s.as_str()));
15104 }
15105 }
15106 if let Some(ref val) = self.active_cell {
15107 start.push_attribute(("activeCell", val.as_str()));
15108 }
15109 if let Some(ref val) = self.active_cell_id {
15110 {
15111 let s = val.to_string();
15112 start.push_attribute(("activeCellId", s.as_str()));
15113 }
15114 }
15115 if let Some(ref val) = self.square_reference {
15116 start.push_attribute(("sqref", val.as_str()));
15117 }
15118 #[cfg(feature = "extra-attrs")]
15119 for (key, value) in &self.extra_attrs {
15120 start.push_attribute((key.as_str(), value.as_str()));
15121 }
15122 start
15123 }
15124
15125 fn is_empty_element(&self) -> bool {
15126 true
15127 }
15128}
15129
15130impl ToXml for PageBreaks {
15131 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15132 #[allow(unused_mut)]
15133 let mut start = start;
15134 #[cfg(feature = "sml-layout")]
15135 if let Some(ref val) = self.count {
15136 {
15137 let s = val.to_string();
15138 start.push_attribute(("count", s.as_str()));
15139 }
15140 }
15141 #[cfg(feature = "sml-layout")]
15142 if let Some(ref val) = self.manual_break_count {
15143 {
15144 let s = val.to_string();
15145 start.push_attribute(("manualBreakCount", s.as_str()));
15146 }
15147 }
15148 #[cfg(feature = "extra-attrs")]
15149 for (key, value) in &self.extra_attrs {
15150 start.push_attribute((key.as_str(), value.as_str()));
15151 }
15152 start
15153 }
15154
15155 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15156 #[cfg(feature = "extra-children")]
15157 let mut extra_iter = self.extra_children.iter().peekable();
15158 #[cfg(feature = "extra-children")]
15159 let mut emit_idx: usize = 0;
15160 #[cfg(feature = "sml-layout")]
15161 for item in &self.brk {
15162 #[cfg(feature = "extra-children")]
15163 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15164 extra_iter
15165 .next()
15166 .unwrap()
15167 .node
15168 .write_to(writer)
15169 .map_err(SerializeError::from)?;
15170 }
15171 item.write_element("brk", writer)?;
15172 #[cfg(feature = "extra-children")]
15173 {
15174 emit_idx += 1;
15175 }
15176 }
15177 #[cfg(feature = "extra-children")]
15178 for extra in extra_iter {
15179 extra.node.write_to(writer).map_err(SerializeError::from)?;
15180 }
15181 Ok(())
15182 }
15183
15184 fn is_empty_element(&self) -> bool {
15185 #[cfg(feature = "sml-layout")]
15186 if !self.brk.is_empty() {
15187 return false;
15188 }
15189 #[cfg(feature = "extra-children")]
15190 if !self.extra_children.is_empty() {
15191 return false;
15192 }
15193 true
15194 }
15195}
15196
15197impl ToXml for PageBreak {
15198 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15199 #[allow(unused_mut)]
15200 let mut start = start;
15201 if let Some(ref val) = self.id {
15202 {
15203 let s = val.to_string();
15204 start.push_attribute(("id", s.as_str()));
15205 }
15206 }
15207 if let Some(ref val) = self.start_column {
15208 {
15209 let s = val.to_string();
15210 start.push_attribute(("min", s.as_str()));
15211 }
15212 }
15213 if let Some(ref val) = self.end_column {
15214 {
15215 let s = val.to_string();
15216 start.push_attribute(("max", s.as_str()));
15217 }
15218 }
15219 if let Some(ref val) = self.man {
15220 start.push_attribute(("man", if *val { "1" } else { "0" }));
15221 }
15222 if let Some(ref val) = self.pt {
15223 start.push_attribute(("pt", if *val { "1" } else { "0" }));
15224 }
15225 #[cfg(feature = "extra-attrs")]
15226 for (key, value) in &self.extra_attrs {
15227 start.push_attribute((key.as_str(), value.as_str()));
15228 }
15229 start
15230 }
15231
15232 fn is_empty_element(&self) -> bool {
15233 true
15234 }
15235}
15236
15237impl ToXml for OutlineProperties {
15238 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15239 #[allow(unused_mut)]
15240 let mut start = start;
15241 if let Some(ref val) = self.apply_styles {
15242 start.push_attribute(("applyStyles", if *val { "1" } else { "0" }));
15243 }
15244 if let Some(ref val) = self.summary_below {
15245 start.push_attribute(("summaryBelow", if *val { "1" } else { "0" }));
15246 }
15247 if let Some(ref val) = self.summary_right {
15248 start.push_attribute(("summaryRight", if *val { "1" } else { "0" }));
15249 }
15250 if let Some(ref val) = self.show_outline_symbols {
15251 start.push_attribute(("showOutlineSymbols", if *val { "1" } else { "0" }));
15252 }
15253 #[cfg(feature = "extra-attrs")]
15254 for (key, value) in &self.extra_attrs {
15255 start.push_attribute((key.as_str(), value.as_str()));
15256 }
15257 start
15258 }
15259
15260 fn is_empty_element(&self) -> bool {
15261 true
15262 }
15263}
15264
15265impl ToXml for PageSetupProperties {
15266 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15267 #[allow(unused_mut)]
15268 let mut start = start;
15269 if let Some(ref val) = self.auto_page_breaks {
15270 start.push_attribute(("autoPageBreaks", if *val { "1" } else { "0" }));
15271 }
15272 if let Some(ref val) = self.fit_to_page {
15273 start.push_attribute(("fitToPage", if *val { "1" } else { "0" }));
15274 }
15275 #[cfg(feature = "extra-attrs")]
15276 for (key, value) in &self.extra_attrs {
15277 start.push_attribute((key.as_str(), value.as_str()));
15278 }
15279 start
15280 }
15281
15282 fn is_empty_element(&self) -> bool {
15283 true
15284 }
15285}
15286
15287impl ToXml for CTDataConsolidate {
15288 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15289 #[allow(unused_mut)]
15290 let mut start = start;
15291 if let Some(ref val) = self.function {
15292 {
15293 let s = val.to_string();
15294 start.push_attribute(("function", s.as_str()));
15295 }
15296 }
15297 if let Some(ref val) = self.start_labels {
15298 start.push_attribute(("startLabels", if *val { "1" } else { "0" }));
15299 }
15300 if let Some(ref val) = self.left_labels {
15301 start.push_attribute(("leftLabels", if *val { "1" } else { "0" }));
15302 }
15303 if let Some(ref val) = self.top_labels {
15304 start.push_attribute(("topLabels", if *val { "1" } else { "0" }));
15305 }
15306 if let Some(ref val) = self.link {
15307 start.push_attribute(("link", if *val { "1" } else { "0" }));
15308 }
15309 #[cfg(feature = "extra-attrs")]
15310 for (key, value) in &self.extra_attrs {
15311 start.push_attribute((key.as_str(), value.as_str()));
15312 }
15313 start
15314 }
15315
15316 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15317 #[cfg(feature = "extra-children")]
15318 let mut extra_iter = self.extra_children.iter().peekable();
15319 #[cfg(feature = "extra-children")]
15320 let mut emit_idx: usize = 0;
15321 #[cfg(feature = "extra-children")]
15322 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15323 extra_iter
15324 .next()
15325 .unwrap()
15326 .node
15327 .write_to(writer)
15328 .map_err(SerializeError::from)?;
15329 }
15330 if let Some(ref val) = self.data_refs {
15331 val.write_element("dataRefs", writer)?;
15332 }
15333 #[cfg(feature = "extra-children")]
15334 {
15335 emit_idx += 1;
15336 }
15337 #[cfg(feature = "extra-children")]
15338 for extra in extra_iter {
15339 extra.node.write_to(writer).map_err(SerializeError::from)?;
15340 }
15341 Ok(())
15342 }
15343
15344 fn is_empty_element(&self) -> bool {
15345 if self.data_refs.is_some() {
15346 return false;
15347 }
15348 #[cfg(feature = "extra-children")]
15349 if !self.extra_children.is_empty() {
15350 return false;
15351 }
15352 true
15353 }
15354}
15355
15356impl ToXml for CTDataRefs {
15357 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15358 #[allow(unused_mut)]
15359 let mut start = start;
15360 if let Some(ref val) = self.count {
15361 {
15362 let s = val.to_string();
15363 start.push_attribute(("count", s.as_str()));
15364 }
15365 }
15366 #[cfg(feature = "extra-attrs")]
15367 for (key, value) in &self.extra_attrs {
15368 start.push_attribute((key.as_str(), value.as_str()));
15369 }
15370 start
15371 }
15372
15373 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15374 #[cfg(feature = "extra-children")]
15375 let mut extra_iter = self.extra_children.iter().peekable();
15376 #[cfg(feature = "extra-children")]
15377 let mut emit_idx: usize = 0;
15378 for item in &self.data_ref {
15379 #[cfg(feature = "extra-children")]
15380 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15381 extra_iter
15382 .next()
15383 .unwrap()
15384 .node
15385 .write_to(writer)
15386 .map_err(SerializeError::from)?;
15387 }
15388 item.write_element("dataRef", writer)?;
15389 #[cfg(feature = "extra-children")]
15390 {
15391 emit_idx += 1;
15392 }
15393 }
15394 #[cfg(feature = "extra-children")]
15395 for extra in extra_iter {
15396 extra.node.write_to(writer).map_err(SerializeError::from)?;
15397 }
15398 Ok(())
15399 }
15400
15401 fn is_empty_element(&self) -> bool {
15402 if !self.data_ref.is_empty() {
15403 return false;
15404 }
15405 #[cfg(feature = "extra-children")]
15406 if !self.extra_children.is_empty() {
15407 return false;
15408 }
15409 true
15410 }
15411}
15412
15413impl ToXml for CTDataRef {
15414 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15415 #[allow(unused_mut)]
15416 let mut start = start;
15417 if let Some(ref val) = self.reference {
15418 start.push_attribute(("ref", val.as_str()));
15419 }
15420 if let Some(ref val) = self.name {
15421 start.push_attribute(("name", val.as_str()));
15422 }
15423 if let Some(ref val) = self.sheet {
15424 start.push_attribute(("sheet", val.as_str()));
15425 }
15426 if let Some(ref val) = self.id {
15427 start.push_attribute(("r:id", val.as_str()));
15428 }
15429 #[cfg(feature = "extra-attrs")]
15430 for (key, value) in &self.extra_attrs {
15431 start.push_attribute((key.as_str(), value.as_str()));
15432 }
15433 start
15434 }
15435
15436 fn is_empty_element(&self) -> bool {
15437 true
15438 }
15439}
15440
15441impl ToXml for MergedCells {
15442 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15443 #[allow(unused_mut)]
15444 let mut start = start;
15445 if let Some(ref val) = self.count {
15446 {
15447 let s = val.to_string();
15448 start.push_attribute(("count", s.as_str()));
15449 }
15450 }
15451 #[cfg(feature = "extra-attrs")]
15452 for (key, value) in &self.extra_attrs {
15453 start.push_attribute((key.as_str(), value.as_str()));
15454 }
15455 start
15456 }
15457
15458 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15459 #[cfg(feature = "extra-children")]
15460 let mut extra_iter = self.extra_children.iter().peekable();
15461 #[cfg(feature = "extra-children")]
15462 let mut emit_idx: usize = 0;
15463 for item in &self.merge_cell {
15464 #[cfg(feature = "extra-children")]
15465 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15466 extra_iter
15467 .next()
15468 .unwrap()
15469 .node
15470 .write_to(writer)
15471 .map_err(SerializeError::from)?;
15472 }
15473 item.write_element("mergeCell", writer)?;
15474 #[cfg(feature = "extra-children")]
15475 {
15476 emit_idx += 1;
15477 }
15478 }
15479 #[cfg(feature = "extra-children")]
15480 for extra in extra_iter {
15481 extra.node.write_to(writer).map_err(SerializeError::from)?;
15482 }
15483 Ok(())
15484 }
15485
15486 fn is_empty_element(&self) -> bool {
15487 if !self.merge_cell.is_empty() {
15488 return false;
15489 }
15490 #[cfg(feature = "extra-children")]
15491 if !self.extra_children.is_empty() {
15492 return false;
15493 }
15494 true
15495 }
15496}
15497
15498impl ToXml for MergedCell {
15499 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15500 #[allow(unused_mut)]
15501 let mut start = start;
15502 {
15503 let val = &self.reference;
15504 start.push_attribute(("ref", val.as_str()));
15505 }
15506 #[cfg(feature = "extra-attrs")]
15507 for (key, value) in &self.extra_attrs {
15508 start.push_attribute((key.as_str(), value.as_str()));
15509 }
15510 start
15511 }
15512
15513 fn is_empty_element(&self) -> bool {
15514 true
15515 }
15516}
15517
15518impl ToXml for SmartTags {
15519 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15520 #[cfg(feature = "extra-children")]
15521 let mut extra_iter = self.extra_children.iter().peekable();
15522 #[cfg(feature = "extra-children")]
15523 let mut emit_idx: usize = 0;
15524 for item in &self.cell_smart_tags {
15525 #[cfg(feature = "extra-children")]
15526 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15527 extra_iter
15528 .next()
15529 .unwrap()
15530 .node
15531 .write_to(writer)
15532 .map_err(SerializeError::from)?;
15533 }
15534 item.write_element("cellSmartTags", writer)?;
15535 #[cfg(feature = "extra-children")]
15536 {
15537 emit_idx += 1;
15538 }
15539 }
15540 #[cfg(feature = "extra-children")]
15541 for extra in extra_iter {
15542 extra.node.write_to(writer).map_err(SerializeError::from)?;
15543 }
15544 Ok(())
15545 }
15546
15547 fn is_empty_element(&self) -> bool {
15548 if !self.cell_smart_tags.is_empty() {
15549 return false;
15550 }
15551 #[cfg(feature = "extra-children")]
15552 if !self.extra_children.is_empty() {
15553 return false;
15554 }
15555 true
15556 }
15557}
15558
15559impl ToXml for CellSmartTags {
15560 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15561 #[allow(unused_mut)]
15562 let mut start = start;
15563 {
15564 let val = &self.reference;
15565 start.push_attribute(("r", val.as_str()));
15566 }
15567 #[cfg(feature = "extra-attrs")]
15568 for (key, value) in &self.extra_attrs {
15569 start.push_attribute((key.as_str(), value.as_str()));
15570 }
15571 start
15572 }
15573
15574 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15575 #[cfg(feature = "extra-children")]
15576 let mut extra_iter = self.extra_children.iter().peekable();
15577 #[cfg(feature = "extra-children")]
15578 let mut emit_idx: usize = 0;
15579 for item in &self.cell_smart_tag {
15580 #[cfg(feature = "extra-children")]
15581 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15582 extra_iter
15583 .next()
15584 .unwrap()
15585 .node
15586 .write_to(writer)
15587 .map_err(SerializeError::from)?;
15588 }
15589 item.write_element("cellSmartTag", writer)?;
15590 #[cfg(feature = "extra-children")]
15591 {
15592 emit_idx += 1;
15593 }
15594 }
15595 #[cfg(feature = "extra-children")]
15596 for extra in extra_iter {
15597 extra.node.write_to(writer).map_err(SerializeError::from)?;
15598 }
15599 Ok(())
15600 }
15601
15602 fn is_empty_element(&self) -> bool {
15603 if !self.cell_smart_tag.is_empty() {
15604 return false;
15605 }
15606 #[cfg(feature = "extra-children")]
15607 if !self.extra_children.is_empty() {
15608 return false;
15609 }
15610 true
15611 }
15612}
15613
15614impl ToXml for CellSmartTag {
15615 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15616 #[allow(unused_mut)]
15617 let mut start = start;
15618 {
15619 let val = &self.r#type;
15620 {
15621 let s = val.to_string();
15622 start.push_attribute(("type", s.as_str()));
15623 }
15624 }
15625 if let Some(ref val) = self.deleted {
15626 start.push_attribute(("deleted", if *val { "1" } else { "0" }));
15627 }
15628 if let Some(ref val) = self.xml_based {
15629 start.push_attribute(("xmlBased", if *val { "1" } else { "0" }));
15630 }
15631 #[cfg(feature = "extra-attrs")]
15632 for (key, value) in &self.extra_attrs {
15633 start.push_attribute((key.as_str(), value.as_str()));
15634 }
15635 start
15636 }
15637
15638 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15639 #[cfg(feature = "extra-children")]
15640 let mut extra_iter = self.extra_children.iter().peekable();
15641 #[cfg(feature = "extra-children")]
15642 let mut emit_idx: usize = 0;
15643 for item in &self.cell_smart_tag_pr {
15644 #[cfg(feature = "extra-children")]
15645 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15646 extra_iter
15647 .next()
15648 .unwrap()
15649 .node
15650 .write_to(writer)
15651 .map_err(SerializeError::from)?;
15652 }
15653 item.write_element("cellSmartTagPr", writer)?;
15654 #[cfg(feature = "extra-children")]
15655 {
15656 emit_idx += 1;
15657 }
15658 }
15659 #[cfg(feature = "extra-children")]
15660 for extra in extra_iter {
15661 extra.node.write_to(writer).map_err(SerializeError::from)?;
15662 }
15663 Ok(())
15664 }
15665
15666 fn is_empty_element(&self) -> bool {
15667 if !self.cell_smart_tag_pr.is_empty() {
15668 return false;
15669 }
15670 #[cfg(feature = "extra-children")]
15671 if !self.extra_children.is_empty() {
15672 return false;
15673 }
15674 true
15675 }
15676}
15677
15678impl ToXml for CTCellSmartTagPr {
15679 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15680 #[allow(unused_mut)]
15681 let mut start = start;
15682 {
15683 let val = &self.key;
15684 start.push_attribute(("key", val.as_str()));
15685 }
15686 {
15687 let val = &self.value;
15688 start.push_attribute(("val", val.as_str()));
15689 }
15690 #[cfg(feature = "extra-attrs")]
15691 for (key, value) in &self.extra_attrs {
15692 start.push_attribute((key.as_str(), value.as_str()));
15693 }
15694 start
15695 }
15696
15697 fn is_empty_element(&self) -> bool {
15698 true
15699 }
15700}
15701
15702impl ToXml for Drawing {
15703 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15704 #[allow(unused_mut)]
15705 let mut start = start;
15706 {
15707 let val = &self.id;
15708 start.push_attribute(("r:id", val.as_str()));
15709 }
15710 #[cfg(feature = "extra-attrs")]
15711 for (key, value) in &self.extra_attrs {
15712 start.push_attribute((key.as_str(), value.as_str()));
15713 }
15714 start
15715 }
15716
15717 fn is_empty_element(&self) -> bool {
15718 true
15719 }
15720}
15721
15722impl ToXml for LegacyDrawing {
15723 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15724 #[allow(unused_mut)]
15725 let mut start = start;
15726 {
15727 let val = &self.id;
15728 start.push_attribute(("r:id", val.as_str()));
15729 }
15730 #[cfg(feature = "extra-attrs")]
15731 for (key, value) in &self.extra_attrs {
15732 start.push_attribute((key.as_str(), value.as_str()));
15733 }
15734 start
15735 }
15736
15737 fn is_empty_element(&self) -> bool {
15738 true
15739 }
15740}
15741
15742impl ToXml for DrawingHeaderFooter {
15743 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15744 #[allow(unused_mut)]
15745 let mut start = start;
15746 {
15747 let val = &self.id;
15748 start.push_attribute(("r:id", val.as_str()));
15749 }
15750 if let Some(ref val) = self.lho {
15751 {
15752 let s = val.to_string();
15753 start.push_attribute(("lho", s.as_str()));
15754 }
15755 }
15756 if let Some(ref val) = self.lhe {
15757 {
15758 let s = val.to_string();
15759 start.push_attribute(("lhe", s.as_str()));
15760 }
15761 }
15762 if let Some(ref val) = self.lhf {
15763 {
15764 let s = val.to_string();
15765 start.push_attribute(("lhf", s.as_str()));
15766 }
15767 }
15768 if let Some(ref val) = self.cho {
15769 {
15770 let s = val.to_string();
15771 start.push_attribute(("cho", s.as_str()));
15772 }
15773 }
15774 if let Some(ref val) = self.che {
15775 {
15776 let s = val.to_string();
15777 start.push_attribute(("che", s.as_str()));
15778 }
15779 }
15780 if let Some(ref val) = self.chf {
15781 {
15782 let s = val.to_string();
15783 start.push_attribute(("chf", s.as_str()));
15784 }
15785 }
15786 if let Some(ref val) = self.rho {
15787 {
15788 let s = val.to_string();
15789 start.push_attribute(("rho", s.as_str()));
15790 }
15791 }
15792 if let Some(ref val) = self.rhe {
15793 {
15794 let s = val.to_string();
15795 start.push_attribute(("rhe", s.as_str()));
15796 }
15797 }
15798 if let Some(ref val) = self.rhf {
15799 {
15800 let s = val.to_string();
15801 start.push_attribute(("rhf", s.as_str()));
15802 }
15803 }
15804 if let Some(ref val) = self.lfo {
15805 {
15806 let s = val.to_string();
15807 start.push_attribute(("lfo", s.as_str()));
15808 }
15809 }
15810 if let Some(ref val) = self.lfe {
15811 {
15812 let s = val.to_string();
15813 start.push_attribute(("lfe", s.as_str()));
15814 }
15815 }
15816 if let Some(ref val) = self.lff {
15817 {
15818 let s = val.to_string();
15819 start.push_attribute(("lff", s.as_str()));
15820 }
15821 }
15822 if let Some(ref val) = self.cfo {
15823 {
15824 let s = val.to_string();
15825 start.push_attribute(("cfo", s.as_str()));
15826 }
15827 }
15828 if let Some(ref val) = self.cfe {
15829 {
15830 let s = val.to_string();
15831 start.push_attribute(("cfe", s.as_str()));
15832 }
15833 }
15834 if let Some(ref val) = self.cff {
15835 {
15836 let s = val.to_string();
15837 start.push_attribute(("cff", s.as_str()));
15838 }
15839 }
15840 if let Some(ref val) = self.rfo {
15841 {
15842 let s = val.to_string();
15843 start.push_attribute(("rfo", s.as_str()));
15844 }
15845 }
15846 if let Some(ref val) = self.rfe {
15847 {
15848 let s = val.to_string();
15849 start.push_attribute(("rfe", s.as_str()));
15850 }
15851 }
15852 if let Some(ref val) = self.rff {
15853 {
15854 let s = val.to_string();
15855 start.push_attribute(("rff", s.as_str()));
15856 }
15857 }
15858 #[cfg(feature = "extra-attrs")]
15859 for (key, value) in &self.extra_attrs {
15860 start.push_attribute((key.as_str(), value.as_str()));
15861 }
15862 start
15863 }
15864
15865 fn is_empty_element(&self) -> bool {
15866 true
15867 }
15868}
15869
15870impl ToXml for CustomSheetViews {
15871 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15872 #[cfg(feature = "extra-children")]
15873 let mut extra_iter = self.extra_children.iter().peekable();
15874 #[cfg(feature = "extra-children")]
15875 let mut emit_idx: usize = 0;
15876 for item in &self.custom_sheet_view {
15877 #[cfg(feature = "extra-children")]
15878 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
15879 extra_iter
15880 .next()
15881 .unwrap()
15882 .node
15883 .write_to(writer)
15884 .map_err(SerializeError::from)?;
15885 }
15886 item.write_element("customSheetView", writer)?;
15887 #[cfg(feature = "extra-children")]
15888 {
15889 emit_idx += 1;
15890 }
15891 }
15892 #[cfg(feature = "extra-children")]
15893 for extra in extra_iter {
15894 extra.node.write_to(writer).map_err(SerializeError::from)?;
15895 }
15896 Ok(())
15897 }
15898
15899 fn is_empty_element(&self) -> bool {
15900 if !self.custom_sheet_view.is_empty() {
15901 return false;
15902 }
15903 #[cfg(feature = "extra-children")]
15904 if !self.extra_children.is_empty() {
15905 return false;
15906 }
15907 true
15908 }
15909}
15910
15911impl ToXml for CustomSheetView {
15912 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
15913 #[allow(unused_mut)]
15914 let mut start = start;
15915 {
15916 let val = &self.guid;
15917 start.push_attribute(("guid", val.as_str()));
15918 }
15919 if let Some(ref val) = self.scale {
15920 {
15921 let s = val.to_string();
15922 start.push_attribute(("scale", s.as_str()));
15923 }
15924 }
15925 if let Some(ref val) = self.color_id {
15926 {
15927 let s = val.to_string();
15928 start.push_attribute(("colorId", s.as_str()));
15929 }
15930 }
15931 if let Some(ref val) = self.show_page_breaks {
15932 start.push_attribute(("showPageBreaks", if *val { "1" } else { "0" }));
15933 }
15934 if let Some(ref val) = self.show_formulas {
15935 start.push_attribute(("showFormulas", if *val { "1" } else { "0" }));
15936 }
15937 if let Some(ref val) = self.show_grid_lines {
15938 start.push_attribute(("showGridLines", if *val { "1" } else { "0" }));
15939 }
15940 if let Some(ref val) = self.show_row_col {
15941 start.push_attribute(("showRowCol", if *val { "1" } else { "0" }));
15942 }
15943 if let Some(ref val) = self.outline_symbols {
15944 start.push_attribute(("outlineSymbols", if *val { "1" } else { "0" }));
15945 }
15946 if let Some(ref val) = self.zero_values {
15947 start.push_attribute(("zeroValues", if *val { "1" } else { "0" }));
15948 }
15949 if let Some(ref val) = self.fit_to_page {
15950 start.push_attribute(("fitToPage", if *val { "1" } else { "0" }));
15951 }
15952 if let Some(ref val) = self.print_area {
15953 start.push_attribute(("printArea", if *val { "1" } else { "0" }));
15954 }
15955 if let Some(ref val) = self.filter {
15956 start.push_attribute(("filter", if *val { "1" } else { "0" }));
15957 }
15958 if let Some(ref val) = self.show_auto_filter {
15959 start.push_attribute(("showAutoFilter", if *val { "1" } else { "0" }));
15960 }
15961 if let Some(ref val) = self.hidden_rows {
15962 start.push_attribute(("hiddenRows", if *val { "1" } else { "0" }));
15963 }
15964 if let Some(ref val) = self.hidden_columns {
15965 start.push_attribute(("hiddenColumns", if *val { "1" } else { "0" }));
15966 }
15967 if let Some(ref val) = self.state {
15968 {
15969 let s = val.to_string();
15970 start.push_attribute(("state", s.as_str()));
15971 }
15972 }
15973 if let Some(ref val) = self.filter_unique {
15974 start.push_attribute(("filterUnique", if *val { "1" } else { "0" }));
15975 }
15976 if let Some(ref val) = self.view {
15977 {
15978 let s = val.to_string();
15979 start.push_attribute(("view", s.as_str()));
15980 }
15981 }
15982 if let Some(ref val) = self.show_ruler {
15983 start.push_attribute(("showRuler", if *val { "1" } else { "0" }));
15984 }
15985 if let Some(ref val) = self.top_left_cell {
15986 start.push_attribute(("topLeftCell", val.as_str()));
15987 }
15988 #[cfg(feature = "extra-attrs")]
15989 for (key, value) in &self.extra_attrs {
15990 start.push_attribute((key.as_str(), value.as_str()));
15991 }
15992 start
15993 }
15994
15995 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
15996 #[cfg(feature = "extra-children")]
15997 let mut extra_iter = self.extra_children.iter().peekable();
15998 #[cfg(feature = "extra-children")]
15999 let mut emit_idx: usize = 0;
16000 #[cfg(feature = "extra-children")]
16001 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16002 extra_iter
16003 .next()
16004 .unwrap()
16005 .node
16006 .write_to(writer)
16007 .map_err(SerializeError::from)?;
16008 }
16009 if let Some(ref val) = self.pane {
16010 val.write_element("pane", writer)?;
16011 }
16012 #[cfg(feature = "extra-children")]
16013 {
16014 emit_idx += 1;
16015 }
16016 #[cfg(feature = "extra-children")]
16017 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16018 extra_iter
16019 .next()
16020 .unwrap()
16021 .node
16022 .write_to(writer)
16023 .map_err(SerializeError::from)?;
16024 }
16025 if let Some(ref val) = self.selection {
16026 val.write_element("selection", writer)?;
16027 }
16028 #[cfg(feature = "extra-children")]
16029 {
16030 emit_idx += 1;
16031 }
16032 #[cfg(feature = "extra-children")]
16033 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16034 extra_iter
16035 .next()
16036 .unwrap()
16037 .node
16038 .write_to(writer)
16039 .map_err(SerializeError::from)?;
16040 }
16041 if let Some(ref val) = self.row_breaks {
16042 val.write_element("rowBreaks", writer)?;
16043 }
16044 #[cfg(feature = "extra-children")]
16045 {
16046 emit_idx += 1;
16047 }
16048 #[cfg(feature = "extra-children")]
16049 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16050 extra_iter
16051 .next()
16052 .unwrap()
16053 .node
16054 .write_to(writer)
16055 .map_err(SerializeError::from)?;
16056 }
16057 if let Some(ref val) = self.col_breaks {
16058 val.write_element("colBreaks", writer)?;
16059 }
16060 #[cfg(feature = "extra-children")]
16061 {
16062 emit_idx += 1;
16063 }
16064 #[cfg(feature = "extra-children")]
16065 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16066 extra_iter
16067 .next()
16068 .unwrap()
16069 .node
16070 .write_to(writer)
16071 .map_err(SerializeError::from)?;
16072 }
16073 if let Some(ref val) = self.page_margins {
16074 val.write_element("pageMargins", writer)?;
16075 }
16076 #[cfg(feature = "extra-children")]
16077 {
16078 emit_idx += 1;
16079 }
16080 #[cfg(feature = "extra-children")]
16081 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16082 extra_iter
16083 .next()
16084 .unwrap()
16085 .node
16086 .write_to(writer)
16087 .map_err(SerializeError::from)?;
16088 }
16089 if let Some(ref val) = self.print_options {
16090 val.write_element("printOptions", writer)?;
16091 }
16092 #[cfg(feature = "extra-children")]
16093 {
16094 emit_idx += 1;
16095 }
16096 #[cfg(feature = "extra-children")]
16097 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16098 extra_iter
16099 .next()
16100 .unwrap()
16101 .node
16102 .write_to(writer)
16103 .map_err(SerializeError::from)?;
16104 }
16105 if let Some(ref val) = self.page_setup {
16106 val.write_element("pageSetup", writer)?;
16107 }
16108 #[cfg(feature = "extra-children")]
16109 {
16110 emit_idx += 1;
16111 }
16112 #[cfg(feature = "extra-children")]
16113 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16114 extra_iter
16115 .next()
16116 .unwrap()
16117 .node
16118 .write_to(writer)
16119 .map_err(SerializeError::from)?;
16120 }
16121 if let Some(ref val) = self.header_footer {
16122 val.write_element("headerFooter", writer)?;
16123 }
16124 #[cfg(feature = "extra-children")]
16125 {
16126 emit_idx += 1;
16127 }
16128 #[cfg(feature = "extra-children")]
16129 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16130 extra_iter
16131 .next()
16132 .unwrap()
16133 .node
16134 .write_to(writer)
16135 .map_err(SerializeError::from)?;
16136 }
16137 if let Some(ref val) = self.auto_filter {
16138 val.write_element("autoFilter", writer)?;
16139 }
16140 #[cfg(feature = "extra-children")]
16141 {
16142 emit_idx += 1;
16143 }
16144 #[cfg(feature = "extra-children")]
16145 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16146 extra_iter
16147 .next()
16148 .unwrap()
16149 .node
16150 .write_to(writer)
16151 .map_err(SerializeError::from)?;
16152 }
16153 if let Some(ref val) = self.extension_list {
16154 val.write_element("extLst", writer)?;
16155 }
16156 #[cfg(feature = "extra-children")]
16157 {
16158 emit_idx += 1;
16159 }
16160 #[cfg(feature = "extra-children")]
16161 for extra in extra_iter {
16162 extra.node.write_to(writer).map_err(SerializeError::from)?;
16163 }
16164 Ok(())
16165 }
16166
16167 fn is_empty_element(&self) -> bool {
16168 if self.pane.is_some() {
16169 return false;
16170 }
16171 if self.selection.is_some() {
16172 return false;
16173 }
16174 if self.row_breaks.is_some() {
16175 return false;
16176 }
16177 if self.col_breaks.is_some() {
16178 return false;
16179 }
16180 if self.page_margins.is_some() {
16181 return false;
16182 }
16183 if self.print_options.is_some() {
16184 return false;
16185 }
16186 if self.page_setup.is_some() {
16187 return false;
16188 }
16189 if self.header_footer.is_some() {
16190 return false;
16191 }
16192 if self.auto_filter.is_some() {
16193 return false;
16194 }
16195 if self.extension_list.is_some() {
16196 return false;
16197 }
16198 #[cfg(feature = "extra-children")]
16199 if !self.extra_children.is_empty() {
16200 return false;
16201 }
16202 true
16203 }
16204}
16205
16206impl ToXml for DataValidations {
16207 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
16208 #[allow(unused_mut)]
16209 let mut start = start;
16210 if let Some(ref val) = self.disable_prompts {
16211 start.push_attribute(("disablePrompts", if *val { "1" } else { "0" }));
16212 }
16213 if let Some(ref val) = self.x_window {
16214 {
16215 let s = val.to_string();
16216 start.push_attribute(("xWindow", s.as_str()));
16217 }
16218 }
16219 if let Some(ref val) = self.y_window {
16220 {
16221 let s = val.to_string();
16222 start.push_attribute(("yWindow", s.as_str()));
16223 }
16224 }
16225 if let Some(ref val) = self.count {
16226 {
16227 let s = val.to_string();
16228 start.push_attribute(("count", s.as_str()));
16229 }
16230 }
16231 #[cfg(feature = "extra-attrs")]
16232 for (key, value) in &self.extra_attrs {
16233 start.push_attribute((key.as_str(), value.as_str()));
16234 }
16235 start
16236 }
16237
16238 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16239 #[cfg(feature = "extra-children")]
16240 let mut extra_iter = self.extra_children.iter().peekable();
16241 #[cfg(feature = "extra-children")]
16242 let mut emit_idx: usize = 0;
16243 for item in &self.data_validation {
16244 #[cfg(feature = "extra-children")]
16245 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16246 extra_iter
16247 .next()
16248 .unwrap()
16249 .node
16250 .write_to(writer)
16251 .map_err(SerializeError::from)?;
16252 }
16253 item.write_element("dataValidation", writer)?;
16254 #[cfg(feature = "extra-children")]
16255 {
16256 emit_idx += 1;
16257 }
16258 }
16259 #[cfg(feature = "extra-children")]
16260 for extra in extra_iter {
16261 extra.node.write_to(writer).map_err(SerializeError::from)?;
16262 }
16263 Ok(())
16264 }
16265
16266 fn is_empty_element(&self) -> bool {
16267 if !self.data_validation.is_empty() {
16268 return false;
16269 }
16270 #[cfg(feature = "extra-children")]
16271 if !self.extra_children.is_empty() {
16272 return false;
16273 }
16274 true
16275 }
16276}
16277
16278impl ToXml for DataValidation {
16279 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
16280 #[allow(unused_mut)]
16281 let mut start = start;
16282 #[cfg(feature = "sml-validation")]
16283 if let Some(ref val) = self.r#type {
16284 {
16285 let s = val.to_string();
16286 start.push_attribute(("type", s.as_str()));
16287 }
16288 }
16289 #[cfg(feature = "sml-validation")]
16290 if let Some(ref val) = self.error_style {
16291 {
16292 let s = val.to_string();
16293 start.push_attribute(("errorStyle", s.as_str()));
16294 }
16295 }
16296 #[cfg(feature = "sml-validation")]
16297 if let Some(ref val) = self.ime_mode {
16298 {
16299 let s = val.to_string();
16300 start.push_attribute(("imeMode", s.as_str()));
16301 }
16302 }
16303 #[cfg(feature = "sml-validation")]
16304 if let Some(ref val) = self.operator {
16305 {
16306 let s = val.to_string();
16307 start.push_attribute(("operator", s.as_str()));
16308 }
16309 }
16310 #[cfg(feature = "sml-validation")]
16311 if let Some(ref val) = self.allow_blank {
16312 start.push_attribute(("allowBlank", if *val { "1" } else { "0" }));
16313 }
16314 #[cfg(feature = "sml-validation")]
16315 if let Some(ref val) = self.show_drop_down {
16316 start.push_attribute(("showDropDown", if *val { "1" } else { "0" }));
16317 }
16318 #[cfg(feature = "sml-validation")]
16319 if let Some(ref val) = self.show_input_message {
16320 start.push_attribute(("showInputMessage", if *val { "1" } else { "0" }));
16321 }
16322 #[cfg(feature = "sml-validation")]
16323 if let Some(ref val) = self.show_error_message {
16324 start.push_attribute(("showErrorMessage", if *val { "1" } else { "0" }));
16325 }
16326 #[cfg(feature = "sml-validation")]
16327 if let Some(ref val) = self.error_title {
16328 start.push_attribute(("errorTitle", val.as_str()));
16329 }
16330 #[cfg(feature = "sml-validation")]
16331 if let Some(ref val) = self.error {
16332 start.push_attribute(("error", val.as_str()));
16333 }
16334 #[cfg(feature = "sml-validation")]
16335 if let Some(ref val) = self.prompt_title {
16336 start.push_attribute(("promptTitle", val.as_str()));
16337 }
16338 #[cfg(feature = "sml-validation")]
16339 if let Some(ref val) = self.prompt {
16340 start.push_attribute(("prompt", val.as_str()));
16341 }
16342 #[cfg(feature = "sml-validation")]
16343 {
16344 let val = &self.square_reference;
16345 start.push_attribute(("sqref", val.as_str()));
16346 }
16347 #[cfg(feature = "extra-attrs")]
16348 for (key, value) in &self.extra_attrs {
16349 start.push_attribute((key.as_str(), value.as_str()));
16350 }
16351 start
16352 }
16353
16354 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16355 #[cfg(feature = "extra-children")]
16356 let mut extra_iter = self.extra_children.iter().peekable();
16357 #[cfg(feature = "extra-children")]
16358 let mut emit_idx: usize = 0;
16359 #[cfg(feature = "extra-children")]
16360 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16361 extra_iter
16362 .next()
16363 .unwrap()
16364 .node
16365 .write_to(writer)
16366 .map_err(SerializeError::from)?;
16367 }
16368 #[cfg(feature = "sml-validation")]
16369 if let Some(ref val) = self.formula1 {
16370 {
16371 let start = BytesStart::new("formula1");
16372 writer.write_event(Event::Start(start))?;
16373 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
16374 writer.write_event(Event::End(BytesEnd::new("formula1")))?;
16375 }
16376 }
16377 #[cfg(feature = "extra-children")]
16378 {
16379 emit_idx += 1;
16380 }
16381 #[cfg(feature = "extra-children")]
16382 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16383 extra_iter
16384 .next()
16385 .unwrap()
16386 .node
16387 .write_to(writer)
16388 .map_err(SerializeError::from)?;
16389 }
16390 #[cfg(feature = "sml-validation")]
16391 if let Some(ref val) = self.formula2 {
16392 {
16393 let start = BytesStart::new("formula2");
16394 writer.write_event(Event::Start(start))?;
16395 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
16396 writer.write_event(Event::End(BytesEnd::new("formula2")))?;
16397 }
16398 }
16399 #[cfg(feature = "extra-children")]
16400 {
16401 emit_idx += 1;
16402 }
16403 #[cfg(feature = "extra-children")]
16404 for extra in extra_iter {
16405 extra.node.write_to(writer).map_err(SerializeError::from)?;
16406 }
16407 Ok(())
16408 }
16409
16410 fn is_empty_element(&self) -> bool {
16411 #[cfg(feature = "sml-validation")]
16412 if self.formula1.is_some() {
16413 return false;
16414 }
16415 #[cfg(feature = "sml-validation")]
16416 if self.formula2.is_some() {
16417 return false;
16418 }
16419 #[cfg(feature = "extra-children")]
16420 if !self.extra_children.is_empty() {
16421 return false;
16422 }
16423 true
16424 }
16425}
16426
16427impl ToXml for ConditionalFormatting {
16428 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
16429 #[allow(unused_mut)]
16430 let mut start = start;
16431 #[cfg(feature = "sml-pivot")]
16432 if let Some(ref val) = self.pivot {
16433 start.push_attribute(("pivot", if *val { "1" } else { "0" }));
16434 }
16435 #[cfg(feature = "sml-styling")]
16436 if let Some(ref val) = self.square_reference {
16437 start.push_attribute(("sqref", val.as_str()));
16438 }
16439 #[cfg(feature = "extra-attrs")]
16440 for (key, value) in &self.extra_attrs {
16441 start.push_attribute((key.as_str(), value.as_str()));
16442 }
16443 start
16444 }
16445
16446 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16447 #[cfg(feature = "extra-children")]
16448 let mut extra_iter = self.extra_children.iter().peekable();
16449 #[cfg(feature = "extra-children")]
16450 let mut emit_idx: usize = 0;
16451 #[cfg(feature = "sml-styling")]
16452 for item in &self.cf_rule {
16453 #[cfg(feature = "extra-children")]
16454 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16455 extra_iter
16456 .next()
16457 .unwrap()
16458 .node
16459 .write_to(writer)
16460 .map_err(SerializeError::from)?;
16461 }
16462 item.write_element("cfRule", writer)?;
16463 #[cfg(feature = "extra-children")]
16464 {
16465 emit_idx += 1;
16466 }
16467 }
16468 #[cfg(feature = "extra-children")]
16469 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16470 extra_iter
16471 .next()
16472 .unwrap()
16473 .node
16474 .write_to(writer)
16475 .map_err(SerializeError::from)?;
16476 }
16477 #[cfg(feature = "sml-extensions")]
16478 if let Some(ref val) = self.extension_list {
16479 val.write_element("extLst", writer)?;
16480 }
16481 #[cfg(feature = "extra-children")]
16482 {
16483 emit_idx += 1;
16484 }
16485 #[cfg(feature = "extra-children")]
16486 for extra in extra_iter {
16487 extra.node.write_to(writer).map_err(SerializeError::from)?;
16488 }
16489 Ok(())
16490 }
16491
16492 fn is_empty_element(&self) -> bool {
16493 #[cfg(feature = "sml-styling")]
16494 if !self.cf_rule.is_empty() {
16495 return false;
16496 }
16497 #[cfg(feature = "sml-extensions")]
16498 if self.extension_list.is_some() {
16499 return false;
16500 }
16501 #[cfg(feature = "extra-children")]
16502 if !self.extra_children.is_empty() {
16503 return false;
16504 }
16505 true
16506 }
16507}
16508
16509impl ToXml for ConditionalRule {
16510 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
16511 #[allow(unused_mut)]
16512 let mut start = start;
16513 #[cfg(feature = "sml-styling")]
16514 if let Some(ref val) = self.r#type {
16515 {
16516 let s = val.to_string();
16517 start.push_attribute(("type", s.as_str()));
16518 }
16519 }
16520 #[cfg(feature = "sml-styling")]
16521 if let Some(ref val) = self.dxf_id {
16522 {
16523 let s = val.to_string();
16524 start.push_attribute(("dxfId", s.as_str()));
16525 }
16526 }
16527 #[cfg(feature = "sml-styling")]
16528 {
16529 let val = &self.priority;
16530 {
16531 let s = val.to_string();
16532 start.push_attribute(("priority", s.as_str()));
16533 }
16534 }
16535 #[cfg(feature = "sml-styling")]
16536 if let Some(ref val) = self.stop_if_true {
16537 start.push_attribute(("stopIfTrue", if *val { "1" } else { "0" }));
16538 }
16539 #[cfg(feature = "sml-styling")]
16540 if let Some(ref val) = self.above_average {
16541 start.push_attribute(("aboveAverage", if *val { "1" } else { "0" }));
16542 }
16543 #[cfg(feature = "sml-styling")]
16544 if let Some(ref val) = self.percent {
16545 start.push_attribute(("percent", if *val { "1" } else { "0" }));
16546 }
16547 #[cfg(feature = "sml-styling")]
16548 if let Some(ref val) = self.bottom {
16549 start.push_attribute(("bottom", if *val { "1" } else { "0" }));
16550 }
16551 #[cfg(feature = "sml-styling")]
16552 if let Some(ref val) = self.operator {
16553 {
16554 let s = val.to_string();
16555 start.push_attribute(("operator", s.as_str()));
16556 }
16557 }
16558 #[cfg(feature = "sml-styling")]
16559 if let Some(ref val) = self.text {
16560 start.push_attribute(("text", val.as_str()));
16561 }
16562 #[cfg(feature = "sml-styling")]
16563 if let Some(ref val) = self.time_period {
16564 {
16565 let s = val.to_string();
16566 start.push_attribute(("timePeriod", s.as_str()));
16567 }
16568 }
16569 #[cfg(feature = "sml-styling")]
16570 if let Some(ref val) = self.rank {
16571 {
16572 let s = val.to_string();
16573 start.push_attribute(("rank", s.as_str()));
16574 }
16575 }
16576 #[cfg(feature = "sml-styling")]
16577 if let Some(ref val) = self.std_dev {
16578 {
16579 let s = val.to_string();
16580 start.push_attribute(("stdDev", s.as_str()));
16581 }
16582 }
16583 #[cfg(feature = "sml-styling")]
16584 if let Some(ref val) = self.equal_average {
16585 start.push_attribute(("equalAverage", if *val { "1" } else { "0" }));
16586 }
16587 #[cfg(feature = "extra-attrs")]
16588 for (key, value) in &self.extra_attrs {
16589 start.push_attribute((key.as_str(), value.as_str()));
16590 }
16591 start
16592 }
16593
16594 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16595 #[cfg(feature = "extra-children")]
16596 let mut extra_iter = self.extra_children.iter().peekable();
16597 #[cfg(feature = "extra-children")]
16598 let mut emit_idx: usize = 0;
16599 #[cfg(feature = "sml-styling")]
16600 for item in &self.formula {
16601 #[cfg(feature = "extra-children")]
16602 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16603 extra_iter
16604 .next()
16605 .unwrap()
16606 .node
16607 .write_to(writer)
16608 .map_err(SerializeError::from)?;
16609 }
16610 {
16611 let start = BytesStart::new("formula");
16612 writer.write_event(Event::Start(start))?;
16613 writer.write_event(Event::Text(BytesText::new(item.as_str())))?;
16614 writer.write_event(Event::End(BytesEnd::new("formula")))?;
16615 }
16616 #[cfg(feature = "extra-children")]
16617 {
16618 emit_idx += 1;
16619 }
16620 }
16621 #[cfg(feature = "extra-children")]
16622 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16623 extra_iter
16624 .next()
16625 .unwrap()
16626 .node
16627 .write_to(writer)
16628 .map_err(SerializeError::from)?;
16629 }
16630 #[cfg(feature = "sml-styling")]
16631 if let Some(ref val) = self.color_scale {
16632 val.write_element("colorScale", writer)?;
16633 }
16634 #[cfg(feature = "extra-children")]
16635 {
16636 emit_idx += 1;
16637 }
16638 #[cfg(feature = "extra-children")]
16639 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16640 extra_iter
16641 .next()
16642 .unwrap()
16643 .node
16644 .write_to(writer)
16645 .map_err(SerializeError::from)?;
16646 }
16647 #[cfg(feature = "sml-styling")]
16648 if let Some(ref val) = self.data_bar {
16649 val.write_element("dataBar", writer)?;
16650 }
16651 #[cfg(feature = "extra-children")]
16652 {
16653 emit_idx += 1;
16654 }
16655 #[cfg(feature = "extra-children")]
16656 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16657 extra_iter
16658 .next()
16659 .unwrap()
16660 .node
16661 .write_to(writer)
16662 .map_err(SerializeError::from)?;
16663 }
16664 #[cfg(feature = "sml-styling")]
16665 if let Some(ref val) = self.icon_set {
16666 val.write_element("iconSet", writer)?;
16667 }
16668 #[cfg(feature = "extra-children")]
16669 {
16670 emit_idx += 1;
16671 }
16672 #[cfg(feature = "extra-children")]
16673 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16674 extra_iter
16675 .next()
16676 .unwrap()
16677 .node
16678 .write_to(writer)
16679 .map_err(SerializeError::from)?;
16680 }
16681 #[cfg(feature = "sml-extensions")]
16682 if let Some(ref val) = self.extension_list {
16683 val.write_element("extLst", writer)?;
16684 }
16685 #[cfg(feature = "extra-children")]
16686 {
16687 emit_idx += 1;
16688 }
16689 #[cfg(feature = "extra-children")]
16690 for extra in extra_iter {
16691 extra.node.write_to(writer).map_err(SerializeError::from)?;
16692 }
16693 Ok(())
16694 }
16695
16696 fn is_empty_element(&self) -> bool {
16697 #[cfg(feature = "sml-styling")]
16698 if !self.formula.is_empty() {
16699 return false;
16700 }
16701 #[cfg(feature = "sml-styling")]
16702 if self.color_scale.is_some() {
16703 return false;
16704 }
16705 #[cfg(feature = "sml-styling")]
16706 if self.data_bar.is_some() {
16707 return false;
16708 }
16709 #[cfg(feature = "sml-styling")]
16710 if self.icon_set.is_some() {
16711 return false;
16712 }
16713 #[cfg(feature = "sml-extensions")]
16714 if self.extension_list.is_some() {
16715 return false;
16716 }
16717 #[cfg(feature = "extra-children")]
16718 if !self.extra_children.is_empty() {
16719 return false;
16720 }
16721 true
16722 }
16723}
16724
16725impl ToXml for Hyperlinks {
16726 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16727 #[cfg(feature = "extra-children")]
16728 let mut extra_iter = self.extra_children.iter().peekable();
16729 #[cfg(feature = "extra-children")]
16730 let mut emit_idx: usize = 0;
16731 for item in &self.hyperlink {
16732 #[cfg(feature = "extra-children")]
16733 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16734 extra_iter
16735 .next()
16736 .unwrap()
16737 .node
16738 .write_to(writer)
16739 .map_err(SerializeError::from)?;
16740 }
16741 item.write_element("hyperlink", writer)?;
16742 #[cfg(feature = "extra-children")]
16743 {
16744 emit_idx += 1;
16745 }
16746 }
16747 #[cfg(feature = "extra-children")]
16748 for extra in extra_iter {
16749 extra.node.write_to(writer).map_err(SerializeError::from)?;
16750 }
16751 Ok(())
16752 }
16753
16754 fn is_empty_element(&self) -> bool {
16755 if !self.hyperlink.is_empty() {
16756 return false;
16757 }
16758 #[cfg(feature = "extra-children")]
16759 if !self.extra_children.is_empty() {
16760 return false;
16761 }
16762 true
16763 }
16764}
16765
16766impl ToXml for Hyperlink {
16767 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
16768 #[allow(unused_mut)]
16769 let mut start = start;
16770 #[cfg(feature = "sml-hyperlinks")]
16771 {
16772 let val = &self.reference;
16773 start.push_attribute(("ref", val.as_str()));
16774 }
16775 if let Some(ref val) = self.id {
16776 start.push_attribute(("r:id", val.as_str()));
16777 }
16778 #[cfg(feature = "sml-hyperlinks")]
16779 if let Some(ref val) = self.location {
16780 start.push_attribute(("location", val.as_str()));
16781 }
16782 #[cfg(feature = "sml-hyperlinks")]
16783 if let Some(ref val) = self.tooltip {
16784 start.push_attribute(("tooltip", val.as_str()));
16785 }
16786 #[cfg(feature = "sml-hyperlinks")]
16787 if let Some(ref val) = self.display {
16788 start.push_attribute(("display", val.as_str()));
16789 }
16790 #[cfg(feature = "extra-attrs")]
16791 for (key, value) in &self.extra_attrs {
16792 start.push_attribute((key.as_str(), value.as_str()));
16793 }
16794 start
16795 }
16796
16797 fn is_empty_element(&self) -> bool {
16798 true
16799 }
16800}
16801
16802impl ToXml for CellFormula {
16803 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
16804 #[allow(unused_mut)]
16805 let mut start = start;
16806 if let Some(ref val) = self.cell_type {
16807 {
16808 let s = val.to_string();
16809 start.push_attribute(("t", s.as_str()));
16810 }
16811 }
16812 #[cfg(feature = "sml-formulas-advanced")]
16813 if let Some(ref val) = self.aca {
16814 start.push_attribute(("aca", if *val { "1" } else { "0" }));
16815 }
16816 if let Some(ref val) = self.reference {
16817 start.push_attribute(("ref", val.as_str()));
16818 }
16819 #[cfg(feature = "sml-formulas-advanced")]
16820 if let Some(ref val) = self.dt2_d {
16821 start.push_attribute(("dt2D", if *val { "1" } else { "0" }));
16822 }
16823 #[cfg(feature = "sml-formulas-advanced")]
16824 if let Some(ref val) = self.dtr {
16825 start.push_attribute(("dtr", if *val { "1" } else { "0" }));
16826 }
16827 #[cfg(feature = "sml-formulas-advanced")]
16828 if let Some(ref val) = self.del1 {
16829 start.push_attribute(("del1", if *val { "1" } else { "0" }));
16830 }
16831 #[cfg(feature = "sml-formulas-advanced")]
16832 if let Some(ref val) = self.del2 {
16833 start.push_attribute(("del2", if *val { "1" } else { "0" }));
16834 }
16835 #[cfg(feature = "sml-formulas-advanced")]
16836 if let Some(ref val) = self.r1 {
16837 start.push_attribute(("r1", val.as_str()));
16838 }
16839 #[cfg(feature = "sml-formulas-advanced")]
16840 if let Some(ref val) = self.r2 {
16841 start.push_attribute(("r2", val.as_str()));
16842 }
16843 #[cfg(feature = "sml-formulas-advanced")]
16844 if let Some(ref val) = self.ca {
16845 start.push_attribute(("ca", if *val { "1" } else { "0" }));
16846 }
16847 if let Some(ref val) = self.si {
16848 {
16849 let s = val.to_string();
16850 start.push_attribute(("si", s.as_str()));
16851 }
16852 }
16853 #[cfg(feature = "sml-formulas-advanced")]
16854 if let Some(ref val) = self.bx {
16855 start.push_attribute(("bx", if *val { "1" } else { "0" }));
16856 }
16857 #[cfg(feature = "extra-attrs")]
16858 for (key, value) in &self.extra_attrs {
16859 start.push_attribute((key.as_str(), value.as_str()));
16860 }
16861 start
16862 }
16863
16864 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16865 if let Some(ref text) = self.text {
16866 writer.write_event(Event::Text(BytesText::new(text)))?;
16867 }
16868 #[cfg(feature = "extra-children")]
16869 for extra in &self.extra_children {
16870 extra.node.write_to(writer).map_err(SerializeError::from)?;
16871 }
16872 Ok(())
16873 }
16874
16875 fn is_empty_element(&self) -> bool {
16876 if self.text.is_some() {
16877 return false;
16878 }
16879 #[cfg(feature = "extra-children")]
16880 if !self.extra_children.is_empty() {
16881 return false;
16882 }
16883 true
16884 }
16885}
16886
16887impl ToXml for ColorScale {
16888 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16889 #[cfg(feature = "extra-children")]
16890 let mut extra_iter = self.extra_children.iter().peekable();
16891 #[cfg(feature = "extra-children")]
16892 let mut emit_idx: usize = 0;
16893 #[cfg(feature = "sml-styling")]
16894 for item in &self.cfvo {
16895 #[cfg(feature = "extra-children")]
16896 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16897 extra_iter
16898 .next()
16899 .unwrap()
16900 .node
16901 .write_to(writer)
16902 .map_err(SerializeError::from)?;
16903 }
16904 item.write_element("cfvo", writer)?;
16905 #[cfg(feature = "extra-children")]
16906 {
16907 emit_idx += 1;
16908 }
16909 }
16910 #[cfg(feature = "sml-styling")]
16911 for item in &self.color {
16912 #[cfg(feature = "extra-children")]
16913 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16914 extra_iter
16915 .next()
16916 .unwrap()
16917 .node
16918 .write_to(writer)
16919 .map_err(SerializeError::from)?;
16920 }
16921 item.write_element("color", writer)?;
16922 #[cfg(feature = "extra-children")]
16923 {
16924 emit_idx += 1;
16925 }
16926 }
16927 #[cfg(feature = "extra-children")]
16928 for extra in extra_iter {
16929 extra.node.write_to(writer).map_err(SerializeError::from)?;
16930 }
16931 Ok(())
16932 }
16933
16934 fn is_empty_element(&self) -> bool {
16935 #[cfg(feature = "sml-styling")]
16936 if !self.cfvo.is_empty() {
16937 return false;
16938 }
16939 #[cfg(feature = "sml-styling")]
16940 if !self.color.is_empty() {
16941 return false;
16942 }
16943 #[cfg(feature = "extra-children")]
16944 if !self.extra_children.is_empty() {
16945 return false;
16946 }
16947 true
16948 }
16949}
16950
16951impl ToXml for DataBar {
16952 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
16953 #[allow(unused_mut)]
16954 let mut start = start;
16955 #[cfg(feature = "sml-styling")]
16956 if let Some(ref val) = self.min_length {
16957 {
16958 let s = val.to_string();
16959 start.push_attribute(("minLength", s.as_str()));
16960 }
16961 }
16962 #[cfg(feature = "sml-styling")]
16963 if let Some(ref val) = self.max_length {
16964 {
16965 let s = val.to_string();
16966 start.push_attribute(("maxLength", s.as_str()));
16967 }
16968 }
16969 #[cfg(feature = "sml-styling")]
16970 if let Some(ref val) = self.show_value {
16971 start.push_attribute(("showValue", if *val { "1" } else { "0" }));
16972 }
16973 #[cfg(feature = "extra-attrs")]
16974 for (key, value) in &self.extra_attrs {
16975 start.push_attribute((key.as_str(), value.as_str()));
16976 }
16977 start
16978 }
16979
16980 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
16981 #[cfg(feature = "extra-children")]
16982 let mut extra_iter = self.extra_children.iter().peekable();
16983 #[cfg(feature = "extra-children")]
16984 let mut emit_idx: usize = 0;
16985 #[cfg(feature = "sml-styling")]
16986 for item in &self.cfvo {
16987 #[cfg(feature = "extra-children")]
16988 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
16989 extra_iter
16990 .next()
16991 .unwrap()
16992 .node
16993 .write_to(writer)
16994 .map_err(SerializeError::from)?;
16995 }
16996 item.write_element("cfvo", writer)?;
16997 #[cfg(feature = "extra-children")]
16998 {
16999 emit_idx += 1;
17000 }
17001 }
17002 #[cfg(feature = "extra-children")]
17003 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17004 extra_iter
17005 .next()
17006 .unwrap()
17007 .node
17008 .write_to(writer)
17009 .map_err(SerializeError::from)?;
17010 }
17011 #[cfg(feature = "sml-styling")]
17012 {
17013 let val = &self.color;
17014 val.write_element("color", writer)?;
17015 }
17016 #[cfg(feature = "extra-children")]
17017 {
17018 emit_idx += 1;
17019 }
17020 #[cfg(feature = "extra-children")]
17021 for extra in extra_iter {
17022 extra.node.write_to(writer).map_err(SerializeError::from)?;
17023 }
17024 Ok(())
17025 }
17026
17027 fn is_empty_element(&self) -> bool {
17028 #[cfg(feature = "sml-styling")]
17029 if !self.cfvo.is_empty() {
17030 return false;
17031 }
17032 #[cfg(feature = "sml-styling")]
17033 return false;
17034 #[cfg(feature = "extra-children")]
17035 if !self.extra_children.is_empty() {
17036 return false;
17037 }
17038 true
17039 }
17040}
17041
17042impl ToXml for IconSet {
17043 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17044 #[allow(unused_mut)]
17045 let mut start = start;
17046 #[cfg(feature = "sml-styling")]
17047 if let Some(ref val) = self.icon_set {
17048 {
17049 let s = val.to_string();
17050 start.push_attribute(("iconSet", s.as_str()));
17051 }
17052 }
17053 #[cfg(feature = "sml-styling")]
17054 if let Some(ref val) = self.show_value {
17055 start.push_attribute(("showValue", if *val { "1" } else { "0" }));
17056 }
17057 #[cfg(feature = "sml-styling")]
17058 if let Some(ref val) = self.percent {
17059 start.push_attribute(("percent", if *val { "1" } else { "0" }));
17060 }
17061 #[cfg(feature = "sml-styling")]
17062 if let Some(ref val) = self.reverse {
17063 start.push_attribute(("reverse", if *val { "1" } else { "0" }));
17064 }
17065 #[cfg(feature = "extra-attrs")]
17066 for (key, value) in &self.extra_attrs {
17067 start.push_attribute((key.as_str(), value.as_str()));
17068 }
17069 start
17070 }
17071
17072 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17073 #[cfg(feature = "extra-children")]
17074 let mut extra_iter = self.extra_children.iter().peekable();
17075 #[cfg(feature = "extra-children")]
17076 let mut emit_idx: usize = 0;
17077 #[cfg(feature = "sml-styling")]
17078 for item in &self.cfvo {
17079 #[cfg(feature = "extra-children")]
17080 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17081 extra_iter
17082 .next()
17083 .unwrap()
17084 .node
17085 .write_to(writer)
17086 .map_err(SerializeError::from)?;
17087 }
17088 item.write_element("cfvo", writer)?;
17089 #[cfg(feature = "extra-children")]
17090 {
17091 emit_idx += 1;
17092 }
17093 }
17094 #[cfg(feature = "extra-children")]
17095 for extra in extra_iter {
17096 extra.node.write_to(writer).map_err(SerializeError::from)?;
17097 }
17098 Ok(())
17099 }
17100
17101 fn is_empty_element(&self) -> bool {
17102 #[cfg(feature = "sml-styling")]
17103 if !self.cfvo.is_empty() {
17104 return false;
17105 }
17106 #[cfg(feature = "extra-children")]
17107 if !self.extra_children.is_empty() {
17108 return false;
17109 }
17110 true
17111 }
17112}
17113
17114impl ToXml for ConditionalFormatValue {
17115 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17116 #[allow(unused_mut)]
17117 let mut start = start;
17118 #[cfg(feature = "sml-styling")]
17119 {
17120 let val = &self.r#type;
17121 {
17122 let s = val.to_string();
17123 start.push_attribute(("type", s.as_str()));
17124 }
17125 }
17126 #[cfg(feature = "sml-styling")]
17127 if let Some(ref val) = self.value {
17128 start.push_attribute(("val", val.as_str()));
17129 }
17130 #[cfg(feature = "sml-styling")]
17131 if let Some(ref val) = self.gte {
17132 start.push_attribute(("gte", if *val { "1" } else { "0" }));
17133 }
17134 #[cfg(feature = "extra-attrs")]
17135 for (key, value) in &self.extra_attrs {
17136 start.push_attribute((key.as_str(), value.as_str()));
17137 }
17138 start
17139 }
17140
17141 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17142 #[cfg(feature = "extra-children")]
17143 let mut extra_iter = self.extra_children.iter().peekable();
17144 #[cfg(feature = "extra-children")]
17145 let mut emit_idx: usize = 0;
17146 #[cfg(feature = "extra-children")]
17147 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17148 extra_iter
17149 .next()
17150 .unwrap()
17151 .node
17152 .write_to(writer)
17153 .map_err(SerializeError::from)?;
17154 }
17155 if let Some(ref val) = self.extension_list {
17156 val.write_element("extLst", writer)?;
17157 }
17158 #[cfg(feature = "extra-children")]
17159 {
17160 emit_idx += 1;
17161 }
17162 #[cfg(feature = "extra-children")]
17163 for extra in extra_iter {
17164 extra.node.write_to(writer).map_err(SerializeError::from)?;
17165 }
17166 Ok(())
17167 }
17168
17169 fn is_empty_element(&self) -> bool {
17170 if self.extension_list.is_some() {
17171 return false;
17172 }
17173 #[cfg(feature = "extra-children")]
17174 if !self.extra_children.is_empty() {
17175 return false;
17176 }
17177 true
17178 }
17179}
17180
17181impl ToXml for PageMargins {
17182 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17183 #[allow(unused_mut)]
17184 let mut start = start;
17185 #[cfg(feature = "sml-layout")]
17186 {
17187 let val = &self.left;
17188 {
17189 let s = val.to_string();
17190 start.push_attribute(("left", s.as_str()));
17191 }
17192 }
17193 #[cfg(feature = "sml-layout")]
17194 {
17195 let val = &self.right;
17196 {
17197 let s = val.to_string();
17198 start.push_attribute(("right", s.as_str()));
17199 }
17200 }
17201 #[cfg(feature = "sml-layout")]
17202 {
17203 let val = &self.top;
17204 {
17205 let s = val.to_string();
17206 start.push_attribute(("top", s.as_str()));
17207 }
17208 }
17209 #[cfg(feature = "sml-layout")]
17210 {
17211 let val = &self.bottom;
17212 {
17213 let s = val.to_string();
17214 start.push_attribute(("bottom", s.as_str()));
17215 }
17216 }
17217 #[cfg(feature = "sml-layout")]
17218 {
17219 let val = &self.header;
17220 {
17221 let s = val.to_string();
17222 start.push_attribute(("header", s.as_str()));
17223 }
17224 }
17225 #[cfg(feature = "sml-layout")]
17226 {
17227 let val = &self.footer;
17228 {
17229 let s = val.to_string();
17230 start.push_attribute(("footer", s.as_str()));
17231 }
17232 }
17233 #[cfg(feature = "extra-attrs")]
17234 for (key, value) in &self.extra_attrs {
17235 start.push_attribute((key.as_str(), value.as_str()));
17236 }
17237 start
17238 }
17239
17240 fn is_empty_element(&self) -> bool {
17241 true
17242 }
17243}
17244
17245impl ToXml for PrintOptions {
17246 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17247 #[allow(unused_mut)]
17248 let mut start = start;
17249 if let Some(ref val) = self.horizontal_centered {
17250 start.push_attribute(("horizontalCentered", if *val { "1" } else { "0" }));
17251 }
17252 if let Some(ref val) = self.vertical_centered {
17253 start.push_attribute(("verticalCentered", if *val { "1" } else { "0" }));
17254 }
17255 if let Some(ref val) = self.headings {
17256 start.push_attribute(("headings", if *val { "1" } else { "0" }));
17257 }
17258 if let Some(ref val) = self.grid_lines {
17259 start.push_attribute(("gridLines", if *val { "1" } else { "0" }));
17260 }
17261 if let Some(ref val) = self.grid_lines_set {
17262 start.push_attribute(("gridLinesSet", if *val { "1" } else { "0" }));
17263 }
17264 #[cfg(feature = "extra-attrs")]
17265 for (key, value) in &self.extra_attrs {
17266 start.push_attribute((key.as_str(), value.as_str()));
17267 }
17268 start
17269 }
17270
17271 fn is_empty_element(&self) -> bool {
17272 true
17273 }
17274}
17275
17276impl ToXml for PageSetup {
17277 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17278 #[allow(unused_mut)]
17279 let mut start = start;
17280 #[cfg(feature = "sml-layout")]
17281 if let Some(ref val) = self.paper_size {
17282 {
17283 let s = val.to_string();
17284 start.push_attribute(("paperSize", s.as_str()));
17285 }
17286 }
17287 #[cfg(feature = "sml-layout")]
17288 if let Some(ref val) = self.paper_height {
17289 start.push_attribute(("paperHeight", val.as_str()));
17290 }
17291 #[cfg(feature = "sml-layout")]
17292 if let Some(ref val) = self.paper_width {
17293 start.push_attribute(("paperWidth", val.as_str()));
17294 }
17295 #[cfg(feature = "sml-layout")]
17296 if let Some(ref val) = self.scale {
17297 {
17298 let s = val.to_string();
17299 start.push_attribute(("scale", s.as_str()));
17300 }
17301 }
17302 #[cfg(feature = "sml-layout")]
17303 if let Some(ref val) = self.first_page_number {
17304 {
17305 let s = val.to_string();
17306 start.push_attribute(("firstPageNumber", s.as_str()));
17307 }
17308 }
17309 #[cfg(feature = "sml-layout")]
17310 if let Some(ref val) = self.fit_to_width {
17311 {
17312 let s = val.to_string();
17313 start.push_attribute(("fitToWidth", s.as_str()));
17314 }
17315 }
17316 #[cfg(feature = "sml-layout")]
17317 if let Some(ref val) = self.fit_to_height {
17318 {
17319 let s = val.to_string();
17320 start.push_attribute(("fitToHeight", s.as_str()));
17321 }
17322 }
17323 #[cfg(feature = "sml-layout")]
17324 if let Some(ref val) = self.page_order {
17325 {
17326 let s = val.to_string();
17327 start.push_attribute(("pageOrder", s.as_str()));
17328 }
17329 }
17330 #[cfg(feature = "sml-layout")]
17331 if let Some(ref val) = self.orientation {
17332 {
17333 let s = val.to_string();
17334 start.push_attribute(("orientation", s.as_str()));
17335 }
17336 }
17337 #[cfg(feature = "sml-layout")]
17338 if let Some(ref val) = self.use_printer_defaults {
17339 start.push_attribute(("usePrinterDefaults", if *val { "1" } else { "0" }));
17340 }
17341 #[cfg(feature = "sml-layout")]
17342 if let Some(ref val) = self.black_and_white {
17343 start.push_attribute(("blackAndWhite", if *val { "1" } else { "0" }));
17344 }
17345 #[cfg(feature = "sml-layout")]
17346 if let Some(ref val) = self.draft {
17347 start.push_attribute(("draft", if *val { "1" } else { "0" }));
17348 }
17349 #[cfg(feature = "sml-layout")]
17350 if let Some(ref val) = self.cell_comments {
17351 {
17352 let s = val.to_string();
17353 start.push_attribute(("cellComments", s.as_str()));
17354 }
17355 }
17356 #[cfg(feature = "sml-layout")]
17357 if let Some(ref val) = self.use_first_page_number {
17358 start.push_attribute(("useFirstPageNumber", if *val { "1" } else { "0" }));
17359 }
17360 #[cfg(feature = "sml-layout")]
17361 if let Some(ref val) = self.errors {
17362 {
17363 let s = val.to_string();
17364 start.push_attribute(("errors", s.as_str()));
17365 }
17366 }
17367 #[cfg(feature = "sml-layout")]
17368 if let Some(ref val) = self.horizontal_dpi {
17369 {
17370 let s = val.to_string();
17371 start.push_attribute(("horizontalDpi", s.as_str()));
17372 }
17373 }
17374 #[cfg(feature = "sml-layout")]
17375 if let Some(ref val) = self.vertical_dpi {
17376 {
17377 let s = val.to_string();
17378 start.push_attribute(("verticalDpi", s.as_str()));
17379 }
17380 }
17381 #[cfg(feature = "sml-layout")]
17382 if let Some(ref val) = self.copies {
17383 {
17384 let s = val.to_string();
17385 start.push_attribute(("copies", s.as_str()));
17386 }
17387 }
17388 if let Some(ref val) = self.id {
17389 start.push_attribute(("r:id", val.as_str()));
17390 }
17391 #[cfg(feature = "extra-attrs")]
17392 for (key, value) in &self.extra_attrs {
17393 start.push_attribute((key.as_str(), value.as_str()));
17394 }
17395 start
17396 }
17397
17398 fn is_empty_element(&self) -> bool {
17399 true
17400 }
17401}
17402
17403impl ToXml for HeaderFooter {
17404 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17405 #[allow(unused_mut)]
17406 let mut start = start;
17407 #[cfg(feature = "sml-layout")]
17408 if let Some(ref val) = self.different_odd_even {
17409 start.push_attribute(("differentOddEven", if *val { "1" } else { "0" }));
17410 }
17411 #[cfg(feature = "sml-layout")]
17412 if let Some(ref val) = self.different_first {
17413 start.push_attribute(("differentFirst", if *val { "1" } else { "0" }));
17414 }
17415 #[cfg(feature = "sml-layout")]
17416 if let Some(ref val) = self.scale_with_doc {
17417 start.push_attribute(("scaleWithDoc", if *val { "1" } else { "0" }));
17418 }
17419 #[cfg(feature = "sml-layout")]
17420 if let Some(ref val) = self.align_with_margins {
17421 start.push_attribute(("alignWithMargins", if *val { "1" } else { "0" }));
17422 }
17423 #[cfg(feature = "extra-attrs")]
17424 for (key, value) in &self.extra_attrs {
17425 start.push_attribute((key.as_str(), value.as_str()));
17426 }
17427 start
17428 }
17429
17430 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17431 #[cfg(feature = "extra-children")]
17432 let mut extra_iter = self.extra_children.iter().peekable();
17433 #[cfg(feature = "extra-children")]
17434 let mut emit_idx: usize = 0;
17435 #[cfg(feature = "extra-children")]
17436 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17437 extra_iter
17438 .next()
17439 .unwrap()
17440 .node
17441 .write_to(writer)
17442 .map_err(SerializeError::from)?;
17443 }
17444 #[cfg(feature = "sml-layout")]
17445 if let Some(ref val) = self.odd_header {
17446 {
17447 let start = BytesStart::new("oddHeader");
17448 writer.write_event(Event::Start(start))?;
17449 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
17450 writer.write_event(Event::End(BytesEnd::new("oddHeader")))?;
17451 }
17452 }
17453 #[cfg(feature = "extra-children")]
17454 {
17455 emit_idx += 1;
17456 }
17457 #[cfg(feature = "extra-children")]
17458 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17459 extra_iter
17460 .next()
17461 .unwrap()
17462 .node
17463 .write_to(writer)
17464 .map_err(SerializeError::from)?;
17465 }
17466 #[cfg(feature = "sml-layout")]
17467 if let Some(ref val) = self.odd_footer {
17468 {
17469 let start = BytesStart::new("oddFooter");
17470 writer.write_event(Event::Start(start))?;
17471 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
17472 writer.write_event(Event::End(BytesEnd::new("oddFooter")))?;
17473 }
17474 }
17475 #[cfg(feature = "extra-children")]
17476 {
17477 emit_idx += 1;
17478 }
17479 #[cfg(feature = "extra-children")]
17480 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17481 extra_iter
17482 .next()
17483 .unwrap()
17484 .node
17485 .write_to(writer)
17486 .map_err(SerializeError::from)?;
17487 }
17488 #[cfg(feature = "sml-layout")]
17489 if let Some(ref val) = self.even_header {
17490 {
17491 let start = BytesStart::new("evenHeader");
17492 writer.write_event(Event::Start(start))?;
17493 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
17494 writer.write_event(Event::End(BytesEnd::new("evenHeader")))?;
17495 }
17496 }
17497 #[cfg(feature = "extra-children")]
17498 {
17499 emit_idx += 1;
17500 }
17501 #[cfg(feature = "extra-children")]
17502 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17503 extra_iter
17504 .next()
17505 .unwrap()
17506 .node
17507 .write_to(writer)
17508 .map_err(SerializeError::from)?;
17509 }
17510 #[cfg(feature = "sml-layout")]
17511 if let Some(ref val) = self.even_footer {
17512 {
17513 let start = BytesStart::new("evenFooter");
17514 writer.write_event(Event::Start(start))?;
17515 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
17516 writer.write_event(Event::End(BytesEnd::new("evenFooter")))?;
17517 }
17518 }
17519 #[cfg(feature = "extra-children")]
17520 {
17521 emit_idx += 1;
17522 }
17523 #[cfg(feature = "extra-children")]
17524 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17525 extra_iter
17526 .next()
17527 .unwrap()
17528 .node
17529 .write_to(writer)
17530 .map_err(SerializeError::from)?;
17531 }
17532 #[cfg(feature = "sml-layout")]
17533 if let Some(ref val) = self.first_header {
17534 {
17535 let start = BytesStart::new("firstHeader");
17536 writer.write_event(Event::Start(start))?;
17537 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
17538 writer.write_event(Event::End(BytesEnd::new("firstHeader")))?;
17539 }
17540 }
17541 #[cfg(feature = "extra-children")]
17542 {
17543 emit_idx += 1;
17544 }
17545 #[cfg(feature = "extra-children")]
17546 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17547 extra_iter
17548 .next()
17549 .unwrap()
17550 .node
17551 .write_to(writer)
17552 .map_err(SerializeError::from)?;
17553 }
17554 #[cfg(feature = "sml-layout")]
17555 if let Some(ref val) = self.first_footer {
17556 {
17557 let start = BytesStart::new("firstFooter");
17558 writer.write_event(Event::Start(start))?;
17559 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
17560 writer.write_event(Event::End(BytesEnd::new("firstFooter")))?;
17561 }
17562 }
17563 #[cfg(feature = "extra-children")]
17564 {
17565 emit_idx += 1;
17566 }
17567 #[cfg(feature = "extra-children")]
17568 for extra in extra_iter {
17569 extra.node.write_to(writer).map_err(SerializeError::from)?;
17570 }
17571 Ok(())
17572 }
17573
17574 fn is_empty_element(&self) -> bool {
17575 #[cfg(feature = "sml-layout")]
17576 if self.odd_header.is_some() {
17577 return false;
17578 }
17579 #[cfg(feature = "sml-layout")]
17580 if self.odd_footer.is_some() {
17581 return false;
17582 }
17583 #[cfg(feature = "sml-layout")]
17584 if self.even_header.is_some() {
17585 return false;
17586 }
17587 #[cfg(feature = "sml-layout")]
17588 if self.even_footer.is_some() {
17589 return false;
17590 }
17591 #[cfg(feature = "sml-layout")]
17592 if self.first_header.is_some() {
17593 return false;
17594 }
17595 #[cfg(feature = "sml-layout")]
17596 if self.first_footer.is_some() {
17597 return false;
17598 }
17599 #[cfg(feature = "extra-children")]
17600 if !self.extra_children.is_empty() {
17601 return false;
17602 }
17603 true
17604 }
17605}
17606
17607impl ToXml for Scenarios {
17608 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17609 #[allow(unused_mut)]
17610 let mut start = start;
17611 if let Some(ref val) = self.current {
17612 {
17613 let s = val.to_string();
17614 start.push_attribute(("current", s.as_str()));
17615 }
17616 }
17617 if let Some(ref val) = self.show {
17618 {
17619 let s = val.to_string();
17620 start.push_attribute(("show", s.as_str()));
17621 }
17622 }
17623 if let Some(ref val) = self.square_reference {
17624 start.push_attribute(("sqref", val.as_str()));
17625 }
17626 #[cfg(feature = "extra-attrs")]
17627 for (key, value) in &self.extra_attrs {
17628 start.push_attribute((key.as_str(), value.as_str()));
17629 }
17630 start
17631 }
17632
17633 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17634 #[cfg(feature = "extra-children")]
17635 let mut extra_iter = self.extra_children.iter().peekable();
17636 #[cfg(feature = "extra-children")]
17637 let mut emit_idx: usize = 0;
17638 for item in &self.scenario {
17639 #[cfg(feature = "extra-children")]
17640 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17641 extra_iter
17642 .next()
17643 .unwrap()
17644 .node
17645 .write_to(writer)
17646 .map_err(SerializeError::from)?;
17647 }
17648 item.write_element("scenario", writer)?;
17649 #[cfg(feature = "extra-children")]
17650 {
17651 emit_idx += 1;
17652 }
17653 }
17654 #[cfg(feature = "extra-children")]
17655 for extra in extra_iter {
17656 extra.node.write_to(writer).map_err(SerializeError::from)?;
17657 }
17658 Ok(())
17659 }
17660
17661 fn is_empty_element(&self) -> bool {
17662 if !self.scenario.is_empty() {
17663 return false;
17664 }
17665 #[cfg(feature = "extra-children")]
17666 if !self.extra_children.is_empty() {
17667 return false;
17668 }
17669 true
17670 }
17671}
17672
17673impl ToXml for SheetProtection {
17674 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17675 #[allow(unused_mut)]
17676 let mut start = start;
17677 if let Some(ref val) = self.password {
17678 {
17679 let hex = encode_hex(val);
17680 start.push_attribute(("password", hex.as_str()));
17681 }
17682 }
17683 if let Some(ref val) = self.algorithm_name {
17684 start.push_attribute(("algorithmName", val.as_str()));
17685 }
17686 if let Some(ref val) = self.hash_value {
17687 {
17688 let b64 = encode_base64(val);
17689 start.push_attribute(("hashValue", b64.as_str()));
17690 }
17691 }
17692 if let Some(ref val) = self.salt_value {
17693 {
17694 let b64 = encode_base64(val);
17695 start.push_attribute(("saltValue", b64.as_str()));
17696 }
17697 }
17698 if let Some(ref val) = self.spin_count {
17699 {
17700 let s = val.to_string();
17701 start.push_attribute(("spinCount", s.as_str()));
17702 }
17703 }
17704 if let Some(ref val) = self.sheet {
17705 start.push_attribute(("sheet", if *val { "1" } else { "0" }));
17706 }
17707 if let Some(ref val) = self.objects {
17708 start.push_attribute(("objects", if *val { "1" } else { "0" }));
17709 }
17710 if let Some(ref val) = self.scenarios {
17711 start.push_attribute(("scenarios", if *val { "1" } else { "0" }));
17712 }
17713 if let Some(ref val) = self.format_cells {
17714 start.push_attribute(("formatCells", if *val { "1" } else { "0" }));
17715 }
17716 if let Some(ref val) = self.format_columns {
17717 start.push_attribute(("formatColumns", if *val { "1" } else { "0" }));
17718 }
17719 if let Some(ref val) = self.format_rows {
17720 start.push_attribute(("formatRows", if *val { "1" } else { "0" }));
17721 }
17722 if let Some(ref val) = self.insert_columns {
17723 start.push_attribute(("insertColumns", if *val { "1" } else { "0" }));
17724 }
17725 if let Some(ref val) = self.insert_rows {
17726 start.push_attribute(("insertRows", if *val { "1" } else { "0" }));
17727 }
17728 if let Some(ref val) = self.insert_hyperlinks {
17729 start.push_attribute(("insertHyperlinks", if *val { "1" } else { "0" }));
17730 }
17731 if let Some(ref val) = self.delete_columns {
17732 start.push_attribute(("deleteColumns", if *val { "1" } else { "0" }));
17733 }
17734 if let Some(ref val) = self.delete_rows {
17735 start.push_attribute(("deleteRows", if *val { "1" } else { "0" }));
17736 }
17737 if let Some(ref val) = self.select_locked_cells {
17738 start.push_attribute(("selectLockedCells", if *val { "1" } else { "0" }));
17739 }
17740 if let Some(ref val) = self.sort {
17741 start.push_attribute(("sort", if *val { "1" } else { "0" }));
17742 }
17743 if let Some(ref val) = self.auto_filter {
17744 start.push_attribute(("autoFilter", if *val { "1" } else { "0" }));
17745 }
17746 if let Some(ref val) = self.pivot_tables {
17747 start.push_attribute(("pivotTables", if *val { "1" } else { "0" }));
17748 }
17749 if let Some(ref val) = self.select_unlocked_cells {
17750 start.push_attribute(("selectUnlockedCells", if *val { "1" } else { "0" }));
17751 }
17752 #[cfg(feature = "extra-attrs")]
17753 for (key, value) in &self.extra_attrs {
17754 start.push_attribute((key.as_str(), value.as_str()));
17755 }
17756 start
17757 }
17758
17759 fn is_empty_element(&self) -> bool {
17760 true
17761 }
17762}
17763
17764impl ToXml for ProtectedRanges {
17765 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17766 #[cfg(feature = "extra-children")]
17767 let mut extra_iter = self.extra_children.iter().peekable();
17768 #[cfg(feature = "extra-children")]
17769 let mut emit_idx: usize = 0;
17770 for item in &self.protected_range {
17771 #[cfg(feature = "extra-children")]
17772 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17773 extra_iter
17774 .next()
17775 .unwrap()
17776 .node
17777 .write_to(writer)
17778 .map_err(SerializeError::from)?;
17779 }
17780 item.write_element("protectedRange", writer)?;
17781 #[cfg(feature = "extra-children")]
17782 {
17783 emit_idx += 1;
17784 }
17785 }
17786 #[cfg(feature = "extra-children")]
17787 for extra in extra_iter {
17788 extra.node.write_to(writer).map_err(SerializeError::from)?;
17789 }
17790 Ok(())
17791 }
17792
17793 fn is_empty_element(&self) -> bool {
17794 if !self.protected_range.is_empty() {
17795 return false;
17796 }
17797 #[cfg(feature = "extra-children")]
17798 if !self.extra_children.is_empty() {
17799 return false;
17800 }
17801 true
17802 }
17803}
17804
17805impl ToXml for ProtectedRange {
17806 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17807 #[allow(unused_mut)]
17808 let mut start = start;
17809 if let Some(ref val) = self.password {
17810 {
17811 let hex = encode_hex(val);
17812 start.push_attribute(("password", hex.as_str()));
17813 }
17814 }
17815 {
17816 let val = &self.square_reference;
17817 start.push_attribute(("sqref", val.as_str()));
17818 }
17819 {
17820 let val = &self.name;
17821 start.push_attribute(("name", val.as_str()));
17822 }
17823 if let Some(ref val) = self.security_descriptor {
17824 start.push_attribute(("securityDescriptor", val.as_str()));
17825 }
17826 if let Some(ref val) = self.algorithm_name {
17827 start.push_attribute(("algorithmName", val.as_str()));
17828 }
17829 if let Some(ref val) = self.hash_value {
17830 {
17831 let b64 = encode_base64(val);
17832 start.push_attribute(("hashValue", b64.as_str()));
17833 }
17834 }
17835 if let Some(ref val) = self.salt_value {
17836 {
17837 let b64 = encode_base64(val);
17838 start.push_attribute(("saltValue", b64.as_str()));
17839 }
17840 }
17841 if let Some(ref val) = self.spin_count {
17842 {
17843 let s = val.to_string();
17844 start.push_attribute(("spinCount", s.as_str()));
17845 }
17846 }
17847 #[cfg(feature = "extra-attrs")]
17848 for (key, value) in &self.extra_attrs {
17849 start.push_attribute((key.as_str(), value.as_str()));
17850 }
17851 start
17852 }
17853
17854 fn is_empty_element(&self) -> bool {
17855 true
17856 }
17857}
17858
17859impl ToXml for Scenario {
17860 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17861 #[allow(unused_mut)]
17862 let mut start = start;
17863 {
17864 let val = &self.name;
17865 start.push_attribute(("name", val.as_str()));
17866 }
17867 if let Some(ref val) = self.locked {
17868 start.push_attribute(("locked", if *val { "1" } else { "0" }));
17869 }
17870 if let Some(ref val) = self.hidden {
17871 start.push_attribute(("hidden", if *val { "1" } else { "0" }));
17872 }
17873 if let Some(ref val) = self.count {
17874 {
17875 let s = val.to_string();
17876 start.push_attribute(("count", s.as_str()));
17877 }
17878 }
17879 if let Some(ref val) = self.user {
17880 start.push_attribute(("user", val.as_str()));
17881 }
17882 if let Some(ref val) = self.comment {
17883 start.push_attribute(("comment", val.as_str()));
17884 }
17885 #[cfg(feature = "extra-attrs")]
17886 for (key, value) in &self.extra_attrs {
17887 start.push_attribute((key.as_str(), value.as_str()));
17888 }
17889 start
17890 }
17891
17892 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17893 #[cfg(feature = "extra-children")]
17894 let mut extra_iter = self.extra_children.iter().peekable();
17895 #[cfg(feature = "extra-children")]
17896 let mut emit_idx: usize = 0;
17897 for item in &self.input_cells {
17898 #[cfg(feature = "extra-children")]
17899 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17900 extra_iter
17901 .next()
17902 .unwrap()
17903 .node
17904 .write_to(writer)
17905 .map_err(SerializeError::from)?;
17906 }
17907 item.write_element("inputCells", writer)?;
17908 #[cfg(feature = "extra-children")]
17909 {
17910 emit_idx += 1;
17911 }
17912 }
17913 #[cfg(feature = "extra-children")]
17914 for extra in extra_iter {
17915 extra.node.write_to(writer).map_err(SerializeError::from)?;
17916 }
17917 Ok(())
17918 }
17919
17920 fn is_empty_element(&self) -> bool {
17921 if !self.input_cells.is_empty() {
17922 return false;
17923 }
17924 #[cfg(feature = "extra-children")]
17925 if !self.extra_children.is_empty() {
17926 return false;
17927 }
17928 true
17929 }
17930}
17931
17932impl ToXml for InputCells {
17933 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
17934 #[allow(unused_mut)]
17935 let mut start = start;
17936 {
17937 let val = &self.reference;
17938 start.push_attribute(("r", val.as_str()));
17939 }
17940 if let Some(ref val) = self.deleted {
17941 start.push_attribute(("deleted", if *val { "1" } else { "0" }));
17942 }
17943 if let Some(ref val) = self.undone {
17944 start.push_attribute(("undone", if *val { "1" } else { "0" }));
17945 }
17946 {
17947 let val = &self.value;
17948 start.push_attribute(("val", val.as_str()));
17949 }
17950 if let Some(ref val) = self.number_format_id {
17951 {
17952 let s = val.to_string();
17953 start.push_attribute(("numFmtId", s.as_str()));
17954 }
17955 }
17956 #[cfg(feature = "extra-attrs")]
17957 for (key, value) in &self.extra_attrs {
17958 start.push_attribute((key.as_str(), value.as_str()));
17959 }
17960 start
17961 }
17962
17963 fn is_empty_element(&self) -> bool {
17964 true
17965 }
17966}
17967
17968impl ToXml for CellWatches {
17969 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
17970 #[cfg(feature = "extra-children")]
17971 let mut extra_iter = self.extra_children.iter().peekable();
17972 #[cfg(feature = "extra-children")]
17973 let mut emit_idx: usize = 0;
17974 for item in &self.cell_watch {
17975 #[cfg(feature = "extra-children")]
17976 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
17977 extra_iter
17978 .next()
17979 .unwrap()
17980 .node
17981 .write_to(writer)
17982 .map_err(SerializeError::from)?;
17983 }
17984 item.write_element("cellWatch", writer)?;
17985 #[cfg(feature = "extra-children")]
17986 {
17987 emit_idx += 1;
17988 }
17989 }
17990 #[cfg(feature = "extra-children")]
17991 for extra in extra_iter {
17992 extra.node.write_to(writer).map_err(SerializeError::from)?;
17993 }
17994 Ok(())
17995 }
17996
17997 fn is_empty_element(&self) -> bool {
17998 if !self.cell_watch.is_empty() {
17999 return false;
18000 }
18001 #[cfg(feature = "extra-children")]
18002 if !self.extra_children.is_empty() {
18003 return false;
18004 }
18005 true
18006 }
18007}
18008
18009impl ToXml for CellWatch {
18010 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
18011 #[allow(unused_mut)]
18012 let mut start = start;
18013 {
18014 let val = &self.reference;
18015 start.push_attribute(("r", val.as_str()));
18016 }
18017 #[cfg(feature = "extra-attrs")]
18018 for (key, value) in &self.extra_attrs {
18019 start.push_attribute((key.as_str(), value.as_str()));
18020 }
18021 start
18022 }
18023
18024 fn is_empty_element(&self) -> bool {
18025 true
18026 }
18027}
18028
18029impl ToXml for Chartsheet {
18030 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
18031 #[cfg(feature = "extra-children")]
18032 let mut extra_iter = self.extra_children.iter().peekable();
18033 #[cfg(feature = "extra-children")]
18034 let mut emit_idx: usize = 0;
18035 #[cfg(feature = "extra-children")]
18036 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18037 extra_iter
18038 .next()
18039 .unwrap()
18040 .node
18041 .write_to(writer)
18042 .map_err(SerializeError::from)?;
18043 }
18044 if let Some(ref val) = self.sheet_properties {
18045 val.write_element("sheetPr", writer)?;
18046 }
18047 #[cfg(feature = "extra-children")]
18048 {
18049 emit_idx += 1;
18050 }
18051 #[cfg(feature = "extra-children")]
18052 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18053 extra_iter
18054 .next()
18055 .unwrap()
18056 .node
18057 .write_to(writer)
18058 .map_err(SerializeError::from)?;
18059 }
18060 {
18061 let val = &self.sheet_views;
18062 val.write_element("sheetViews", writer)?;
18063 }
18064 #[cfg(feature = "extra-children")]
18065 {
18066 emit_idx += 1;
18067 }
18068 #[cfg(feature = "extra-children")]
18069 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18070 extra_iter
18071 .next()
18072 .unwrap()
18073 .node
18074 .write_to(writer)
18075 .map_err(SerializeError::from)?;
18076 }
18077 if let Some(ref val) = self.sheet_protection {
18078 val.write_element("sheetProtection", writer)?;
18079 }
18080 #[cfg(feature = "extra-children")]
18081 {
18082 emit_idx += 1;
18083 }
18084 #[cfg(feature = "extra-children")]
18085 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18086 extra_iter
18087 .next()
18088 .unwrap()
18089 .node
18090 .write_to(writer)
18091 .map_err(SerializeError::from)?;
18092 }
18093 if let Some(ref val) = self.custom_sheet_views {
18094 val.write_element("customSheetViews", writer)?;
18095 }
18096 #[cfg(feature = "extra-children")]
18097 {
18098 emit_idx += 1;
18099 }
18100 #[cfg(feature = "extra-children")]
18101 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18102 extra_iter
18103 .next()
18104 .unwrap()
18105 .node
18106 .write_to(writer)
18107 .map_err(SerializeError::from)?;
18108 }
18109 if let Some(ref val) = self.page_margins {
18110 val.write_element("pageMargins", writer)?;
18111 }
18112 #[cfg(feature = "extra-children")]
18113 {
18114 emit_idx += 1;
18115 }
18116 #[cfg(feature = "extra-children")]
18117 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18118 extra_iter
18119 .next()
18120 .unwrap()
18121 .node
18122 .write_to(writer)
18123 .map_err(SerializeError::from)?;
18124 }
18125 if let Some(ref val) = self.page_setup {
18126 val.write_element("pageSetup", writer)?;
18127 }
18128 #[cfg(feature = "extra-children")]
18129 {
18130 emit_idx += 1;
18131 }
18132 #[cfg(feature = "extra-children")]
18133 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18134 extra_iter
18135 .next()
18136 .unwrap()
18137 .node
18138 .write_to(writer)
18139 .map_err(SerializeError::from)?;
18140 }
18141 if let Some(ref val) = self.header_footer {
18142 val.write_element("headerFooter", writer)?;
18143 }
18144 #[cfg(feature = "extra-children")]
18145 {
18146 emit_idx += 1;
18147 }
18148 #[cfg(feature = "extra-children")]
18149 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18150 extra_iter
18151 .next()
18152 .unwrap()
18153 .node
18154 .write_to(writer)
18155 .map_err(SerializeError::from)?;
18156 }
18157 {
18158 let val = &self.drawing;
18159 val.write_element("drawing", writer)?;
18160 }
18161 #[cfg(feature = "extra-children")]
18162 {
18163 emit_idx += 1;
18164 }
18165 #[cfg(feature = "extra-children")]
18166 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18167 extra_iter
18168 .next()
18169 .unwrap()
18170 .node
18171 .write_to(writer)
18172 .map_err(SerializeError::from)?;
18173 }
18174 if let Some(ref val) = self.legacy_drawing {
18175 val.write_element("legacyDrawing", writer)?;
18176 }
18177 #[cfg(feature = "extra-children")]
18178 {
18179 emit_idx += 1;
18180 }
18181 #[cfg(feature = "extra-children")]
18182 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18183 extra_iter
18184 .next()
18185 .unwrap()
18186 .node
18187 .write_to(writer)
18188 .map_err(SerializeError::from)?;
18189 }
18190 if let Some(ref val) = self.legacy_drawing_h_f {
18191 val.write_element("legacyDrawingHF", writer)?;
18192 }
18193 #[cfg(feature = "extra-children")]
18194 {
18195 emit_idx += 1;
18196 }
18197 #[cfg(feature = "extra-children")]
18198 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18199 extra_iter
18200 .next()
18201 .unwrap()
18202 .node
18203 .write_to(writer)
18204 .map_err(SerializeError::from)?;
18205 }
18206 if let Some(ref val) = self.drawing_h_f {
18207 val.write_element("drawingHF", writer)?;
18208 }
18209 #[cfg(feature = "extra-children")]
18210 {
18211 emit_idx += 1;
18212 }
18213 #[cfg(feature = "extra-children")]
18214 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18215 extra_iter
18216 .next()
18217 .unwrap()
18218 .node
18219 .write_to(writer)
18220 .map_err(SerializeError::from)?;
18221 }
18222 if let Some(ref val) = self.picture {
18223 val.write_element("picture", writer)?;
18224 }
18225 #[cfg(feature = "extra-children")]
18226 {
18227 emit_idx += 1;
18228 }
18229 #[cfg(feature = "extra-children")]
18230 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18231 extra_iter
18232 .next()
18233 .unwrap()
18234 .node
18235 .write_to(writer)
18236 .map_err(SerializeError::from)?;
18237 }
18238 if let Some(ref val) = self.web_publish_items {
18239 val.write_element("webPublishItems", writer)?;
18240 }
18241 #[cfg(feature = "extra-children")]
18242 {
18243 emit_idx += 1;
18244 }
18245 #[cfg(feature = "extra-children")]
18246 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18247 extra_iter
18248 .next()
18249 .unwrap()
18250 .node
18251 .write_to(writer)
18252 .map_err(SerializeError::from)?;
18253 }
18254 if let Some(ref val) = self.extension_list {
18255 val.write_element("extLst", writer)?;
18256 }
18257 #[cfg(feature = "extra-children")]
18258 {
18259 emit_idx += 1;
18260 }
18261 #[cfg(feature = "extra-children")]
18262 for extra in extra_iter {
18263 extra.node.write_to(writer).map_err(SerializeError::from)?;
18264 }
18265 Ok(())
18266 }
18267
18268 fn is_empty_element(&self) -> bool {
18269 if self.sheet_properties.is_some() {
18270 return false;
18271 }
18272 false
18273 }
18274}
18275
18276impl ToXml for ChartsheetProperties {
18277 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
18278 #[allow(unused_mut)]
18279 let mut start = start;
18280 if let Some(ref val) = self.published {
18281 start.push_attribute(("published", if *val { "1" } else { "0" }));
18282 }
18283 if let Some(ref val) = self.code_name {
18284 start.push_attribute(("codeName", val.as_str()));
18285 }
18286 #[cfg(feature = "extra-attrs")]
18287 for (key, value) in &self.extra_attrs {
18288 start.push_attribute((key.as_str(), value.as_str()));
18289 }
18290 start
18291 }
18292
18293 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
18294 #[cfg(feature = "extra-children")]
18295 let mut extra_iter = self.extra_children.iter().peekable();
18296 #[cfg(feature = "extra-children")]
18297 let mut emit_idx: usize = 0;
18298 #[cfg(feature = "extra-children")]
18299 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18300 extra_iter
18301 .next()
18302 .unwrap()
18303 .node
18304 .write_to(writer)
18305 .map_err(SerializeError::from)?;
18306 }
18307 if let Some(ref val) = self.tab_color {
18308 val.write_element("tabColor", writer)?;
18309 }
18310 #[cfg(feature = "extra-children")]
18311 {
18312 emit_idx += 1;
18313 }
18314 #[cfg(feature = "extra-children")]
18315 for extra in extra_iter {
18316 extra.node.write_to(writer).map_err(SerializeError::from)?;
18317 }
18318 Ok(())
18319 }
18320
18321 fn is_empty_element(&self) -> bool {
18322 if self.tab_color.is_some() {
18323 return false;
18324 }
18325 #[cfg(feature = "extra-children")]
18326 if !self.extra_children.is_empty() {
18327 return false;
18328 }
18329 true
18330 }
18331}
18332
18333impl ToXml for ChartsheetViews {
18334 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
18335 #[cfg(feature = "extra-children")]
18336 let mut extra_iter = self.extra_children.iter().peekable();
18337 #[cfg(feature = "extra-children")]
18338 let mut emit_idx: usize = 0;
18339 for item in &self.sheet_view {
18340 #[cfg(feature = "extra-children")]
18341 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18342 extra_iter
18343 .next()
18344 .unwrap()
18345 .node
18346 .write_to(writer)
18347 .map_err(SerializeError::from)?;
18348 }
18349 item.write_element("sheetView", writer)?;
18350 #[cfg(feature = "extra-children")]
18351 {
18352 emit_idx += 1;
18353 }
18354 }
18355 #[cfg(feature = "extra-children")]
18356 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18357 extra_iter
18358 .next()
18359 .unwrap()
18360 .node
18361 .write_to(writer)
18362 .map_err(SerializeError::from)?;
18363 }
18364 if let Some(ref val) = self.extension_list {
18365 val.write_element("extLst", writer)?;
18366 }
18367 #[cfg(feature = "extra-children")]
18368 {
18369 emit_idx += 1;
18370 }
18371 #[cfg(feature = "extra-children")]
18372 for extra in extra_iter {
18373 extra.node.write_to(writer).map_err(SerializeError::from)?;
18374 }
18375 Ok(())
18376 }
18377
18378 fn is_empty_element(&self) -> bool {
18379 if !self.sheet_view.is_empty() {
18380 return false;
18381 }
18382 if self.extension_list.is_some() {
18383 return false;
18384 }
18385 #[cfg(feature = "extra-children")]
18386 if !self.extra_children.is_empty() {
18387 return false;
18388 }
18389 true
18390 }
18391}
18392
18393impl ToXml for ChartsheetView {
18394 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
18395 #[allow(unused_mut)]
18396 let mut start = start;
18397 if let Some(ref val) = self.tab_selected {
18398 start.push_attribute(("tabSelected", if *val { "1" } else { "0" }));
18399 }
18400 if let Some(ref val) = self.zoom_scale {
18401 {
18402 let s = val.to_string();
18403 start.push_attribute(("zoomScale", s.as_str()));
18404 }
18405 }
18406 {
18407 let val = &self.workbook_view_id;
18408 {
18409 let s = val.to_string();
18410 start.push_attribute(("workbookViewId", s.as_str()));
18411 }
18412 }
18413 if let Some(ref val) = self.zoom_to_fit {
18414 start.push_attribute(("zoomToFit", if *val { "1" } else { "0" }));
18415 }
18416 #[cfg(feature = "extra-attrs")]
18417 for (key, value) in &self.extra_attrs {
18418 start.push_attribute((key.as_str(), value.as_str()));
18419 }
18420 start
18421 }
18422
18423 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
18424 #[cfg(feature = "extra-children")]
18425 let mut extra_iter = self.extra_children.iter().peekable();
18426 #[cfg(feature = "extra-children")]
18427 let mut emit_idx: usize = 0;
18428 #[cfg(feature = "extra-children")]
18429 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18430 extra_iter
18431 .next()
18432 .unwrap()
18433 .node
18434 .write_to(writer)
18435 .map_err(SerializeError::from)?;
18436 }
18437 if let Some(ref val) = self.extension_list {
18438 val.write_element("extLst", writer)?;
18439 }
18440 #[cfg(feature = "extra-children")]
18441 {
18442 emit_idx += 1;
18443 }
18444 #[cfg(feature = "extra-children")]
18445 for extra in extra_iter {
18446 extra.node.write_to(writer).map_err(SerializeError::from)?;
18447 }
18448 Ok(())
18449 }
18450
18451 fn is_empty_element(&self) -> bool {
18452 if self.extension_list.is_some() {
18453 return false;
18454 }
18455 #[cfg(feature = "extra-children")]
18456 if !self.extra_children.is_empty() {
18457 return false;
18458 }
18459 true
18460 }
18461}
18462
18463impl ToXml for ChartsheetProtection {
18464 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
18465 #[allow(unused_mut)]
18466 let mut start = start;
18467 if let Some(ref val) = self.password {
18468 {
18469 let hex = encode_hex(val);
18470 start.push_attribute(("password", hex.as_str()));
18471 }
18472 }
18473 if let Some(ref val) = self.algorithm_name {
18474 start.push_attribute(("algorithmName", val.as_str()));
18475 }
18476 if let Some(ref val) = self.hash_value {
18477 {
18478 let b64 = encode_base64(val);
18479 start.push_attribute(("hashValue", b64.as_str()));
18480 }
18481 }
18482 if let Some(ref val) = self.salt_value {
18483 {
18484 let b64 = encode_base64(val);
18485 start.push_attribute(("saltValue", b64.as_str()));
18486 }
18487 }
18488 if let Some(ref val) = self.spin_count {
18489 {
18490 let s = val.to_string();
18491 start.push_attribute(("spinCount", s.as_str()));
18492 }
18493 }
18494 if let Some(ref val) = self.content {
18495 start.push_attribute(("content", if *val { "1" } else { "0" }));
18496 }
18497 if let Some(ref val) = self.objects {
18498 start.push_attribute(("objects", if *val { "1" } else { "0" }));
18499 }
18500 #[cfg(feature = "extra-attrs")]
18501 for (key, value) in &self.extra_attrs {
18502 start.push_attribute((key.as_str(), value.as_str()));
18503 }
18504 start
18505 }
18506
18507 fn is_empty_element(&self) -> bool {
18508 true
18509 }
18510}
18511
18512impl ToXml for ChartsheetPageSetup {
18513 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
18514 #[allow(unused_mut)]
18515 let mut start = start;
18516 if let Some(ref val) = self.paper_size {
18517 {
18518 let s = val.to_string();
18519 start.push_attribute(("paperSize", s.as_str()));
18520 }
18521 }
18522 if let Some(ref val) = self.paper_height {
18523 start.push_attribute(("paperHeight", val.as_str()));
18524 }
18525 if let Some(ref val) = self.paper_width {
18526 start.push_attribute(("paperWidth", val.as_str()));
18527 }
18528 if let Some(ref val) = self.first_page_number {
18529 {
18530 let s = val.to_string();
18531 start.push_attribute(("firstPageNumber", s.as_str()));
18532 }
18533 }
18534 if let Some(ref val) = self.orientation {
18535 {
18536 let s = val.to_string();
18537 start.push_attribute(("orientation", s.as_str()));
18538 }
18539 }
18540 if let Some(ref val) = self.use_printer_defaults {
18541 start.push_attribute(("usePrinterDefaults", if *val { "1" } else { "0" }));
18542 }
18543 if let Some(ref val) = self.black_and_white {
18544 start.push_attribute(("blackAndWhite", if *val { "1" } else { "0" }));
18545 }
18546 if let Some(ref val) = self.draft {
18547 start.push_attribute(("draft", if *val { "1" } else { "0" }));
18548 }
18549 if let Some(ref val) = self.use_first_page_number {
18550 start.push_attribute(("useFirstPageNumber", if *val { "1" } else { "0" }));
18551 }
18552 if let Some(ref val) = self.horizontal_dpi {
18553 {
18554 let s = val.to_string();
18555 start.push_attribute(("horizontalDpi", s.as_str()));
18556 }
18557 }
18558 if let Some(ref val) = self.vertical_dpi {
18559 {
18560 let s = val.to_string();
18561 start.push_attribute(("verticalDpi", s.as_str()));
18562 }
18563 }
18564 if let Some(ref val) = self.copies {
18565 {
18566 let s = val.to_string();
18567 start.push_attribute(("copies", s.as_str()));
18568 }
18569 }
18570 if let Some(ref val) = self.id {
18571 start.push_attribute(("r:id", val.as_str()));
18572 }
18573 #[cfg(feature = "extra-attrs")]
18574 for (key, value) in &self.extra_attrs {
18575 start.push_attribute((key.as_str(), value.as_str()));
18576 }
18577 start
18578 }
18579
18580 fn is_empty_element(&self) -> bool {
18581 true
18582 }
18583}
18584
18585impl ToXml for CustomChartsheetViews {
18586 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
18587 #[cfg(feature = "extra-children")]
18588 let mut extra_iter = self.extra_children.iter().peekable();
18589 #[cfg(feature = "extra-children")]
18590 let mut emit_idx: usize = 0;
18591 for item in &self.custom_sheet_view {
18592 #[cfg(feature = "extra-children")]
18593 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18594 extra_iter
18595 .next()
18596 .unwrap()
18597 .node
18598 .write_to(writer)
18599 .map_err(SerializeError::from)?;
18600 }
18601 item.write_element("customSheetView", writer)?;
18602 #[cfg(feature = "extra-children")]
18603 {
18604 emit_idx += 1;
18605 }
18606 }
18607 #[cfg(feature = "extra-children")]
18608 for extra in extra_iter {
18609 extra.node.write_to(writer).map_err(SerializeError::from)?;
18610 }
18611 Ok(())
18612 }
18613
18614 fn is_empty_element(&self) -> bool {
18615 if !self.custom_sheet_view.is_empty() {
18616 return false;
18617 }
18618 #[cfg(feature = "extra-children")]
18619 if !self.extra_children.is_empty() {
18620 return false;
18621 }
18622 true
18623 }
18624}
18625
18626impl ToXml for CustomChartsheetView {
18627 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
18628 #[allow(unused_mut)]
18629 let mut start = start;
18630 {
18631 let val = &self.guid;
18632 start.push_attribute(("guid", val.as_str()));
18633 }
18634 if let Some(ref val) = self.scale {
18635 {
18636 let s = val.to_string();
18637 start.push_attribute(("scale", s.as_str()));
18638 }
18639 }
18640 if let Some(ref val) = self.state {
18641 {
18642 let s = val.to_string();
18643 start.push_attribute(("state", s.as_str()));
18644 }
18645 }
18646 if let Some(ref val) = self.zoom_to_fit {
18647 start.push_attribute(("zoomToFit", if *val { "1" } else { "0" }));
18648 }
18649 #[cfg(feature = "extra-attrs")]
18650 for (key, value) in &self.extra_attrs {
18651 start.push_attribute((key.as_str(), value.as_str()));
18652 }
18653 start
18654 }
18655
18656 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
18657 #[cfg(feature = "extra-children")]
18658 let mut extra_iter = self.extra_children.iter().peekable();
18659 #[cfg(feature = "extra-children")]
18660 let mut emit_idx: usize = 0;
18661 #[cfg(feature = "extra-children")]
18662 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18663 extra_iter
18664 .next()
18665 .unwrap()
18666 .node
18667 .write_to(writer)
18668 .map_err(SerializeError::from)?;
18669 }
18670 if let Some(ref val) = self.page_margins {
18671 val.write_element("pageMargins", writer)?;
18672 }
18673 #[cfg(feature = "extra-children")]
18674 {
18675 emit_idx += 1;
18676 }
18677 #[cfg(feature = "extra-children")]
18678 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18679 extra_iter
18680 .next()
18681 .unwrap()
18682 .node
18683 .write_to(writer)
18684 .map_err(SerializeError::from)?;
18685 }
18686 if let Some(ref val) = self.page_setup {
18687 val.write_element("pageSetup", writer)?;
18688 }
18689 #[cfg(feature = "extra-children")]
18690 {
18691 emit_idx += 1;
18692 }
18693 #[cfg(feature = "extra-children")]
18694 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18695 extra_iter
18696 .next()
18697 .unwrap()
18698 .node
18699 .write_to(writer)
18700 .map_err(SerializeError::from)?;
18701 }
18702 if let Some(ref val) = self.header_footer {
18703 val.write_element("headerFooter", writer)?;
18704 }
18705 #[cfg(feature = "extra-children")]
18706 {
18707 emit_idx += 1;
18708 }
18709 #[cfg(feature = "extra-children")]
18710 for extra in extra_iter {
18711 extra.node.write_to(writer).map_err(SerializeError::from)?;
18712 }
18713 Ok(())
18714 }
18715
18716 fn is_empty_element(&self) -> bool {
18717 if self.page_margins.is_some() {
18718 return false;
18719 }
18720 if self.page_setup.is_some() {
18721 return false;
18722 }
18723 if self.header_footer.is_some() {
18724 return false;
18725 }
18726 #[cfg(feature = "extra-children")]
18727 if !self.extra_children.is_empty() {
18728 return false;
18729 }
18730 true
18731 }
18732}
18733
18734impl ToXml for CTCustomProperties {
18735 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
18736 #[cfg(feature = "extra-children")]
18737 let mut extra_iter = self.extra_children.iter().peekable();
18738 #[cfg(feature = "extra-children")]
18739 let mut emit_idx: usize = 0;
18740 for item in &self.custom_pr {
18741 #[cfg(feature = "extra-children")]
18742 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18743 extra_iter
18744 .next()
18745 .unwrap()
18746 .node
18747 .write_to(writer)
18748 .map_err(SerializeError::from)?;
18749 }
18750 item.write_element("customPr", writer)?;
18751 #[cfg(feature = "extra-children")]
18752 {
18753 emit_idx += 1;
18754 }
18755 }
18756 #[cfg(feature = "extra-children")]
18757 for extra in extra_iter {
18758 extra.node.write_to(writer).map_err(SerializeError::from)?;
18759 }
18760 Ok(())
18761 }
18762
18763 fn is_empty_element(&self) -> bool {
18764 if !self.custom_pr.is_empty() {
18765 return false;
18766 }
18767 #[cfg(feature = "extra-children")]
18768 if !self.extra_children.is_empty() {
18769 return false;
18770 }
18771 true
18772 }
18773}
18774
18775impl ToXml for CTCustomProperty {
18776 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
18777 #[allow(unused_mut)]
18778 let mut start = start;
18779 {
18780 let val = &self.name;
18781 start.push_attribute(("name", val.as_str()));
18782 }
18783 {
18784 let val = &self.id;
18785 start.push_attribute(("r:id", val.as_str()));
18786 }
18787 #[cfg(feature = "extra-attrs")]
18788 for (key, value) in &self.extra_attrs {
18789 start.push_attribute((key.as_str(), value.as_str()));
18790 }
18791 start
18792 }
18793
18794 fn is_empty_element(&self) -> bool {
18795 true
18796 }
18797}
18798
18799impl ToXml for OleObjects {
18800 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
18801 #[cfg(feature = "extra-children")]
18802 let mut extra_iter = self.extra_children.iter().peekable();
18803 #[cfg(feature = "extra-children")]
18804 let mut emit_idx: usize = 0;
18805 for item in &self.ole_object {
18806 #[cfg(feature = "extra-children")]
18807 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18808 extra_iter
18809 .next()
18810 .unwrap()
18811 .node
18812 .write_to(writer)
18813 .map_err(SerializeError::from)?;
18814 }
18815 item.write_element("oleObject", writer)?;
18816 #[cfg(feature = "extra-children")]
18817 {
18818 emit_idx += 1;
18819 }
18820 }
18821 #[cfg(feature = "extra-children")]
18822 for extra in extra_iter {
18823 extra.node.write_to(writer).map_err(SerializeError::from)?;
18824 }
18825 Ok(())
18826 }
18827
18828 fn is_empty_element(&self) -> bool {
18829 if !self.ole_object.is_empty() {
18830 return false;
18831 }
18832 #[cfg(feature = "extra-children")]
18833 if !self.extra_children.is_empty() {
18834 return false;
18835 }
18836 true
18837 }
18838}
18839
18840impl ToXml for OleObject {
18841 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
18842 #[allow(unused_mut)]
18843 let mut start = start;
18844 if let Some(ref val) = self.prog_id {
18845 start.push_attribute(("progId", val.as_str()));
18846 }
18847 if let Some(ref val) = self.dv_aspect {
18848 {
18849 let s = val.to_string();
18850 start.push_attribute(("dvAspect", s.as_str()));
18851 }
18852 }
18853 if let Some(ref val) = self.link {
18854 start.push_attribute(("link", val.as_str()));
18855 }
18856 if let Some(ref val) = self.ole_update {
18857 {
18858 let s = val.to_string();
18859 start.push_attribute(("oleUpdate", s.as_str()));
18860 }
18861 }
18862 if let Some(ref val) = self.auto_load {
18863 start.push_attribute(("autoLoad", if *val { "1" } else { "0" }));
18864 }
18865 {
18866 let val = &self.shape_id;
18867 {
18868 let s = val.to_string();
18869 start.push_attribute(("shapeId", s.as_str()));
18870 }
18871 }
18872 if let Some(ref val) = self.id {
18873 start.push_attribute(("r:id", val.as_str()));
18874 }
18875 #[cfg(feature = "extra-attrs")]
18876 for (key, value) in &self.extra_attrs {
18877 start.push_attribute((key.as_str(), value.as_str()));
18878 }
18879 start
18880 }
18881
18882 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
18883 #[cfg(feature = "extra-children")]
18884 let mut extra_iter = self.extra_children.iter().peekable();
18885 #[cfg(feature = "extra-children")]
18886 let mut emit_idx: usize = 0;
18887 #[cfg(feature = "extra-children")]
18888 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18889 extra_iter
18890 .next()
18891 .unwrap()
18892 .node
18893 .write_to(writer)
18894 .map_err(SerializeError::from)?;
18895 }
18896 if let Some(ref val) = self.object_pr {
18897 val.write_element("objectPr", writer)?;
18898 }
18899 #[cfg(feature = "extra-children")]
18900 {
18901 emit_idx += 1;
18902 }
18903 #[cfg(feature = "extra-children")]
18904 for extra in extra_iter {
18905 extra.node.write_to(writer).map_err(SerializeError::from)?;
18906 }
18907 Ok(())
18908 }
18909
18910 fn is_empty_element(&self) -> bool {
18911 if self.object_pr.is_some() {
18912 return false;
18913 }
18914 #[cfg(feature = "extra-children")]
18915 if !self.extra_children.is_empty() {
18916 return false;
18917 }
18918 true
18919 }
18920}
18921
18922impl ToXml for ObjectProperties {
18923 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
18924 #[allow(unused_mut)]
18925 let mut start = start;
18926 if let Some(ref val) = self.locked {
18927 start.push_attribute(("locked", if *val { "1" } else { "0" }));
18928 }
18929 if let Some(ref val) = self.default_size {
18930 start.push_attribute(("defaultSize", if *val { "1" } else { "0" }));
18931 }
18932 if let Some(ref val) = self.print {
18933 start.push_attribute(("print", if *val { "1" } else { "0" }));
18934 }
18935 if let Some(ref val) = self.disabled {
18936 start.push_attribute(("disabled", if *val { "1" } else { "0" }));
18937 }
18938 if let Some(ref val) = self.ui_object {
18939 start.push_attribute(("uiObject", if *val { "1" } else { "0" }));
18940 }
18941 if let Some(ref val) = self.auto_fill {
18942 start.push_attribute(("autoFill", if *val { "1" } else { "0" }));
18943 }
18944 if let Some(ref val) = self.auto_line {
18945 start.push_attribute(("autoLine", if *val { "1" } else { "0" }));
18946 }
18947 if let Some(ref val) = self.auto_pict {
18948 start.push_attribute(("autoPict", if *val { "1" } else { "0" }));
18949 }
18950 if let Some(ref val) = self.r#macro {
18951 start.push_attribute(("macro", val.as_str()));
18952 }
18953 if let Some(ref val) = self.alt_text {
18954 start.push_attribute(("altText", val.as_str()));
18955 }
18956 if let Some(ref val) = self.dde {
18957 start.push_attribute(("dde", if *val { "1" } else { "0" }));
18958 }
18959 if let Some(ref val) = self.id {
18960 start.push_attribute(("r:id", val.as_str()));
18961 }
18962 #[cfg(feature = "extra-attrs")]
18963 for (key, value) in &self.extra_attrs {
18964 start.push_attribute((key.as_str(), value.as_str()));
18965 }
18966 start
18967 }
18968
18969 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
18970 #[cfg(feature = "extra-children")]
18971 let mut extra_iter = self.extra_children.iter().peekable();
18972 #[cfg(feature = "extra-children")]
18973 let mut emit_idx: usize = 0;
18974 #[cfg(feature = "extra-children")]
18975 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
18976 extra_iter
18977 .next()
18978 .unwrap()
18979 .node
18980 .write_to(writer)
18981 .map_err(SerializeError::from)?;
18982 }
18983 {
18984 let val = &self.anchor;
18985 val.write_element("anchor", writer)?;
18986 }
18987 #[cfg(feature = "extra-children")]
18988 {
18989 emit_idx += 1;
18990 }
18991 #[cfg(feature = "extra-children")]
18992 for extra in extra_iter {
18993 extra.node.write_to(writer).map_err(SerializeError::from)?;
18994 }
18995 Ok(())
18996 }
18997
18998 fn is_empty_element(&self) -> bool {
18999 false
19000 }
19001}
19002
19003impl ToXml for WebPublishItems {
19004 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
19005 #[allow(unused_mut)]
19006 let mut start = start;
19007 if let Some(ref val) = self.count {
19008 {
19009 let s = val.to_string();
19010 start.push_attribute(("count", s.as_str()));
19011 }
19012 }
19013 #[cfg(feature = "extra-attrs")]
19014 for (key, value) in &self.extra_attrs {
19015 start.push_attribute((key.as_str(), value.as_str()));
19016 }
19017 start
19018 }
19019
19020 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19021 #[cfg(feature = "extra-children")]
19022 let mut extra_iter = self.extra_children.iter().peekable();
19023 #[cfg(feature = "extra-children")]
19024 let mut emit_idx: usize = 0;
19025 for item in &self.web_publish_item {
19026 #[cfg(feature = "extra-children")]
19027 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19028 extra_iter
19029 .next()
19030 .unwrap()
19031 .node
19032 .write_to(writer)
19033 .map_err(SerializeError::from)?;
19034 }
19035 item.write_element("webPublishItem", writer)?;
19036 #[cfg(feature = "extra-children")]
19037 {
19038 emit_idx += 1;
19039 }
19040 }
19041 #[cfg(feature = "extra-children")]
19042 for extra in extra_iter {
19043 extra.node.write_to(writer).map_err(SerializeError::from)?;
19044 }
19045 Ok(())
19046 }
19047
19048 fn is_empty_element(&self) -> bool {
19049 if !self.web_publish_item.is_empty() {
19050 return false;
19051 }
19052 #[cfg(feature = "extra-children")]
19053 if !self.extra_children.is_empty() {
19054 return false;
19055 }
19056 true
19057 }
19058}
19059
19060impl ToXml for WebPublishItem {
19061 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
19062 #[allow(unused_mut)]
19063 let mut start = start;
19064 {
19065 let val = &self.id;
19066 {
19067 let s = val.to_string();
19068 start.push_attribute(("id", s.as_str()));
19069 }
19070 }
19071 {
19072 let val = &self.div_id;
19073 start.push_attribute(("divId", val.as_str()));
19074 }
19075 {
19076 let val = &self.source_type;
19077 {
19078 let s = val.to_string();
19079 start.push_attribute(("sourceType", s.as_str()));
19080 }
19081 }
19082 if let Some(ref val) = self.source_ref {
19083 start.push_attribute(("sourceRef", val.as_str()));
19084 }
19085 if let Some(ref val) = self.source_object {
19086 start.push_attribute(("sourceObject", val.as_str()));
19087 }
19088 {
19089 let val = &self.destination_file;
19090 start.push_attribute(("destinationFile", val.as_str()));
19091 }
19092 if let Some(ref val) = self.title {
19093 start.push_attribute(("title", val.as_str()));
19094 }
19095 if let Some(ref val) = self.auto_republish {
19096 start.push_attribute(("autoRepublish", if *val { "1" } else { "0" }));
19097 }
19098 #[cfg(feature = "extra-attrs")]
19099 for (key, value) in &self.extra_attrs {
19100 start.push_attribute((key.as_str(), value.as_str()));
19101 }
19102 start
19103 }
19104
19105 fn is_empty_element(&self) -> bool {
19106 true
19107 }
19108}
19109
19110impl ToXml for Controls {
19111 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19112 #[cfg(feature = "extra-children")]
19113 let mut extra_iter = self.extra_children.iter().peekable();
19114 #[cfg(feature = "extra-children")]
19115 let mut emit_idx: usize = 0;
19116 for item in &self.control {
19117 #[cfg(feature = "extra-children")]
19118 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19119 extra_iter
19120 .next()
19121 .unwrap()
19122 .node
19123 .write_to(writer)
19124 .map_err(SerializeError::from)?;
19125 }
19126 item.write_element("control", writer)?;
19127 #[cfg(feature = "extra-children")]
19128 {
19129 emit_idx += 1;
19130 }
19131 }
19132 #[cfg(feature = "extra-children")]
19133 for extra in extra_iter {
19134 extra.node.write_to(writer).map_err(SerializeError::from)?;
19135 }
19136 Ok(())
19137 }
19138
19139 fn is_empty_element(&self) -> bool {
19140 if !self.control.is_empty() {
19141 return false;
19142 }
19143 #[cfg(feature = "extra-children")]
19144 if !self.extra_children.is_empty() {
19145 return false;
19146 }
19147 true
19148 }
19149}
19150
19151impl ToXml for Control {
19152 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
19153 #[allow(unused_mut)]
19154 let mut start = start;
19155 {
19156 let val = &self.shape_id;
19157 {
19158 let s = val.to_string();
19159 start.push_attribute(("shapeId", s.as_str()));
19160 }
19161 }
19162 {
19163 let val = &self.id;
19164 start.push_attribute(("r:id", val.as_str()));
19165 }
19166 if let Some(ref val) = self.name {
19167 start.push_attribute(("name", val.as_str()));
19168 }
19169 #[cfg(feature = "extra-attrs")]
19170 for (key, value) in &self.extra_attrs {
19171 start.push_attribute((key.as_str(), value.as_str()));
19172 }
19173 start
19174 }
19175
19176 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19177 #[cfg(feature = "extra-children")]
19178 let mut extra_iter = self.extra_children.iter().peekable();
19179 #[cfg(feature = "extra-children")]
19180 let mut emit_idx: usize = 0;
19181 #[cfg(feature = "extra-children")]
19182 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19183 extra_iter
19184 .next()
19185 .unwrap()
19186 .node
19187 .write_to(writer)
19188 .map_err(SerializeError::from)?;
19189 }
19190 if let Some(ref val) = self.control_pr {
19191 val.write_element("controlPr", writer)?;
19192 }
19193 #[cfg(feature = "extra-children")]
19194 {
19195 emit_idx += 1;
19196 }
19197 #[cfg(feature = "extra-children")]
19198 for extra in extra_iter {
19199 extra.node.write_to(writer).map_err(SerializeError::from)?;
19200 }
19201 Ok(())
19202 }
19203
19204 fn is_empty_element(&self) -> bool {
19205 if self.control_pr.is_some() {
19206 return false;
19207 }
19208 #[cfg(feature = "extra-children")]
19209 if !self.extra_children.is_empty() {
19210 return false;
19211 }
19212 true
19213 }
19214}
19215
19216impl ToXml for CTControlPr {
19217 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
19218 #[allow(unused_mut)]
19219 let mut start = start;
19220 if let Some(ref val) = self.locked {
19221 start.push_attribute(("locked", if *val { "1" } else { "0" }));
19222 }
19223 if let Some(ref val) = self.default_size {
19224 start.push_attribute(("defaultSize", if *val { "1" } else { "0" }));
19225 }
19226 if let Some(ref val) = self.print {
19227 start.push_attribute(("print", if *val { "1" } else { "0" }));
19228 }
19229 if let Some(ref val) = self.disabled {
19230 start.push_attribute(("disabled", if *val { "1" } else { "0" }));
19231 }
19232 if let Some(ref val) = self.recalc_always {
19233 start.push_attribute(("recalcAlways", if *val { "1" } else { "0" }));
19234 }
19235 if let Some(ref val) = self.ui_object {
19236 start.push_attribute(("uiObject", if *val { "1" } else { "0" }));
19237 }
19238 if let Some(ref val) = self.auto_fill {
19239 start.push_attribute(("autoFill", if *val { "1" } else { "0" }));
19240 }
19241 if let Some(ref val) = self.auto_line {
19242 start.push_attribute(("autoLine", if *val { "1" } else { "0" }));
19243 }
19244 if let Some(ref val) = self.auto_pict {
19245 start.push_attribute(("autoPict", if *val { "1" } else { "0" }));
19246 }
19247 if let Some(ref val) = self.r#macro {
19248 start.push_attribute(("macro", val.as_str()));
19249 }
19250 if let Some(ref val) = self.alt_text {
19251 start.push_attribute(("altText", val.as_str()));
19252 }
19253 if let Some(ref val) = self.linked_cell {
19254 start.push_attribute(("linkedCell", val.as_str()));
19255 }
19256 if let Some(ref val) = self.list_fill_range {
19257 start.push_attribute(("listFillRange", val.as_str()));
19258 }
19259 if let Some(ref val) = self.cf {
19260 start.push_attribute(("cf", val.as_str()));
19261 }
19262 if let Some(ref val) = self.id {
19263 start.push_attribute(("r:id", val.as_str()));
19264 }
19265 #[cfg(feature = "extra-attrs")]
19266 for (key, value) in &self.extra_attrs {
19267 start.push_attribute((key.as_str(), value.as_str()));
19268 }
19269 start
19270 }
19271
19272 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19273 #[cfg(feature = "extra-children")]
19274 let mut extra_iter = self.extra_children.iter().peekable();
19275 #[cfg(feature = "extra-children")]
19276 let mut emit_idx: usize = 0;
19277 #[cfg(feature = "extra-children")]
19278 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19279 extra_iter
19280 .next()
19281 .unwrap()
19282 .node
19283 .write_to(writer)
19284 .map_err(SerializeError::from)?;
19285 }
19286 {
19287 let val = &self.anchor;
19288 val.write_element("anchor", writer)?;
19289 }
19290 #[cfg(feature = "extra-children")]
19291 {
19292 emit_idx += 1;
19293 }
19294 #[cfg(feature = "extra-children")]
19295 for extra in extra_iter {
19296 extra.node.write_to(writer).map_err(SerializeError::from)?;
19297 }
19298 Ok(())
19299 }
19300
19301 fn is_empty_element(&self) -> bool {
19302 false
19303 }
19304}
19305
19306impl ToXml for IgnoredErrors {
19307 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19308 #[cfg(feature = "extra-children")]
19309 let mut extra_iter = self.extra_children.iter().peekable();
19310 #[cfg(feature = "extra-children")]
19311 let mut emit_idx: usize = 0;
19312 for item in &self.ignored_error {
19313 #[cfg(feature = "extra-children")]
19314 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19315 extra_iter
19316 .next()
19317 .unwrap()
19318 .node
19319 .write_to(writer)
19320 .map_err(SerializeError::from)?;
19321 }
19322 item.write_element("ignoredError", writer)?;
19323 #[cfg(feature = "extra-children")]
19324 {
19325 emit_idx += 1;
19326 }
19327 }
19328 #[cfg(feature = "extra-children")]
19329 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19330 extra_iter
19331 .next()
19332 .unwrap()
19333 .node
19334 .write_to(writer)
19335 .map_err(SerializeError::from)?;
19336 }
19337 if let Some(ref val) = self.extension_list {
19338 val.write_element("extLst", writer)?;
19339 }
19340 #[cfg(feature = "extra-children")]
19341 {
19342 emit_idx += 1;
19343 }
19344 #[cfg(feature = "extra-children")]
19345 for extra in extra_iter {
19346 extra.node.write_to(writer).map_err(SerializeError::from)?;
19347 }
19348 Ok(())
19349 }
19350
19351 fn is_empty_element(&self) -> bool {
19352 if !self.ignored_error.is_empty() {
19353 return false;
19354 }
19355 if self.extension_list.is_some() {
19356 return false;
19357 }
19358 #[cfg(feature = "extra-children")]
19359 if !self.extra_children.is_empty() {
19360 return false;
19361 }
19362 true
19363 }
19364}
19365
19366impl ToXml for IgnoredError {
19367 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
19368 #[allow(unused_mut)]
19369 let mut start = start;
19370 {
19371 let val = &self.square_reference;
19372 start.push_attribute(("sqref", val.as_str()));
19373 }
19374 if let Some(ref val) = self.eval_error {
19375 start.push_attribute(("evalError", if *val { "1" } else { "0" }));
19376 }
19377 if let Some(ref val) = self.two_digit_text_year {
19378 start.push_attribute(("twoDigitTextYear", if *val { "1" } else { "0" }));
19379 }
19380 if let Some(ref val) = self.number_stored_as_text {
19381 start.push_attribute(("numberStoredAsText", if *val { "1" } else { "0" }));
19382 }
19383 if let Some(ref val) = self.formula {
19384 start.push_attribute(("formula", if *val { "1" } else { "0" }));
19385 }
19386 if let Some(ref val) = self.formula_range {
19387 start.push_attribute(("formulaRange", if *val { "1" } else { "0" }));
19388 }
19389 if let Some(ref val) = self.unlocked_formula {
19390 start.push_attribute(("unlockedFormula", if *val { "1" } else { "0" }));
19391 }
19392 if let Some(ref val) = self.empty_cell_reference {
19393 start.push_attribute(("emptyCellReference", if *val { "1" } else { "0" }));
19394 }
19395 if let Some(ref val) = self.list_data_validation {
19396 start.push_attribute(("listDataValidation", if *val { "1" } else { "0" }));
19397 }
19398 if let Some(ref val) = self.calculated_column {
19399 start.push_attribute(("calculatedColumn", if *val { "1" } else { "0" }));
19400 }
19401 #[cfg(feature = "extra-attrs")]
19402 for (key, value) in &self.extra_attrs {
19403 start.push_attribute((key.as_str(), value.as_str()));
19404 }
19405 start
19406 }
19407
19408 fn is_empty_element(&self) -> bool {
19409 true
19410 }
19411}
19412
19413impl ToXml for TableParts {
19414 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
19415 #[allow(unused_mut)]
19416 let mut start = start;
19417 if let Some(ref val) = self.count {
19418 {
19419 let s = val.to_string();
19420 start.push_attribute(("count", s.as_str()));
19421 }
19422 }
19423 #[cfg(feature = "extra-attrs")]
19424 for (key, value) in &self.extra_attrs {
19425 start.push_attribute((key.as_str(), value.as_str()));
19426 }
19427 start
19428 }
19429
19430 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19431 #[cfg(feature = "extra-children")]
19432 let mut extra_iter = self.extra_children.iter().peekable();
19433 #[cfg(feature = "extra-children")]
19434 let mut emit_idx: usize = 0;
19435 for item in &self.table_part {
19436 #[cfg(feature = "extra-children")]
19437 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19438 extra_iter
19439 .next()
19440 .unwrap()
19441 .node
19442 .write_to(writer)
19443 .map_err(SerializeError::from)?;
19444 }
19445 item.write_element("tablePart", writer)?;
19446 #[cfg(feature = "extra-children")]
19447 {
19448 emit_idx += 1;
19449 }
19450 }
19451 #[cfg(feature = "extra-children")]
19452 for extra in extra_iter {
19453 extra.node.write_to(writer).map_err(SerializeError::from)?;
19454 }
19455 Ok(())
19456 }
19457
19458 fn is_empty_element(&self) -> bool {
19459 if !self.table_part.is_empty() {
19460 return false;
19461 }
19462 #[cfg(feature = "extra-children")]
19463 if !self.extra_children.is_empty() {
19464 return false;
19465 }
19466 true
19467 }
19468}
19469
19470impl ToXml for TablePart {
19471 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
19472 #[allow(unused_mut)]
19473 let mut start = start;
19474 {
19475 let val = &self.id;
19476 start.push_attribute(("r:id", val.as_str()));
19477 }
19478 #[cfg(feature = "extra-attrs")]
19479 for (key, value) in &self.extra_attrs {
19480 start.push_attribute((key.as_str(), value.as_str()));
19481 }
19482 start
19483 }
19484
19485 fn is_empty_element(&self) -> bool {
19486 true
19487 }
19488}
19489
19490impl ToXml for Metadata {
19491 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19492 #[cfg(feature = "extra-children")]
19493 let mut extra_iter = self.extra_children.iter().peekable();
19494 #[cfg(feature = "extra-children")]
19495 let mut emit_idx: usize = 0;
19496 #[cfg(feature = "extra-children")]
19497 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19498 extra_iter
19499 .next()
19500 .unwrap()
19501 .node
19502 .write_to(writer)
19503 .map_err(SerializeError::from)?;
19504 }
19505 if let Some(ref val) = self.metadata_types {
19506 val.write_element("metadataTypes", writer)?;
19507 }
19508 #[cfg(feature = "extra-children")]
19509 {
19510 emit_idx += 1;
19511 }
19512 #[cfg(feature = "extra-children")]
19513 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19514 extra_iter
19515 .next()
19516 .unwrap()
19517 .node
19518 .write_to(writer)
19519 .map_err(SerializeError::from)?;
19520 }
19521 if let Some(ref val) = self.metadata_strings {
19522 val.write_element("metadataStrings", writer)?;
19523 }
19524 #[cfg(feature = "extra-children")]
19525 {
19526 emit_idx += 1;
19527 }
19528 #[cfg(feature = "extra-children")]
19529 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19530 extra_iter
19531 .next()
19532 .unwrap()
19533 .node
19534 .write_to(writer)
19535 .map_err(SerializeError::from)?;
19536 }
19537 if let Some(ref val) = self.mdx_metadata {
19538 val.write_element("mdxMetadata", writer)?;
19539 }
19540 #[cfg(feature = "extra-children")]
19541 {
19542 emit_idx += 1;
19543 }
19544 for item in &self.future_metadata {
19545 #[cfg(feature = "extra-children")]
19546 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19547 extra_iter
19548 .next()
19549 .unwrap()
19550 .node
19551 .write_to(writer)
19552 .map_err(SerializeError::from)?;
19553 }
19554 item.write_element("futureMetadata", writer)?;
19555 #[cfg(feature = "extra-children")]
19556 {
19557 emit_idx += 1;
19558 }
19559 }
19560 #[cfg(feature = "extra-children")]
19561 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19562 extra_iter
19563 .next()
19564 .unwrap()
19565 .node
19566 .write_to(writer)
19567 .map_err(SerializeError::from)?;
19568 }
19569 if let Some(ref val) = self.cell_metadata {
19570 val.write_element("cellMetadata", writer)?;
19571 }
19572 #[cfg(feature = "extra-children")]
19573 {
19574 emit_idx += 1;
19575 }
19576 #[cfg(feature = "extra-children")]
19577 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19578 extra_iter
19579 .next()
19580 .unwrap()
19581 .node
19582 .write_to(writer)
19583 .map_err(SerializeError::from)?;
19584 }
19585 if let Some(ref val) = self.value_metadata {
19586 val.write_element("valueMetadata", writer)?;
19587 }
19588 #[cfg(feature = "extra-children")]
19589 {
19590 emit_idx += 1;
19591 }
19592 #[cfg(feature = "extra-children")]
19593 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19594 extra_iter
19595 .next()
19596 .unwrap()
19597 .node
19598 .write_to(writer)
19599 .map_err(SerializeError::from)?;
19600 }
19601 if let Some(ref val) = self.extension_list {
19602 val.write_element("extLst", writer)?;
19603 }
19604 #[cfg(feature = "extra-children")]
19605 {
19606 emit_idx += 1;
19607 }
19608 #[cfg(feature = "extra-children")]
19609 for extra in extra_iter {
19610 extra.node.write_to(writer).map_err(SerializeError::from)?;
19611 }
19612 Ok(())
19613 }
19614
19615 fn is_empty_element(&self) -> bool {
19616 if self.metadata_types.is_some() {
19617 return false;
19618 }
19619 if self.metadata_strings.is_some() {
19620 return false;
19621 }
19622 if self.mdx_metadata.is_some() {
19623 return false;
19624 }
19625 if !self.future_metadata.is_empty() {
19626 return false;
19627 }
19628 if self.cell_metadata.is_some() {
19629 return false;
19630 }
19631 if self.value_metadata.is_some() {
19632 return false;
19633 }
19634 if self.extension_list.is_some() {
19635 return false;
19636 }
19637 #[cfg(feature = "extra-children")]
19638 if !self.extra_children.is_empty() {
19639 return false;
19640 }
19641 true
19642 }
19643}
19644
19645impl ToXml for MetadataTypes {
19646 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
19647 #[allow(unused_mut)]
19648 let mut start = start;
19649 if let Some(ref val) = self.count {
19650 {
19651 let s = val.to_string();
19652 start.push_attribute(("count", s.as_str()));
19653 }
19654 }
19655 #[cfg(feature = "extra-attrs")]
19656 for (key, value) in &self.extra_attrs {
19657 start.push_attribute((key.as_str(), value.as_str()));
19658 }
19659 start
19660 }
19661
19662 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19663 #[cfg(feature = "extra-children")]
19664 let mut extra_iter = self.extra_children.iter().peekable();
19665 #[cfg(feature = "extra-children")]
19666 let mut emit_idx: usize = 0;
19667 for item in &self.metadata_type {
19668 #[cfg(feature = "extra-children")]
19669 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19670 extra_iter
19671 .next()
19672 .unwrap()
19673 .node
19674 .write_to(writer)
19675 .map_err(SerializeError::from)?;
19676 }
19677 item.write_element("metadataType", writer)?;
19678 #[cfg(feature = "extra-children")]
19679 {
19680 emit_idx += 1;
19681 }
19682 }
19683 #[cfg(feature = "extra-children")]
19684 for extra in extra_iter {
19685 extra.node.write_to(writer).map_err(SerializeError::from)?;
19686 }
19687 Ok(())
19688 }
19689
19690 fn is_empty_element(&self) -> bool {
19691 if !self.metadata_type.is_empty() {
19692 return false;
19693 }
19694 #[cfg(feature = "extra-children")]
19695 if !self.extra_children.is_empty() {
19696 return false;
19697 }
19698 true
19699 }
19700}
19701
19702impl ToXml for MetadataType {
19703 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
19704 #[allow(unused_mut)]
19705 let mut start = start;
19706 {
19707 let val = &self.name;
19708 start.push_attribute(("name", val.as_str()));
19709 }
19710 {
19711 let val = &self.min_supported_version;
19712 {
19713 let s = val.to_string();
19714 start.push_attribute(("minSupportedVersion", s.as_str()));
19715 }
19716 }
19717 if let Some(ref val) = self.ghost_row {
19718 start.push_attribute(("ghostRow", if *val { "1" } else { "0" }));
19719 }
19720 if let Some(ref val) = self.ghost_col {
19721 start.push_attribute(("ghostCol", if *val { "1" } else { "0" }));
19722 }
19723 if let Some(ref val) = self.edit {
19724 start.push_attribute(("edit", if *val { "1" } else { "0" }));
19725 }
19726 if let Some(ref val) = self.delete {
19727 start.push_attribute(("delete", if *val { "1" } else { "0" }));
19728 }
19729 if let Some(ref val) = self.copy {
19730 start.push_attribute(("copy", if *val { "1" } else { "0" }));
19731 }
19732 if let Some(ref val) = self.paste_all {
19733 start.push_attribute(("pasteAll", if *val { "1" } else { "0" }));
19734 }
19735 if let Some(ref val) = self.paste_formulas {
19736 start.push_attribute(("pasteFormulas", if *val { "1" } else { "0" }));
19737 }
19738 if let Some(ref val) = self.paste_values {
19739 start.push_attribute(("pasteValues", if *val { "1" } else { "0" }));
19740 }
19741 if let Some(ref val) = self.paste_formats {
19742 start.push_attribute(("pasteFormats", if *val { "1" } else { "0" }));
19743 }
19744 if let Some(ref val) = self.paste_comments {
19745 start.push_attribute(("pasteComments", if *val { "1" } else { "0" }));
19746 }
19747 if let Some(ref val) = self.paste_data_validation {
19748 start.push_attribute(("pasteDataValidation", if *val { "1" } else { "0" }));
19749 }
19750 if let Some(ref val) = self.paste_borders {
19751 start.push_attribute(("pasteBorders", if *val { "1" } else { "0" }));
19752 }
19753 if let Some(ref val) = self.paste_col_widths {
19754 start.push_attribute(("pasteColWidths", if *val { "1" } else { "0" }));
19755 }
19756 if let Some(ref val) = self.paste_number_formats {
19757 start.push_attribute(("pasteNumberFormats", if *val { "1" } else { "0" }));
19758 }
19759 if let Some(ref val) = self.merge {
19760 start.push_attribute(("merge", if *val { "1" } else { "0" }));
19761 }
19762 if let Some(ref val) = self.split_first {
19763 start.push_attribute(("splitFirst", if *val { "1" } else { "0" }));
19764 }
19765 if let Some(ref val) = self.split_all {
19766 start.push_attribute(("splitAll", if *val { "1" } else { "0" }));
19767 }
19768 if let Some(ref val) = self.row_col_shift {
19769 start.push_attribute(("rowColShift", if *val { "1" } else { "0" }));
19770 }
19771 if let Some(ref val) = self.clear_all {
19772 start.push_attribute(("clearAll", if *val { "1" } else { "0" }));
19773 }
19774 if let Some(ref val) = self.clear_formats {
19775 start.push_attribute(("clearFormats", if *val { "1" } else { "0" }));
19776 }
19777 if let Some(ref val) = self.clear_contents {
19778 start.push_attribute(("clearContents", if *val { "1" } else { "0" }));
19779 }
19780 if let Some(ref val) = self.clear_comments {
19781 start.push_attribute(("clearComments", if *val { "1" } else { "0" }));
19782 }
19783 if let Some(ref val) = self.assign {
19784 start.push_attribute(("assign", if *val { "1" } else { "0" }));
19785 }
19786 if let Some(ref val) = self.coerce {
19787 start.push_attribute(("coerce", if *val { "1" } else { "0" }));
19788 }
19789 if let Some(ref val) = self.adjust {
19790 start.push_attribute(("adjust", if *val { "1" } else { "0" }));
19791 }
19792 if let Some(ref val) = self.cell_meta {
19793 start.push_attribute(("cellMeta", if *val { "1" } else { "0" }));
19794 }
19795 #[cfg(feature = "extra-attrs")]
19796 for (key, value) in &self.extra_attrs {
19797 start.push_attribute((key.as_str(), value.as_str()));
19798 }
19799 start
19800 }
19801
19802 fn is_empty_element(&self) -> bool {
19803 true
19804 }
19805}
19806
19807impl ToXml for MetadataBlocks {
19808 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
19809 #[allow(unused_mut)]
19810 let mut start = start;
19811 if let Some(ref val) = self.count {
19812 {
19813 let s = val.to_string();
19814 start.push_attribute(("count", s.as_str()));
19815 }
19816 }
19817 #[cfg(feature = "extra-attrs")]
19818 for (key, value) in &self.extra_attrs {
19819 start.push_attribute((key.as_str(), value.as_str()));
19820 }
19821 start
19822 }
19823
19824 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19825 #[cfg(feature = "extra-children")]
19826 let mut extra_iter = self.extra_children.iter().peekable();
19827 #[cfg(feature = "extra-children")]
19828 let mut emit_idx: usize = 0;
19829 for item in &self.bk {
19830 #[cfg(feature = "extra-children")]
19831 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19832 extra_iter
19833 .next()
19834 .unwrap()
19835 .node
19836 .write_to(writer)
19837 .map_err(SerializeError::from)?;
19838 }
19839 item.write_element("bk", writer)?;
19840 #[cfg(feature = "extra-children")]
19841 {
19842 emit_idx += 1;
19843 }
19844 }
19845 #[cfg(feature = "extra-children")]
19846 for extra in extra_iter {
19847 extra.node.write_to(writer).map_err(SerializeError::from)?;
19848 }
19849 Ok(())
19850 }
19851
19852 fn is_empty_element(&self) -> bool {
19853 if !self.bk.is_empty() {
19854 return false;
19855 }
19856 #[cfg(feature = "extra-children")]
19857 if !self.extra_children.is_empty() {
19858 return false;
19859 }
19860 true
19861 }
19862}
19863
19864impl ToXml for MetadataBlock {
19865 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19866 #[cfg(feature = "extra-children")]
19867 let mut extra_iter = self.extra_children.iter().peekable();
19868 #[cfg(feature = "extra-children")]
19869 let mut emit_idx: usize = 0;
19870 for item in &self.rc {
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 item.write_element("rc", writer)?;
19881 #[cfg(feature = "extra-children")]
19882 {
19883 emit_idx += 1;
19884 }
19885 }
19886 #[cfg(feature = "extra-children")]
19887 for extra in extra_iter {
19888 extra.node.write_to(writer).map_err(SerializeError::from)?;
19889 }
19890 Ok(())
19891 }
19892
19893 fn is_empty_element(&self) -> bool {
19894 if !self.rc.is_empty() {
19895 return false;
19896 }
19897 #[cfg(feature = "extra-children")]
19898 if !self.extra_children.is_empty() {
19899 return false;
19900 }
19901 true
19902 }
19903}
19904
19905impl ToXml for MetadataRecord {
19906 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
19907 #[allow(unused_mut)]
19908 let mut start = start;
19909 {
19910 let val = &self.cell_type;
19911 {
19912 let s = val.to_string();
19913 start.push_attribute(("t", s.as_str()));
19914 }
19915 }
19916 {
19917 let val = &self.value;
19918 {
19919 let s = val.to_string();
19920 start.push_attribute(("v", s.as_str()));
19921 }
19922 }
19923 #[cfg(feature = "extra-attrs")]
19924 for (key, value) in &self.extra_attrs {
19925 start.push_attribute((key.as_str(), value.as_str()));
19926 }
19927 start
19928 }
19929
19930 fn is_empty_element(&self) -> bool {
19931 true
19932 }
19933}
19934
19935impl ToXml for CTFutureMetadata {
19936 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
19937 #[allow(unused_mut)]
19938 let mut start = start;
19939 {
19940 let val = &self.name;
19941 start.push_attribute(("name", val.as_str()));
19942 }
19943 if let Some(ref val) = self.count {
19944 {
19945 let s = val.to_string();
19946 start.push_attribute(("count", s.as_str()));
19947 }
19948 }
19949 #[cfg(feature = "extra-attrs")]
19950 for (key, value) in &self.extra_attrs {
19951 start.push_attribute((key.as_str(), value.as_str()));
19952 }
19953 start
19954 }
19955
19956 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
19957 #[cfg(feature = "extra-children")]
19958 let mut extra_iter = self.extra_children.iter().peekable();
19959 #[cfg(feature = "extra-children")]
19960 let mut emit_idx: usize = 0;
19961 for item in &self.bk {
19962 #[cfg(feature = "extra-children")]
19963 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19964 extra_iter
19965 .next()
19966 .unwrap()
19967 .node
19968 .write_to(writer)
19969 .map_err(SerializeError::from)?;
19970 }
19971 item.write_element("bk", writer)?;
19972 #[cfg(feature = "extra-children")]
19973 {
19974 emit_idx += 1;
19975 }
19976 }
19977 #[cfg(feature = "extra-children")]
19978 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
19979 extra_iter
19980 .next()
19981 .unwrap()
19982 .node
19983 .write_to(writer)
19984 .map_err(SerializeError::from)?;
19985 }
19986 if let Some(ref val) = self.extension_list {
19987 val.write_element("extLst", writer)?;
19988 }
19989 #[cfg(feature = "extra-children")]
19990 {
19991 emit_idx += 1;
19992 }
19993 #[cfg(feature = "extra-children")]
19994 for extra in extra_iter {
19995 extra.node.write_to(writer).map_err(SerializeError::from)?;
19996 }
19997 Ok(())
19998 }
19999
20000 fn is_empty_element(&self) -> bool {
20001 if !self.bk.is_empty() {
20002 return false;
20003 }
20004 if self.extension_list.is_some() {
20005 return false;
20006 }
20007 #[cfg(feature = "extra-children")]
20008 if !self.extra_children.is_empty() {
20009 return false;
20010 }
20011 true
20012 }
20013}
20014
20015impl ToXml for CTFutureMetadataBlock {
20016 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
20017 #[cfg(feature = "extra-children")]
20018 let mut extra_iter = self.extra_children.iter().peekable();
20019 #[cfg(feature = "extra-children")]
20020 let mut emit_idx: usize = 0;
20021 #[cfg(feature = "extra-children")]
20022 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20023 extra_iter
20024 .next()
20025 .unwrap()
20026 .node
20027 .write_to(writer)
20028 .map_err(SerializeError::from)?;
20029 }
20030 if let Some(ref val) = self.extension_list {
20031 val.write_element("extLst", writer)?;
20032 }
20033 #[cfg(feature = "extra-children")]
20034 {
20035 emit_idx += 1;
20036 }
20037 #[cfg(feature = "extra-children")]
20038 for extra in extra_iter {
20039 extra.node.write_to(writer).map_err(SerializeError::from)?;
20040 }
20041 Ok(())
20042 }
20043
20044 fn is_empty_element(&self) -> bool {
20045 if self.extension_list.is_some() {
20046 return false;
20047 }
20048 #[cfg(feature = "extra-children")]
20049 if !self.extra_children.is_empty() {
20050 return false;
20051 }
20052 true
20053 }
20054}
20055
20056impl ToXml for CTMdxMetadata {
20057 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
20058 #[allow(unused_mut)]
20059 let mut start = start;
20060 if let Some(ref val) = self.count {
20061 {
20062 let s = val.to_string();
20063 start.push_attribute(("count", s.as_str()));
20064 }
20065 }
20066 #[cfg(feature = "extra-attrs")]
20067 for (key, value) in &self.extra_attrs {
20068 start.push_attribute((key.as_str(), value.as_str()));
20069 }
20070 start
20071 }
20072
20073 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
20074 #[cfg(feature = "extra-children")]
20075 let mut extra_iter = self.extra_children.iter().peekable();
20076 #[cfg(feature = "extra-children")]
20077 let mut emit_idx: usize = 0;
20078 for item in &self.mdx {
20079 #[cfg(feature = "extra-children")]
20080 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20081 extra_iter
20082 .next()
20083 .unwrap()
20084 .node
20085 .write_to(writer)
20086 .map_err(SerializeError::from)?;
20087 }
20088 item.write_element("mdx", writer)?;
20089 #[cfg(feature = "extra-children")]
20090 {
20091 emit_idx += 1;
20092 }
20093 }
20094 #[cfg(feature = "extra-children")]
20095 for extra in extra_iter {
20096 extra.node.write_to(writer).map_err(SerializeError::from)?;
20097 }
20098 Ok(())
20099 }
20100
20101 fn is_empty_element(&self) -> bool {
20102 if !self.mdx.is_empty() {
20103 return false;
20104 }
20105 #[cfg(feature = "extra-children")]
20106 if !self.extra_children.is_empty() {
20107 return false;
20108 }
20109 true
20110 }
20111}
20112
20113impl ToXml for CTMdx {
20114 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
20115 #[allow(unused_mut)]
20116 let mut start = start;
20117 {
20118 let val = &self.n;
20119 {
20120 let s = val.to_string();
20121 start.push_attribute(("n", s.as_str()));
20122 }
20123 }
20124 {
20125 let val = &self.formula;
20126 {
20127 let s = val.to_string();
20128 start.push_attribute(("f", s.as_str()));
20129 }
20130 }
20131 #[cfg(feature = "extra-attrs")]
20132 for (key, value) in &self.extra_attrs {
20133 start.push_attribute((key.as_str(), value.as_str()));
20134 }
20135 start
20136 }
20137
20138 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
20139 #[cfg(feature = "extra-children")]
20140 let mut extra_iter = self.extra_children.iter().peekable();
20141 #[cfg(feature = "extra-children")]
20142 let mut emit_idx: usize = 0;
20143 #[cfg(feature = "extra-children")]
20144 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20145 extra_iter
20146 .next()
20147 .unwrap()
20148 .node
20149 .write_to(writer)
20150 .map_err(SerializeError::from)?;
20151 }
20152 if let Some(ref val) = self.cell_type {
20153 val.write_element("t", writer)?;
20154 }
20155 #[cfg(feature = "extra-children")]
20156 {
20157 emit_idx += 1;
20158 }
20159 #[cfg(feature = "extra-children")]
20160 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20161 extra_iter
20162 .next()
20163 .unwrap()
20164 .node
20165 .write_to(writer)
20166 .map_err(SerializeError::from)?;
20167 }
20168 if let Some(ref val) = self.ms {
20169 val.write_element("ms", writer)?;
20170 }
20171 #[cfg(feature = "extra-children")]
20172 {
20173 emit_idx += 1;
20174 }
20175 #[cfg(feature = "extra-children")]
20176 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20177 extra_iter
20178 .next()
20179 .unwrap()
20180 .node
20181 .write_to(writer)
20182 .map_err(SerializeError::from)?;
20183 }
20184 if let Some(ref val) = self.p {
20185 val.write_element("p", writer)?;
20186 }
20187 #[cfg(feature = "extra-children")]
20188 {
20189 emit_idx += 1;
20190 }
20191 #[cfg(feature = "extra-children")]
20192 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20193 extra_iter
20194 .next()
20195 .unwrap()
20196 .node
20197 .write_to(writer)
20198 .map_err(SerializeError::from)?;
20199 }
20200 if let Some(ref val) = self.k {
20201 val.write_element("k", writer)?;
20202 }
20203 #[cfg(feature = "extra-children")]
20204 {
20205 emit_idx += 1;
20206 }
20207 #[cfg(feature = "extra-children")]
20208 for extra in extra_iter {
20209 extra.node.write_to(writer).map_err(SerializeError::from)?;
20210 }
20211 Ok(())
20212 }
20213
20214 fn is_empty_element(&self) -> bool {
20215 if self.cell_type.is_some() {
20216 return false;
20217 }
20218 if self.ms.is_some() {
20219 return false;
20220 }
20221 if self.p.is_some() {
20222 return false;
20223 }
20224 if self.k.is_some() {
20225 return false;
20226 }
20227 #[cfg(feature = "extra-children")]
20228 if !self.extra_children.is_empty() {
20229 return false;
20230 }
20231 true
20232 }
20233}
20234
20235impl ToXml for CTMdxTuple {
20236 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
20237 #[allow(unused_mut)]
20238 let mut start = start;
20239 if let Some(ref val) = self.cells {
20240 {
20241 let s = val.to_string();
20242 start.push_attribute(("c", s.as_str()));
20243 }
20244 }
20245 if let Some(ref val) = self.ct {
20246 start.push_attribute(("ct", val.as_str()));
20247 }
20248 if let Some(ref val) = self.si {
20249 {
20250 let s = val.to_string();
20251 start.push_attribute(("si", s.as_str()));
20252 }
20253 }
20254 if let Some(ref val) = self.fi {
20255 {
20256 let s = val.to_string();
20257 start.push_attribute(("fi", s.as_str()));
20258 }
20259 }
20260 if let Some(ref val) = self.bc {
20261 {
20262 let hex = encode_hex(val);
20263 start.push_attribute(("bc", hex.as_str()));
20264 }
20265 }
20266 if let Some(ref val) = self.fc {
20267 {
20268 let hex = encode_hex(val);
20269 start.push_attribute(("fc", hex.as_str()));
20270 }
20271 }
20272 if let Some(ref val) = self.i {
20273 start.push_attribute(("i", if *val { "1" } else { "0" }));
20274 }
20275 if let Some(ref val) = self.u {
20276 start.push_attribute(("u", if *val { "1" } else { "0" }));
20277 }
20278 if let Some(ref val) = self.st {
20279 start.push_attribute(("st", if *val { "1" } else { "0" }));
20280 }
20281 if let Some(ref val) = self.b {
20282 start.push_attribute(("b", if *val { "1" } else { "0" }));
20283 }
20284 #[cfg(feature = "extra-attrs")]
20285 for (key, value) in &self.extra_attrs {
20286 start.push_attribute((key.as_str(), value.as_str()));
20287 }
20288 start
20289 }
20290
20291 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
20292 #[cfg(feature = "extra-children")]
20293 let mut extra_iter = self.extra_children.iter().peekable();
20294 #[cfg(feature = "extra-children")]
20295 let mut emit_idx: usize = 0;
20296 for item in &self.n {
20297 #[cfg(feature = "extra-children")]
20298 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20299 extra_iter
20300 .next()
20301 .unwrap()
20302 .node
20303 .write_to(writer)
20304 .map_err(SerializeError::from)?;
20305 }
20306 item.write_element("n", writer)?;
20307 #[cfg(feature = "extra-children")]
20308 {
20309 emit_idx += 1;
20310 }
20311 }
20312 #[cfg(feature = "extra-children")]
20313 for extra in extra_iter {
20314 extra.node.write_to(writer).map_err(SerializeError::from)?;
20315 }
20316 Ok(())
20317 }
20318
20319 fn is_empty_element(&self) -> bool {
20320 if !self.n.is_empty() {
20321 return false;
20322 }
20323 #[cfg(feature = "extra-children")]
20324 if !self.extra_children.is_empty() {
20325 return false;
20326 }
20327 true
20328 }
20329}
20330
20331impl ToXml for CTMdxSet {
20332 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
20333 #[allow(unused_mut)]
20334 let mut start = start;
20335 {
20336 let val = &self.ns;
20337 {
20338 let s = val.to_string();
20339 start.push_attribute(("ns", s.as_str()));
20340 }
20341 }
20342 if let Some(ref val) = self.cells {
20343 {
20344 let s = val.to_string();
20345 start.push_attribute(("c", s.as_str()));
20346 }
20347 }
20348 if let Some(ref val) = self.o {
20349 {
20350 let s = val.to_string();
20351 start.push_attribute(("o", s.as_str()));
20352 }
20353 }
20354 #[cfg(feature = "extra-attrs")]
20355 for (key, value) in &self.extra_attrs {
20356 start.push_attribute((key.as_str(), value.as_str()));
20357 }
20358 start
20359 }
20360
20361 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
20362 #[cfg(feature = "extra-children")]
20363 let mut extra_iter = self.extra_children.iter().peekable();
20364 #[cfg(feature = "extra-children")]
20365 let mut emit_idx: usize = 0;
20366 for item in &self.n {
20367 #[cfg(feature = "extra-children")]
20368 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20369 extra_iter
20370 .next()
20371 .unwrap()
20372 .node
20373 .write_to(writer)
20374 .map_err(SerializeError::from)?;
20375 }
20376 item.write_element("n", writer)?;
20377 #[cfg(feature = "extra-children")]
20378 {
20379 emit_idx += 1;
20380 }
20381 }
20382 #[cfg(feature = "extra-children")]
20383 for extra in extra_iter {
20384 extra.node.write_to(writer).map_err(SerializeError::from)?;
20385 }
20386 Ok(())
20387 }
20388
20389 fn is_empty_element(&self) -> bool {
20390 if !self.n.is_empty() {
20391 return false;
20392 }
20393 #[cfg(feature = "extra-children")]
20394 if !self.extra_children.is_empty() {
20395 return false;
20396 }
20397 true
20398 }
20399}
20400
20401impl ToXml for CTMdxMemeberProp {
20402 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
20403 #[allow(unused_mut)]
20404 let mut start = start;
20405 {
20406 let val = &self.n;
20407 {
20408 let s = val.to_string();
20409 start.push_attribute(("n", s.as_str()));
20410 }
20411 }
20412 {
20413 let val = &self.np;
20414 {
20415 let s = val.to_string();
20416 start.push_attribute(("np", s.as_str()));
20417 }
20418 }
20419 #[cfg(feature = "extra-attrs")]
20420 for (key, value) in &self.extra_attrs {
20421 start.push_attribute((key.as_str(), value.as_str()));
20422 }
20423 start
20424 }
20425
20426 fn is_empty_element(&self) -> bool {
20427 true
20428 }
20429}
20430
20431impl ToXml for CTMdxKPI {
20432 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
20433 #[allow(unused_mut)]
20434 let mut start = start;
20435 {
20436 let val = &self.n;
20437 {
20438 let s = val.to_string();
20439 start.push_attribute(("n", s.as_str()));
20440 }
20441 }
20442 {
20443 let val = &self.np;
20444 {
20445 let s = val.to_string();
20446 start.push_attribute(("np", s.as_str()));
20447 }
20448 }
20449 {
20450 let val = &self.p;
20451 {
20452 let s = val.to_string();
20453 start.push_attribute(("p", s.as_str()));
20454 }
20455 }
20456 #[cfg(feature = "extra-attrs")]
20457 for (key, value) in &self.extra_attrs {
20458 start.push_attribute((key.as_str(), value.as_str()));
20459 }
20460 start
20461 }
20462
20463 fn is_empty_element(&self) -> bool {
20464 true
20465 }
20466}
20467
20468impl ToXml for CTMetadataStringIndex {
20469 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
20470 #[allow(unused_mut)]
20471 let mut start = start;
20472 {
20473 let val = &self.x;
20474 {
20475 let s = val.to_string();
20476 start.push_attribute(("x", s.as_str()));
20477 }
20478 }
20479 if let Some(ref val) = self.style_index {
20480 start.push_attribute(("s", if *val { "1" } else { "0" }));
20481 }
20482 #[cfg(feature = "extra-attrs")]
20483 for (key, value) in &self.extra_attrs {
20484 start.push_attribute((key.as_str(), value.as_str()));
20485 }
20486 start
20487 }
20488
20489 fn is_empty_element(&self) -> bool {
20490 true
20491 }
20492}
20493
20494impl ToXml for MetadataStrings {
20495 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
20496 #[allow(unused_mut)]
20497 let mut start = start;
20498 if let Some(ref val) = self.count {
20499 {
20500 let s = val.to_string();
20501 start.push_attribute(("count", s.as_str()));
20502 }
20503 }
20504 #[cfg(feature = "extra-attrs")]
20505 for (key, value) in &self.extra_attrs {
20506 start.push_attribute((key.as_str(), value.as_str()));
20507 }
20508 start
20509 }
20510
20511 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
20512 #[cfg(feature = "extra-children")]
20513 let mut extra_iter = self.extra_children.iter().peekable();
20514 #[cfg(feature = "extra-children")]
20515 let mut emit_idx: usize = 0;
20516 for item in &self.style_index {
20517 #[cfg(feature = "extra-children")]
20518 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20519 extra_iter
20520 .next()
20521 .unwrap()
20522 .node
20523 .write_to(writer)
20524 .map_err(SerializeError::from)?;
20525 }
20526 item.write_element("s", writer)?;
20527 #[cfg(feature = "extra-children")]
20528 {
20529 emit_idx += 1;
20530 }
20531 }
20532 #[cfg(feature = "extra-children")]
20533 for extra in extra_iter {
20534 extra.node.write_to(writer).map_err(SerializeError::from)?;
20535 }
20536 Ok(())
20537 }
20538
20539 fn is_empty_element(&self) -> bool {
20540 if !self.style_index.is_empty() {
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 SingleXmlCells {
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 for item in &self.single_xml_cell {
20558 #[cfg(feature = "extra-children")]
20559 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20560 extra_iter
20561 .next()
20562 .unwrap()
20563 .node
20564 .write_to(writer)
20565 .map_err(SerializeError::from)?;
20566 }
20567 item.write_element("singleXmlCell", writer)?;
20568 #[cfg(feature = "extra-children")]
20569 {
20570 emit_idx += 1;
20571 }
20572 }
20573 #[cfg(feature = "extra-children")]
20574 for extra in extra_iter {
20575 extra.node.write_to(writer).map_err(SerializeError::from)?;
20576 }
20577 Ok(())
20578 }
20579
20580 fn is_empty_element(&self) -> bool {
20581 if !self.single_xml_cell.is_empty() {
20582 return false;
20583 }
20584 #[cfg(feature = "extra-children")]
20585 if !self.extra_children.is_empty() {
20586 return false;
20587 }
20588 true
20589 }
20590}
20591
20592impl ToXml for SingleXmlCell {
20593 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
20594 #[allow(unused_mut)]
20595 let mut start = start;
20596 {
20597 let val = &self.id;
20598 {
20599 let s = val.to_string();
20600 start.push_attribute(("id", s.as_str()));
20601 }
20602 }
20603 {
20604 let val = &self.reference;
20605 start.push_attribute(("r", val.as_str()));
20606 }
20607 {
20608 let val = &self.connection_id;
20609 {
20610 let s = val.to_string();
20611 start.push_attribute(("connectionId", s.as_str()));
20612 }
20613 }
20614 #[cfg(feature = "extra-attrs")]
20615 for (key, value) in &self.extra_attrs {
20616 start.push_attribute((key.as_str(), value.as_str()));
20617 }
20618 start
20619 }
20620
20621 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
20622 #[cfg(feature = "extra-children")]
20623 let mut extra_iter = self.extra_children.iter().peekable();
20624 #[cfg(feature = "extra-children")]
20625 let mut emit_idx: usize = 0;
20626 #[cfg(feature = "extra-children")]
20627 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20628 extra_iter
20629 .next()
20630 .unwrap()
20631 .node
20632 .write_to(writer)
20633 .map_err(SerializeError::from)?;
20634 }
20635 {
20636 let val = &self.xml_cell_pr;
20637 val.write_element("xmlCellPr", writer)?;
20638 }
20639 #[cfg(feature = "extra-children")]
20640 {
20641 emit_idx += 1;
20642 }
20643 #[cfg(feature = "extra-children")]
20644 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20645 extra_iter
20646 .next()
20647 .unwrap()
20648 .node
20649 .write_to(writer)
20650 .map_err(SerializeError::from)?;
20651 }
20652 if let Some(ref val) = self.extension_list {
20653 val.write_element("extLst", writer)?;
20654 }
20655 #[cfg(feature = "extra-children")]
20656 {
20657 emit_idx += 1;
20658 }
20659 #[cfg(feature = "extra-children")]
20660 for extra in extra_iter {
20661 extra.node.write_to(writer).map_err(SerializeError::from)?;
20662 }
20663 Ok(())
20664 }
20665
20666 fn is_empty_element(&self) -> bool {
20667 false
20668 }
20669}
20670
20671impl ToXml for XmlCellProperties {
20672 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
20673 #[allow(unused_mut)]
20674 let mut start = start;
20675 {
20676 let val = &self.id;
20677 {
20678 let s = val.to_string();
20679 start.push_attribute(("id", s.as_str()));
20680 }
20681 }
20682 if let Some(ref val) = self.unique_name {
20683 start.push_attribute(("uniqueName", val.as_str()));
20684 }
20685 #[cfg(feature = "extra-attrs")]
20686 for (key, value) in &self.extra_attrs {
20687 start.push_attribute((key.as_str(), value.as_str()));
20688 }
20689 start
20690 }
20691
20692 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
20693 #[cfg(feature = "extra-children")]
20694 let mut extra_iter = self.extra_children.iter().peekable();
20695 #[cfg(feature = "extra-children")]
20696 let mut emit_idx: usize = 0;
20697 #[cfg(feature = "extra-children")]
20698 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20699 extra_iter
20700 .next()
20701 .unwrap()
20702 .node
20703 .write_to(writer)
20704 .map_err(SerializeError::from)?;
20705 }
20706 {
20707 let val = &self.xml_pr;
20708 val.write_element("xmlPr", writer)?;
20709 }
20710 #[cfg(feature = "extra-children")]
20711 {
20712 emit_idx += 1;
20713 }
20714 #[cfg(feature = "extra-children")]
20715 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20716 extra_iter
20717 .next()
20718 .unwrap()
20719 .node
20720 .write_to(writer)
20721 .map_err(SerializeError::from)?;
20722 }
20723 if let Some(ref val) = self.extension_list {
20724 val.write_element("extLst", writer)?;
20725 }
20726 #[cfg(feature = "extra-children")]
20727 {
20728 emit_idx += 1;
20729 }
20730 #[cfg(feature = "extra-children")]
20731 for extra in extra_iter {
20732 extra.node.write_to(writer).map_err(SerializeError::from)?;
20733 }
20734 Ok(())
20735 }
20736
20737 fn is_empty_element(&self) -> bool {
20738 false
20739 }
20740}
20741
20742impl ToXml for XmlProperties {
20743 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
20744 #[allow(unused_mut)]
20745 let mut start = start;
20746 {
20747 let val = &self.map_id;
20748 {
20749 let s = val.to_string();
20750 start.push_attribute(("mapId", s.as_str()));
20751 }
20752 }
20753 {
20754 let val = &self.xpath;
20755 start.push_attribute(("xpath", val.as_str()));
20756 }
20757 {
20758 let val = &self.xml_data_type;
20759 start.push_attribute(("xmlDataType", val.as_str()));
20760 }
20761 #[cfg(feature = "extra-attrs")]
20762 for (key, value) in &self.extra_attrs {
20763 start.push_attribute((key.as_str(), value.as_str()));
20764 }
20765 start
20766 }
20767
20768 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
20769 #[cfg(feature = "extra-children")]
20770 let mut extra_iter = self.extra_children.iter().peekable();
20771 #[cfg(feature = "extra-children")]
20772 let mut emit_idx: usize = 0;
20773 #[cfg(feature = "extra-children")]
20774 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20775 extra_iter
20776 .next()
20777 .unwrap()
20778 .node
20779 .write_to(writer)
20780 .map_err(SerializeError::from)?;
20781 }
20782 if let Some(ref val) = self.extension_list {
20783 val.write_element("extLst", writer)?;
20784 }
20785 #[cfg(feature = "extra-children")]
20786 {
20787 emit_idx += 1;
20788 }
20789 #[cfg(feature = "extra-children")]
20790 for extra in extra_iter {
20791 extra.node.write_to(writer).map_err(SerializeError::from)?;
20792 }
20793 Ok(())
20794 }
20795
20796 fn is_empty_element(&self) -> bool {
20797 if self.extension_list.is_some() {
20798 return false;
20799 }
20800 #[cfg(feature = "extra-children")]
20801 if !self.extra_children.is_empty() {
20802 return false;
20803 }
20804 true
20805 }
20806}
20807
20808impl ToXml for Stylesheet {
20809 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
20810 #[cfg(feature = "extra-children")]
20811 let mut extra_iter = self.extra_children.iter().peekable();
20812 #[cfg(feature = "extra-children")]
20813 let mut emit_idx: usize = 0;
20814 #[cfg(feature = "extra-children")]
20815 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20816 extra_iter
20817 .next()
20818 .unwrap()
20819 .node
20820 .write_to(writer)
20821 .map_err(SerializeError::from)?;
20822 }
20823 #[cfg(feature = "sml-styling")]
20824 if let Some(ref val) = self.num_fmts {
20825 val.write_element("numFmts", writer)?;
20826 }
20827 #[cfg(feature = "extra-children")]
20828 {
20829 emit_idx += 1;
20830 }
20831 #[cfg(feature = "extra-children")]
20832 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20833 extra_iter
20834 .next()
20835 .unwrap()
20836 .node
20837 .write_to(writer)
20838 .map_err(SerializeError::from)?;
20839 }
20840 #[cfg(feature = "sml-styling")]
20841 if let Some(ref val) = self.fonts {
20842 val.write_element("fonts", writer)?;
20843 }
20844 #[cfg(feature = "extra-children")]
20845 {
20846 emit_idx += 1;
20847 }
20848 #[cfg(feature = "extra-children")]
20849 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20850 extra_iter
20851 .next()
20852 .unwrap()
20853 .node
20854 .write_to(writer)
20855 .map_err(SerializeError::from)?;
20856 }
20857 #[cfg(feature = "sml-styling")]
20858 if let Some(ref val) = self.fills {
20859 val.write_element("fills", writer)?;
20860 }
20861 #[cfg(feature = "extra-children")]
20862 {
20863 emit_idx += 1;
20864 }
20865 #[cfg(feature = "extra-children")]
20866 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20867 extra_iter
20868 .next()
20869 .unwrap()
20870 .node
20871 .write_to(writer)
20872 .map_err(SerializeError::from)?;
20873 }
20874 #[cfg(feature = "sml-styling")]
20875 if let Some(ref val) = self.borders {
20876 val.write_element("borders", writer)?;
20877 }
20878 #[cfg(feature = "extra-children")]
20879 {
20880 emit_idx += 1;
20881 }
20882 #[cfg(feature = "extra-children")]
20883 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20884 extra_iter
20885 .next()
20886 .unwrap()
20887 .node
20888 .write_to(writer)
20889 .map_err(SerializeError::from)?;
20890 }
20891 #[cfg(feature = "sml-styling")]
20892 if let Some(ref val) = self.cell_style_xfs {
20893 val.write_element("cellStyleXfs", writer)?;
20894 }
20895 #[cfg(feature = "extra-children")]
20896 {
20897 emit_idx += 1;
20898 }
20899 #[cfg(feature = "extra-children")]
20900 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20901 extra_iter
20902 .next()
20903 .unwrap()
20904 .node
20905 .write_to(writer)
20906 .map_err(SerializeError::from)?;
20907 }
20908 #[cfg(feature = "sml-styling")]
20909 if let Some(ref val) = self.cell_xfs {
20910 val.write_element("cellXfs", writer)?;
20911 }
20912 #[cfg(feature = "extra-children")]
20913 {
20914 emit_idx += 1;
20915 }
20916 #[cfg(feature = "extra-children")]
20917 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20918 extra_iter
20919 .next()
20920 .unwrap()
20921 .node
20922 .write_to(writer)
20923 .map_err(SerializeError::from)?;
20924 }
20925 #[cfg(feature = "sml-styling")]
20926 if let Some(ref val) = self.cell_styles {
20927 val.write_element("cellStyles", writer)?;
20928 }
20929 #[cfg(feature = "extra-children")]
20930 {
20931 emit_idx += 1;
20932 }
20933 #[cfg(feature = "extra-children")]
20934 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20935 extra_iter
20936 .next()
20937 .unwrap()
20938 .node
20939 .write_to(writer)
20940 .map_err(SerializeError::from)?;
20941 }
20942 #[cfg(feature = "sml-styling")]
20943 if let Some(ref val) = self.dxfs {
20944 val.write_element("dxfs", writer)?;
20945 }
20946 #[cfg(feature = "extra-children")]
20947 {
20948 emit_idx += 1;
20949 }
20950 #[cfg(feature = "extra-children")]
20951 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20952 extra_iter
20953 .next()
20954 .unwrap()
20955 .node
20956 .write_to(writer)
20957 .map_err(SerializeError::from)?;
20958 }
20959 #[cfg(feature = "sml-styling")]
20960 if let Some(ref val) = self.table_styles {
20961 val.write_element("tableStyles", writer)?;
20962 }
20963 #[cfg(feature = "extra-children")]
20964 {
20965 emit_idx += 1;
20966 }
20967 #[cfg(feature = "extra-children")]
20968 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20969 extra_iter
20970 .next()
20971 .unwrap()
20972 .node
20973 .write_to(writer)
20974 .map_err(SerializeError::from)?;
20975 }
20976 #[cfg(feature = "sml-styling")]
20977 if let Some(ref val) = self.colors {
20978 val.write_element("colors", writer)?;
20979 }
20980 #[cfg(feature = "extra-children")]
20981 {
20982 emit_idx += 1;
20983 }
20984 #[cfg(feature = "extra-children")]
20985 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
20986 extra_iter
20987 .next()
20988 .unwrap()
20989 .node
20990 .write_to(writer)
20991 .map_err(SerializeError::from)?;
20992 }
20993 #[cfg(feature = "sml-extensions")]
20994 if let Some(ref val) = self.extension_list {
20995 val.write_element("extLst", writer)?;
20996 }
20997 #[cfg(feature = "extra-children")]
20998 {
20999 emit_idx += 1;
21000 }
21001 #[cfg(feature = "extra-children")]
21002 for extra in extra_iter {
21003 extra.node.write_to(writer).map_err(SerializeError::from)?;
21004 }
21005 Ok(())
21006 }
21007
21008 fn is_empty_element(&self) -> bool {
21009 #[cfg(feature = "sml-styling")]
21010 if self.num_fmts.is_some() {
21011 return false;
21012 }
21013 #[cfg(feature = "sml-styling")]
21014 if self.fonts.is_some() {
21015 return false;
21016 }
21017 #[cfg(feature = "sml-styling")]
21018 if self.fills.is_some() {
21019 return false;
21020 }
21021 #[cfg(feature = "sml-styling")]
21022 if self.borders.is_some() {
21023 return false;
21024 }
21025 #[cfg(feature = "sml-styling")]
21026 if self.cell_style_xfs.is_some() {
21027 return false;
21028 }
21029 #[cfg(feature = "sml-styling")]
21030 if self.cell_xfs.is_some() {
21031 return false;
21032 }
21033 #[cfg(feature = "sml-styling")]
21034 if self.cell_styles.is_some() {
21035 return false;
21036 }
21037 #[cfg(feature = "sml-styling")]
21038 if self.dxfs.is_some() {
21039 return false;
21040 }
21041 #[cfg(feature = "sml-styling")]
21042 if self.table_styles.is_some() {
21043 return false;
21044 }
21045 #[cfg(feature = "sml-styling")]
21046 if self.colors.is_some() {
21047 return false;
21048 }
21049 #[cfg(feature = "sml-extensions")]
21050 if self.extension_list.is_some() {
21051 return false;
21052 }
21053 #[cfg(feature = "extra-children")]
21054 if !self.extra_children.is_empty() {
21055 return false;
21056 }
21057 true
21058 }
21059}
21060
21061impl ToXml for CellAlignment {
21062 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
21063 #[allow(unused_mut)]
21064 let mut start = start;
21065 #[cfg(feature = "sml-styling")]
21066 if let Some(ref val) = self.horizontal {
21067 {
21068 let s = val.to_string();
21069 start.push_attribute(("horizontal", s.as_str()));
21070 }
21071 }
21072 #[cfg(feature = "sml-styling")]
21073 if let Some(ref val) = self.vertical {
21074 {
21075 let s = val.to_string();
21076 start.push_attribute(("vertical", s.as_str()));
21077 }
21078 }
21079 #[cfg(feature = "sml-styling")]
21080 if let Some(ref val) = self.text_rotation {
21081 {
21082 let s = val.to_string();
21083 start.push_attribute(("textRotation", s.as_str()));
21084 }
21085 }
21086 #[cfg(feature = "sml-styling")]
21087 if let Some(ref val) = self.wrap_text {
21088 start.push_attribute(("wrapText", if *val { "1" } else { "0" }));
21089 }
21090 #[cfg(feature = "sml-styling")]
21091 if let Some(ref val) = self.indent {
21092 {
21093 let s = val.to_string();
21094 start.push_attribute(("indent", s.as_str()));
21095 }
21096 }
21097 #[cfg(feature = "sml-styling")]
21098 if let Some(ref val) = self.relative_indent {
21099 {
21100 let s = val.to_string();
21101 start.push_attribute(("relativeIndent", s.as_str()));
21102 }
21103 }
21104 #[cfg(feature = "sml-styling")]
21105 if let Some(ref val) = self.justify_last_line {
21106 start.push_attribute(("justifyLastLine", if *val { "1" } else { "0" }));
21107 }
21108 #[cfg(feature = "sml-styling")]
21109 if let Some(ref val) = self.shrink_to_fit {
21110 start.push_attribute(("shrinkToFit", if *val { "1" } else { "0" }));
21111 }
21112 #[cfg(feature = "sml-styling")]
21113 if let Some(ref val) = self.reading_order {
21114 {
21115 let s = val.to_string();
21116 start.push_attribute(("readingOrder", s.as_str()));
21117 }
21118 }
21119 #[cfg(feature = "extra-attrs")]
21120 for (key, value) in &self.extra_attrs {
21121 start.push_attribute((key.as_str(), value.as_str()));
21122 }
21123 start
21124 }
21125
21126 fn is_empty_element(&self) -> bool {
21127 true
21128 }
21129}
21130
21131impl ToXml for Borders {
21132 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
21133 #[allow(unused_mut)]
21134 let mut start = start;
21135 if let Some(ref val) = self.count {
21136 {
21137 let s = val.to_string();
21138 start.push_attribute(("count", s.as_str()));
21139 }
21140 }
21141 #[cfg(feature = "extra-attrs")]
21142 for (key, value) in &self.extra_attrs {
21143 start.push_attribute((key.as_str(), value.as_str()));
21144 }
21145 start
21146 }
21147
21148 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
21149 #[cfg(feature = "extra-children")]
21150 let mut extra_iter = self.extra_children.iter().peekable();
21151 #[cfg(feature = "extra-children")]
21152 let mut emit_idx: usize = 0;
21153 for item in &self.border {
21154 #[cfg(feature = "extra-children")]
21155 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21156 extra_iter
21157 .next()
21158 .unwrap()
21159 .node
21160 .write_to(writer)
21161 .map_err(SerializeError::from)?;
21162 }
21163 item.write_element("border", writer)?;
21164 #[cfg(feature = "extra-children")]
21165 {
21166 emit_idx += 1;
21167 }
21168 }
21169 #[cfg(feature = "extra-children")]
21170 for extra in extra_iter {
21171 extra.node.write_to(writer).map_err(SerializeError::from)?;
21172 }
21173 Ok(())
21174 }
21175
21176 fn is_empty_element(&self) -> bool {
21177 if !self.border.is_empty() {
21178 return false;
21179 }
21180 #[cfg(feature = "extra-children")]
21181 if !self.extra_children.is_empty() {
21182 return false;
21183 }
21184 true
21185 }
21186}
21187
21188impl ToXml for Border {
21189 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
21190 #[allow(unused_mut)]
21191 let mut start = start;
21192 #[cfg(feature = "sml-styling")]
21193 if let Some(ref val) = self.diagonal_up {
21194 start.push_attribute(("diagonalUp", if *val { "1" } else { "0" }));
21195 }
21196 #[cfg(feature = "sml-styling")]
21197 if let Some(ref val) = self.diagonal_down {
21198 start.push_attribute(("diagonalDown", if *val { "1" } else { "0" }));
21199 }
21200 #[cfg(feature = "sml-styling")]
21201 if let Some(ref val) = self.outline {
21202 start.push_attribute(("outline", if *val { "1" } else { "0" }));
21203 }
21204 #[cfg(feature = "extra-attrs")]
21205 for (key, value) in &self.extra_attrs {
21206 start.push_attribute((key.as_str(), value.as_str()));
21207 }
21208 start
21209 }
21210
21211 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
21212 #[cfg(feature = "extra-children")]
21213 let mut extra_iter = self.extra_children.iter().peekable();
21214 #[cfg(feature = "extra-children")]
21215 let mut emit_idx: usize = 0;
21216 #[cfg(feature = "extra-children")]
21217 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21218 extra_iter
21219 .next()
21220 .unwrap()
21221 .node
21222 .write_to(writer)
21223 .map_err(SerializeError::from)?;
21224 }
21225 if let Some(ref val) = self.start {
21226 val.write_element("start", writer)?;
21227 }
21228 #[cfg(feature = "extra-children")]
21229 {
21230 emit_idx += 1;
21231 }
21232 #[cfg(feature = "extra-children")]
21233 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21234 extra_iter
21235 .next()
21236 .unwrap()
21237 .node
21238 .write_to(writer)
21239 .map_err(SerializeError::from)?;
21240 }
21241 if let Some(ref val) = self.end {
21242 val.write_element("end", writer)?;
21243 }
21244 #[cfg(feature = "extra-children")]
21245 {
21246 emit_idx += 1;
21247 }
21248 #[cfg(feature = "extra-children")]
21249 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21250 extra_iter
21251 .next()
21252 .unwrap()
21253 .node
21254 .write_to(writer)
21255 .map_err(SerializeError::from)?;
21256 }
21257 #[cfg(feature = "sml-styling")]
21258 if let Some(ref val) = self.left {
21259 val.write_element("left", writer)?;
21260 }
21261 #[cfg(feature = "extra-children")]
21262 {
21263 emit_idx += 1;
21264 }
21265 #[cfg(feature = "extra-children")]
21266 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21267 extra_iter
21268 .next()
21269 .unwrap()
21270 .node
21271 .write_to(writer)
21272 .map_err(SerializeError::from)?;
21273 }
21274 #[cfg(feature = "sml-styling")]
21275 if let Some(ref val) = self.right {
21276 val.write_element("right", writer)?;
21277 }
21278 #[cfg(feature = "extra-children")]
21279 {
21280 emit_idx += 1;
21281 }
21282 #[cfg(feature = "extra-children")]
21283 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21284 extra_iter
21285 .next()
21286 .unwrap()
21287 .node
21288 .write_to(writer)
21289 .map_err(SerializeError::from)?;
21290 }
21291 #[cfg(feature = "sml-styling")]
21292 if let Some(ref val) = self.top {
21293 val.write_element("top", writer)?;
21294 }
21295 #[cfg(feature = "extra-children")]
21296 {
21297 emit_idx += 1;
21298 }
21299 #[cfg(feature = "extra-children")]
21300 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21301 extra_iter
21302 .next()
21303 .unwrap()
21304 .node
21305 .write_to(writer)
21306 .map_err(SerializeError::from)?;
21307 }
21308 #[cfg(feature = "sml-styling")]
21309 if let Some(ref val) = self.bottom {
21310 val.write_element("bottom", writer)?;
21311 }
21312 #[cfg(feature = "extra-children")]
21313 {
21314 emit_idx += 1;
21315 }
21316 #[cfg(feature = "extra-children")]
21317 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21318 extra_iter
21319 .next()
21320 .unwrap()
21321 .node
21322 .write_to(writer)
21323 .map_err(SerializeError::from)?;
21324 }
21325 #[cfg(feature = "sml-styling")]
21326 if let Some(ref val) = self.diagonal {
21327 val.write_element("diagonal", writer)?;
21328 }
21329 #[cfg(feature = "extra-children")]
21330 {
21331 emit_idx += 1;
21332 }
21333 #[cfg(feature = "extra-children")]
21334 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21335 extra_iter
21336 .next()
21337 .unwrap()
21338 .node
21339 .write_to(writer)
21340 .map_err(SerializeError::from)?;
21341 }
21342 #[cfg(feature = "sml-styling")]
21343 if let Some(ref val) = self.vertical {
21344 val.write_element("vertical", writer)?;
21345 }
21346 #[cfg(feature = "extra-children")]
21347 {
21348 emit_idx += 1;
21349 }
21350 #[cfg(feature = "extra-children")]
21351 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21352 extra_iter
21353 .next()
21354 .unwrap()
21355 .node
21356 .write_to(writer)
21357 .map_err(SerializeError::from)?;
21358 }
21359 #[cfg(feature = "sml-styling")]
21360 if let Some(ref val) = self.horizontal {
21361 val.write_element("horizontal", writer)?;
21362 }
21363 #[cfg(feature = "extra-children")]
21364 {
21365 emit_idx += 1;
21366 }
21367 #[cfg(feature = "extra-children")]
21368 for extra in extra_iter {
21369 extra.node.write_to(writer).map_err(SerializeError::from)?;
21370 }
21371 Ok(())
21372 }
21373
21374 fn is_empty_element(&self) -> bool {
21375 if self.start.is_some() {
21376 return false;
21377 }
21378 if self.end.is_some() {
21379 return false;
21380 }
21381 #[cfg(feature = "sml-styling")]
21382 if self.left.is_some() {
21383 return false;
21384 }
21385 #[cfg(feature = "sml-styling")]
21386 if self.right.is_some() {
21387 return false;
21388 }
21389 #[cfg(feature = "sml-styling")]
21390 if self.top.is_some() {
21391 return false;
21392 }
21393 #[cfg(feature = "sml-styling")]
21394 if self.bottom.is_some() {
21395 return false;
21396 }
21397 #[cfg(feature = "sml-styling")]
21398 if self.diagonal.is_some() {
21399 return false;
21400 }
21401 #[cfg(feature = "sml-styling")]
21402 if self.vertical.is_some() {
21403 return false;
21404 }
21405 #[cfg(feature = "sml-styling")]
21406 if self.horizontal.is_some() {
21407 return false;
21408 }
21409 #[cfg(feature = "extra-children")]
21410 if !self.extra_children.is_empty() {
21411 return false;
21412 }
21413 true
21414 }
21415}
21416
21417impl ToXml for BorderProperties {
21418 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
21419 #[allow(unused_mut)]
21420 let mut start = start;
21421 if let Some(ref val) = self.style {
21422 {
21423 let s = val.to_string();
21424 start.push_attribute(("style", s.as_str()));
21425 }
21426 }
21427 #[cfg(feature = "extra-attrs")]
21428 for (key, value) in &self.extra_attrs {
21429 start.push_attribute((key.as_str(), value.as_str()));
21430 }
21431 start
21432 }
21433
21434 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
21435 #[cfg(feature = "extra-children")]
21436 let mut extra_iter = self.extra_children.iter().peekable();
21437 #[cfg(feature = "extra-children")]
21438 let mut emit_idx: usize = 0;
21439 #[cfg(feature = "extra-children")]
21440 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21441 extra_iter
21442 .next()
21443 .unwrap()
21444 .node
21445 .write_to(writer)
21446 .map_err(SerializeError::from)?;
21447 }
21448 if let Some(ref val) = self.color {
21449 val.write_element("color", writer)?;
21450 }
21451 #[cfg(feature = "extra-children")]
21452 {
21453 emit_idx += 1;
21454 }
21455 #[cfg(feature = "extra-children")]
21456 for extra in extra_iter {
21457 extra.node.write_to(writer).map_err(SerializeError::from)?;
21458 }
21459 Ok(())
21460 }
21461
21462 fn is_empty_element(&self) -> bool {
21463 if self.color.is_some() {
21464 return false;
21465 }
21466 #[cfg(feature = "extra-children")]
21467 if !self.extra_children.is_empty() {
21468 return false;
21469 }
21470 true
21471 }
21472}
21473
21474impl ToXml for CellProtection {
21475 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
21476 #[allow(unused_mut)]
21477 let mut start = start;
21478 #[cfg(feature = "sml-protection")]
21479 if let Some(ref val) = self.locked {
21480 start.push_attribute(("locked", if *val { "1" } else { "0" }));
21481 }
21482 #[cfg(feature = "sml-protection")]
21483 if let Some(ref val) = self.hidden {
21484 start.push_attribute(("hidden", if *val { "1" } else { "0" }));
21485 }
21486 #[cfg(feature = "extra-attrs")]
21487 for (key, value) in &self.extra_attrs {
21488 start.push_attribute((key.as_str(), value.as_str()));
21489 }
21490 start
21491 }
21492
21493 fn is_empty_element(&self) -> bool {
21494 true
21495 }
21496}
21497
21498impl ToXml for Fonts {
21499 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
21500 #[allow(unused_mut)]
21501 let mut start = start;
21502 if let Some(ref val) = self.count {
21503 {
21504 let s = val.to_string();
21505 start.push_attribute(("count", s.as_str()));
21506 }
21507 }
21508 #[cfg(feature = "extra-attrs")]
21509 for (key, value) in &self.extra_attrs {
21510 start.push_attribute((key.as_str(), value.as_str()));
21511 }
21512 start
21513 }
21514
21515 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
21516 #[cfg(feature = "extra-children")]
21517 let mut extra_iter = self.extra_children.iter().peekable();
21518 #[cfg(feature = "extra-children")]
21519 let mut emit_idx: usize = 0;
21520 for item in &self.font {
21521 #[cfg(feature = "extra-children")]
21522 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21523 extra_iter
21524 .next()
21525 .unwrap()
21526 .node
21527 .write_to(writer)
21528 .map_err(SerializeError::from)?;
21529 }
21530 item.write_element("font", writer)?;
21531 #[cfg(feature = "extra-children")]
21532 {
21533 emit_idx += 1;
21534 }
21535 }
21536 #[cfg(feature = "extra-children")]
21537 for extra in extra_iter {
21538 extra.node.write_to(writer).map_err(SerializeError::from)?;
21539 }
21540 Ok(())
21541 }
21542
21543 fn is_empty_element(&self) -> bool {
21544 if !self.font.is_empty() {
21545 return false;
21546 }
21547 #[cfg(feature = "extra-children")]
21548 if !self.extra_children.is_empty() {
21549 return false;
21550 }
21551 true
21552 }
21553}
21554
21555impl ToXml for Fills {
21556 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
21557 #[allow(unused_mut)]
21558 let mut start = start;
21559 if let Some(ref val) = self.count {
21560 {
21561 let s = val.to_string();
21562 start.push_attribute(("count", s.as_str()));
21563 }
21564 }
21565 #[cfg(feature = "extra-attrs")]
21566 for (key, value) in &self.extra_attrs {
21567 start.push_attribute((key.as_str(), value.as_str()));
21568 }
21569 start
21570 }
21571
21572 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
21573 #[cfg(feature = "extra-children")]
21574 let mut extra_iter = self.extra_children.iter().peekable();
21575 #[cfg(feature = "extra-children")]
21576 let mut emit_idx: usize = 0;
21577 for item in &self.fill {
21578 #[cfg(feature = "extra-children")]
21579 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21580 extra_iter
21581 .next()
21582 .unwrap()
21583 .node
21584 .write_to(writer)
21585 .map_err(SerializeError::from)?;
21586 }
21587 item.write_element("fill", writer)?;
21588 #[cfg(feature = "extra-children")]
21589 {
21590 emit_idx += 1;
21591 }
21592 }
21593 #[cfg(feature = "extra-children")]
21594 for extra in extra_iter {
21595 extra.node.write_to(writer).map_err(SerializeError::from)?;
21596 }
21597 Ok(())
21598 }
21599
21600 fn is_empty_element(&self) -> bool {
21601 if !self.fill.is_empty() {
21602 return false;
21603 }
21604 #[cfg(feature = "extra-children")]
21605 if !self.extra_children.is_empty() {
21606 return false;
21607 }
21608 true
21609 }
21610}
21611
21612impl ToXml for Fill {
21613 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
21614 #[cfg(feature = "extra-children")]
21615 let mut extra_iter = self.extra_children.iter().peekable();
21616 #[cfg(feature = "extra-children")]
21617 let mut emit_idx: usize = 0;
21618 #[cfg(feature = "extra-children")]
21619 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21620 extra_iter
21621 .next()
21622 .unwrap()
21623 .node
21624 .write_to(writer)
21625 .map_err(SerializeError::from)?;
21626 }
21627 #[cfg(feature = "sml-styling")]
21628 if let Some(ref val) = self.pattern_fill {
21629 val.write_element("patternFill", writer)?;
21630 }
21631 #[cfg(feature = "extra-children")]
21632 {
21633 emit_idx += 1;
21634 }
21635 #[cfg(feature = "extra-children")]
21636 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21637 extra_iter
21638 .next()
21639 .unwrap()
21640 .node
21641 .write_to(writer)
21642 .map_err(SerializeError::from)?;
21643 }
21644 #[cfg(feature = "sml-styling")]
21645 if let Some(ref val) = self.gradient_fill {
21646 val.write_element("gradientFill", writer)?;
21647 }
21648 #[cfg(feature = "extra-children")]
21649 {
21650 emit_idx += 1;
21651 }
21652 #[cfg(feature = "extra-children")]
21653 for extra in extra_iter {
21654 extra.node.write_to(writer).map_err(SerializeError::from)?;
21655 }
21656 Ok(())
21657 }
21658
21659 fn is_empty_element(&self) -> bool {
21660 #[cfg(feature = "sml-styling")]
21661 if self.pattern_fill.is_some() {
21662 return false;
21663 }
21664 #[cfg(feature = "sml-styling")]
21665 if self.gradient_fill.is_some() {
21666 return false;
21667 }
21668 #[cfg(feature = "extra-children")]
21669 if !self.extra_children.is_empty() {
21670 return false;
21671 }
21672 true
21673 }
21674}
21675
21676impl ToXml for PatternFill {
21677 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
21678 #[allow(unused_mut)]
21679 let mut start = start;
21680 if let Some(ref val) = self.pattern_type {
21681 {
21682 let s = val.to_string();
21683 start.push_attribute(("patternType", s.as_str()));
21684 }
21685 }
21686 #[cfg(feature = "extra-attrs")]
21687 for (key, value) in &self.extra_attrs {
21688 start.push_attribute((key.as_str(), value.as_str()));
21689 }
21690 start
21691 }
21692
21693 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
21694 #[cfg(feature = "extra-children")]
21695 let mut extra_iter = self.extra_children.iter().peekable();
21696 #[cfg(feature = "extra-children")]
21697 let mut emit_idx: usize = 0;
21698 #[cfg(feature = "extra-children")]
21699 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21700 extra_iter
21701 .next()
21702 .unwrap()
21703 .node
21704 .write_to(writer)
21705 .map_err(SerializeError::from)?;
21706 }
21707 if let Some(ref val) = self.fg_color {
21708 val.write_element("fgColor", writer)?;
21709 }
21710 #[cfg(feature = "extra-children")]
21711 {
21712 emit_idx += 1;
21713 }
21714 #[cfg(feature = "extra-children")]
21715 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21716 extra_iter
21717 .next()
21718 .unwrap()
21719 .node
21720 .write_to(writer)
21721 .map_err(SerializeError::from)?;
21722 }
21723 if let Some(ref val) = self.bg_color {
21724 val.write_element("bgColor", writer)?;
21725 }
21726 #[cfg(feature = "extra-children")]
21727 {
21728 emit_idx += 1;
21729 }
21730 #[cfg(feature = "extra-children")]
21731 for extra in extra_iter {
21732 extra.node.write_to(writer).map_err(SerializeError::from)?;
21733 }
21734 Ok(())
21735 }
21736
21737 fn is_empty_element(&self) -> bool {
21738 if self.fg_color.is_some() {
21739 return false;
21740 }
21741 if self.bg_color.is_some() {
21742 return false;
21743 }
21744 #[cfg(feature = "extra-children")]
21745 if !self.extra_children.is_empty() {
21746 return false;
21747 }
21748 true
21749 }
21750}
21751
21752impl ToXml for Color {
21753 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
21754 #[allow(unused_mut)]
21755 let mut start = start;
21756 #[cfg(feature = "sml-styling")]
21757 if let Some(ref val) = self.auto {
21758 start.push_attribute(("auto", if *val { "1" } else { "0" }));
21759 }
21760 #[cfg(feature = "sml-styling")]
21761 if let Some(ref val) = self.indexed {
21762 {
21763 let s = val.to_string();
21764 start.push_attribute(("indexed", s.as_str()));
21765 }
21766 }
21767 #[cfg(feature = "sml-styling")]
21768 if let Some(ref val) = self.rgb {
21769 {
21770 let hex = encode_hex(val);
21771 start.push_attribute(("rgb", hex.as_str()));
21772 }
21773 }
21774 #[cfg(feature = "sml-styling")]
21775 if let Some(ref val) = self.theme {
21776 {
21777 let s = val.to_string();
21778 start.push_attribute(("theme", s.as_str()));
21779 }
21780 }
21781 #[cfg(feature = "sml-styling")]
21782 if let Some(ref val) = self.tint {
21783 {
21784 let s = val.to_string();
21785 start.push_attribute(("tint", s.as_str()));
21786 }
21787 }
21788 #[cfg(feature = "extra-attrs")]
21789 for (key, value) in &self.extra_attrs {
21790 start.push_attribute((key.as_str(), value.as_str()));
21791 }
21792 start
21793 }
21794
21795 fn is_empty_element(&self) -> bool {
21796 true
21797 }
21798}
21799
21800impl ToXml for GradientFill {
21801 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
21802 #[allow(unused_mut)]
21803 let mut start = start;
21804 if let Some(ref val) = self.r#type {
21805 {
21806 let s = val.to_string();
21807 start.push_attribute(("type", s.as_str()));
21808 }
21809 }
21810 if let Some(ref val) = self.degree {
21811 {
21812 let s = val.to_string();
21813 start.push_attribute(("degree", s.as_str()));
21814 }
21815 }
21816 if let Some(ref val) = self.left {
21817 {
21818 let s = val.to_string();
21819 start.push_attribute(("left", s.as_str()));
21820 }
21821 }
21822 if let Some(ref val) = self.right {
21823 {
21824 let s = val.to_string();
21825 start.push_attribute(("right", s.as_str()));
21826 }
21827 }
21828 if let Some(ref val) = self.top {
21829 {
21830 let s = val.to_string();
21831 start.push_attribute(("top", s.as_str()));
21832 }
21833 }
21834 if let Some(ref val) = self.bottom {
21835 {
21836 let s = val.to_string();
21837 start.push_attribute(("bottom", s.as_str()));
21838 }
21839 }
21840 #[cfg(feature = "extra-attrs")]
21841 for (key, value) in &self.extra_attrs {
21842 start.push_attribute((key.as_str(), value.as_str()));
21843 }
21844 start
21845 }
21846
21847 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
21848 #[cfg(feature = "extra-children")]
21849 let mut extra_iter = self.extra_children.iter().peekable();
21850 #[cfg(feature = "extra-children")]
21851 let mut emit_idx: usize = 0;
21852 for item in &self.stop {
21853 #[cfg(feature = "extra-children")]
21854 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21855 extra_iter
21856 .next()
21857 .unwrap()
21858 .node
21859 .write_to(writer)
21860 .map_err(SerializeError::from)?;
21861 }
21862 item.write_element("stop", writer)?;
21863 #[cfg(feature = "extra-children")]
21864 {
21865 emit_idx += 1;
21866 }
21867 }
21868 #[cfg(feature = "extra-children")]
21869 for extra in extra_iter {
21870 extra.node.write_to(writer).map_err(SerializeError::from)?;
21871 }
21872 Ok(())
21873 }
21874
21875 fn is_empty_element(&self) -> bool {
21876 if !self.stop.is_empty() {
21877 return false;
21878 }
21879 #[cfg(feature = "extra-children")]
21880 if !self.extra_children.is_empty() {
21881 return false;
21882 }
21883 true
21884 }
21885}
21886
21887impl ToXml for GradientStop {
21888 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
21889 #[allow(unused_mut)]
21890 let mut start = start;
21891 {
21892 let val = &self.position;
21893 {
21894 let s = val.to_string();
21895 start.push_attribute(("position", s.as_str()));
21896 }
21897 }
21898 #[cfg(feature = "extra-attrs")]
21899 for (key, value) in &self.extra_attrs {
21900 start.push_attribute((key.as_str(), value.as_str()));
21901 }
21902 start
21903 }
21904
21905 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
21906 #[cfg(feature = "extra-children")]
21907 let mut extra_iter = self.extra_children.iter().peekable();
21908 #[cfg(feature = "extra-children")]
21909 let mut emit_idx: usize = 0;
21910 #[cfg(feature = "extra-children")]
21911 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21912 extra_iter
21913 .next()
21914 .unwrap()
21915 .node
21916 .write_to(writer)
21917 .map_err(SerializeError::from)?;
21918 }
21919 {
21920 let val = &self.color;
21921 val.write_element("color", writer)?;
21922 }
21923 #[cfg(feature = "extra-children")]
21924 {
21925 emit_idx += 1;
21926 }
21927 #[cfg(feature = "extra-children")]
21928 for extra in extra_iter {
21929 extra.node.write_to(writer).map_err(SerializeError::from)?;
21930 }
21931 Ok(())
21932 }
21933
21934 fn is_empty_element(&self) -> bool {
21935 false
21936 }
21937}
21938
21939impl ToXml for NumberFormats {
21940 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
21941 #[allow(unused_mut)]
21942 let mut start = start;
21943 if let Some(ref val) = self.count {
21944 {
21945 let s = val.to_string();
21946 start.push_attribute(("count", s.as_str()));
21947 }
21948 }
21949 #[cfg(feature = "extra-attrs")]
21950 for (key, value) in &self.extra_attrs {
21951 start.push_attribute((key.as_str(), value.as_str()));
21952 }
21953 start
21954 }
21955
21956 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
21957 #[cfg(feature = "extra-children")]
21958 let mut extra_iter = self.extra_children.iter().peekable();
21959 #[cfg(feature = "extra-children")]
21960 let mut emit_idx: usize = 0;
21961 for item in &self.num_fmt {
21962 #[cfg(feature = "extra-children")]
21963 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
21964 extra_iter
21965 .next()
21966 .unwrap()
21967 .node
21968 .write_to(writer)
21969 .map_err(SerializeError::from)?;
21970 }
21971 item.write_element("numFmt", writer)?;
21972 #[cfg(feature = "extra-children")]
21973 {
21974 emit_idx += 1;
21975 }
21976 }
21977 #[cfg(feature = "extra-children")]
21978 for extra in extra_iter {
21979 extra.node.write_to(writer).map_err(SerializeError::from)?;
21980 }
21981 Ok(())
21982 }
21983
21984 fn is_empty_element(&self) -> bool {
21985 if !self.num_fmt.is_empty() {
21986 return false;
21987 }
21988 #[cfg(feature = "extra-children")]
21989 if !self.extra_children.is_empty() {
21990 return false;
21991 }
21992 true
21993 }
21994}
21995
21996impl ToXml for NumberFormat {
21997 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
21998 #[allow(unused_mut)]
21999 let mut start = start;
22000 #[cfg(feature = "sml-styling")]
22001 {
22002 let val = &self.number_format_id;
22003 {
22004 let s = val.to_string();
22005 start.push_attribute(("numFmtId", s.as_str()));
22006 }
22007 }
22008 #[cfg(feature = "sml-styling")]
22009 {
22010 let val = &self.format_code;
22011 start.push_attribute(("formatCode", val.as_str()));
22012 }
22013 #[cfg(feature = "extra-attrs")]
22014 for (key, value) in &self.extra_attrs {
22015 start.push_attribute((key.as_str(), value.as_str()));
22016 }
22017 start
22018 }
22019
22020 fn is_empty_element(&self) -> bool {
22021 true
22022 }
22023}
22024
22025impl ToXml for CellStyleFormats {
22026 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22027 #[allow(unused_mut)]
22028 let mut start = start;
22029 if let Some(ref val) = self.count {
22030 {
22031 let s = val.to_string();
22032 start.push_attribute(("count", s.as_str()));
22033 }
22034 }
22035 #[cfg(feature = "extra-attrs")]
22036 for (key, value) in &self.extra_attrs {
22037 start.push_attribute((key.as_str(), value.as_str()));
22038 }
22039 start
22040 }
22041
22042 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22043 #[cfg(feature = "extra-children")]
22044 let mut extra_iter = self.extra_children.iter().peekable();
22045 #[cfg(feature = "extra-children")]
22046 let mut emit_idx: usize = 0;
22047 for item in &self.xf {
22048 #[cfg(feature = "extra-children")]
22049 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22050 extra_iter
22051 .next()
22052 .unwrap()
22053 .node
22054 .write_to(writer)
22055 .map_err(SerializeError::from)?;
22056 }
22057 item.write_element("xf", writer)?;
22058 #[cfg(feature = "extra-children")]
22059 {
22060 emit_idx += 1;
22061 }
22062 }
22063 #[cfg(feature = "extra-children")]
22064 for extra in extra_iter {
22065 extra.node.write_to(writer).map_err(SerializeError::from)?;
22066 }
22067 Ok(())
22068 }
22069
22070 fn is_empty_element(&self) -> bool {
22071 if !self.xf.is_empty() {
22072 return false;
22073 }
22074 #[cfg(feature = "extra-children")]
22075 if !self.extra_children.is_empty() {
22076 return false;
22077 }
22078 true
22079 }
22080}
22081
22082impl ToXml for CellFormats {
22083 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22084 #[allow(unused_mut)]
22085 let mut start = start;
22086 if let Some(ref val) = self.count {
22087 {
22088 let s = val.to_string();
22089 start.push_attribute(("count", s.as_str()));
22090 }
22091 }
22092 #[cfg(feature = "extra-attrs")]
22093 for (key, value) in &self.extra_attrs {
22094 start.push_attribute((key.as_str(), value.as_str()));
22095 }
22096 start
22097 }
22098
22099 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22100 #[cfg(feature = "extra-children")]
22101 let mut extra_iter = self.extra_children.iter().peekable();
22102 #[cfg(feature = "extra-children")]
22103 let mut emit_idx: usize = 0;
22104 for item in &self.xf {
22105 #[cfg(feature = "extra-children")]
22106 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22107 extra_iter
22108 .next()
22109 .unwrap()
22110 .node
22111 .write_to(writer)
22112 .map_err(SerializeError::from)?;
22113 }
22114 item.write_element("xf", writer)?;
22115 #[cfg(feature = "extra-children")]
22116 {
22117 emit_idx += 1;
22118 }
22119 }
22120 #[cfg(feature = "extra-children")]
22121 for extra in extra_iter {
22122 extra.node.write_to(writer).map_err(SerializeError::from)?;
22123 }
22124 Ok(())
22125 }
22126
22127 fn is_empty_element(&self) -> bool {
22128 if !self.xf.is_empty() {
22129 return false;
22130 }
22131 #[cfg(feature = "extra-children")]
22132 if !self.extra_children.is_empty() {
22133 return false;
22134 }
22135 true
22136 }
22137}
22138
22139impl ToXml for Format {
22140 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22141 #[allow(unused_mut)]
22142 let mut start = start;
22143 #[cfg(feature = "sml-styling")]
22144 if let Some(ref val) = self.number_format_id {
22145 {
22146 let s = val.to_string();
22147 start.push_attribute(("numFmtId", s.as_str()));
22148 }
22149 }
22150 #[cfg(feature = "sml-styling")]
22151 if let Some(ref val) = self.font_id {
22152 {
22153 let s = val.to_string();
22154 start.push_attribute(("fontId", s.as_str()));
22155 }
22156 }
22157 #[cfg(feature = "sml-styling")]
22158 if let Some(ref val) = self.fill_id {
22159 {
22160 let s = val.to_string();
22161 start.push_attribute(("fillId", s.as_str()));
22162 }
22163 }
22164 #[cfg(feature = "sml-styling")]
22165 if let Some(ref val) = self.border_id {
22166 {
22167 let s = val.to_string();
22168 start.push_attribute(("borderId", s.as_str()));
22169 }
22170 }
22171 #[cfg(feature = "sml-styling")]
22172 if let Some(ref val) = self.format_id {
22173 {
22174 let s = val.to_string();
22175 start.push_attribute(("xfId", s.as_str()));
22176 }
22177 }
22178 #[cfg(feature = "sml-styling")]
22179 if let Some(ref val) = self.quote_prefix {
22180 start.push_attribute(("quotePrefix", if *val { "1" } else { "0" }));
22181 }
22182 #[cfg(feature = "sml-pivot")]
22183 if let Some(ref val) = self.pivot_button {
22184 start.push_attribute(("pivotButton", if *val { "1" } else { "0" }));
22185 }
22186 #[cfg(feature = "sml-styling")]
22187 if let Some(ref val) = self.apply_number_format {
22188 start.push_attribute(("applyNumberFormat", if *val { "1" } else { "0" }));
22189 }
22190 #[cfg(feature = "sml-styling")]
22191 if let Some(ref val) = self.apply_font {
22192 start.push_attribute(("applyFont", if *val { "1" } else { "0" }));
22193 }
22194 #[cfg(feature = "sml-styling")]
22195 if let Some(ref val) = self.apply_fill {
22196 start.push_attribute(("applyFill", if *val { "1" } else { "0" }));
22197 }
22198 #[cfg(feature = "sml-styling")]
22199 if let Some(ref val) = self.apply_border {
22200 start.push_attribute(("applyBorder", if *val { "1" } else { "0" }));
22201 }
22202 #[cfg(feature = "sml-styling")]
22203 if let Some(ref val) = self.apply_alignment {
22204 start.push_attribute(("applyAlignment", if *val { "1" } else { "0" }));
22205 }
22206 #[cfg(feature = "sml-styling")]
22207 if let Some(ref val) = self.apply_protection {
22208 start.push_attribute(("applyProtection", if *val { "1" } else { "0" }));
22209 }
22210 #[cfg(feature = "extra-attrs")]
22211 for (key, value) in &self.extra_attrs {
22212 start.push_attribute((key.as_str(), value.as_str()));
22213 }
22214 start
22215 }
22216
22217 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22218 #[cfg(feature = "extra-children")]
22219 let mut extra_iter = self.extra_children.iter().peekable();
22220 #[cfg(feature = "extra-children")]
22221 let mut emit_idx: usize = 0;
22222 #[cfg(feature = "extra-children")]
22223 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22224 extra_iter
22225 .next()
22226 .unwrap()
22227 .node
22228 .write_to(writer)
22229 .map_err(SerializeError::from)?;
22230 }
22231 #[cfg(feature = "sml-styling")]
22232 if let Some(ref val) = self.alignment {
22233 val.write_element("alignment", writer)?;
22234 }
22235 #[cfg(feature = "extra-children")]
22236 {
22237 emit_idx += 1;
22238 }
22239 #[cfg(feature = "extra-children")]
22240 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22241 extra_iter
22242 .next()
22243 .unwrap()
22244 .node
22245 .write_to(writer)
22246 .map_err(SerializeError::from)?;
22247 }
22248 #[cfg(feature = "sml-protection")]
22249 if let Some(ref val) = self.protection {
22250 val.write_element("protection", writer)?;
22251 }
22252 #[cfg(feature = "extra-children")]
22253 {
22254 emit_idx += 1;
22255 }
22256 #[cfg(feature = "extra-children")]
22257 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22258 extra_iter
22259 .next()
22260 .unwrap()
22261 .node
22262 .write_to(writer)
22263 .map_err(SerializeError::from)?;
22264 }
22265 #[cfg(feature = "sml-extensions")]
22266 if let Some(ref val) = self.extension_list {
22267 val.write_element("extLst", writer)?;
22268 }
22269 #[cfg(feature = "extra-children")]
22270 {
22271 emit_idx += 1;
22272 }
22273 #[cfg(feature = "extra-children")]
22274 for extra in extra_iter {
22275 extra.node.write_to(writer).map_err(SerializeError::from)?;
22276 }
22277 Ok(())
22278 }
22279
22280 fn is_empty_element(&self) -> bool {
22281 #[cfg(feature = "sml-styling")]
22282 if self.alignment.is_some() {
22283 return false;
22284 }
22285 #[cfg(feature = "sml-protection")]
22286 if self.protection.is_some() {
22287 return false;
22288 }
22289 #[cfg(feature = "sml-extensions")]
22290 if self.extension_list.is_some() {
22291 return false;
22292 }
22293 #[cfg(feature = "extra-children")]
22294 if !self.extra_children.is_empty() {
22295 return false;
22296 }
22297 true
22298 }
22299}
22300
22301impl ToXml for CellStyles {
22302 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22303 #[allow(unused_mut)]
22304 let mut start = start;
22305 if let Some(ref val) = self.count {
22306 {
22307 let s = val.to_string();
22308 start.push_attribute(("count", s.as_str()));
22309 }
22310 }
22311 #[cfg(feature = "extra-attrs")]
22312 for (key, value) in &self.extra_attrs {
22313 start.push_attribute((key.as_str(), value.as_str()));
22314 }
22315 start
22316 }
22317
22318 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22319 #[cfg(feature = "extra-children")]
22320 let mut extra_iter = self.extra_children.iter().peekable();
22321 #[cfg(feature = "extra-children")]
22322 let mut emit_idx: usize = 0;
22323 for item in &self.cell_style {
22324 #[cfg(feature = "extra-children")]
22325 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22326 extra_iter
22327 .next()
22328 .unwrap()
22329 .node
22330 .write_to(writer)
22331 .map_err(SerializeError::from)?;
22332 }
22333 item.write_element("cellStyle", writer)?;
22334 #[cfg(feature = "extra-children")]
22335 {
22336 emit_idx += 1;
22337 }
22338 }
22339 #[cfg(feature = "extra-children")]
22340 for extra in extra_iter {
22341 extra.node.write_to(writer).map_err(SerializeError::from)?;
22342 }
22343 Ok(())
22344 }
22345
22346 fn is_empty_element(&self) -> bool {
22347 if !self.cell_style.is_empty() {
22348 return false;
22349 }
22350 #[cfg(feature = "extra-children")]
22351 if !self.extra_children.is_empty() {
22352 return false;
22353 }
22354 true
22355 }
22356}
22357
22358impl ToXml for CellStyle {
22359 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22360 #[allow(unused_mut)]
22361 let mut start = start;
22362 if let Some(ref val) = self.name {
22363 start.push_attribute(("name", val.as_str()));
22364 }
22365 {
22366 let val = &self.format_id;
22367 {
22368 let s = val.to_string();
22369 start.push_attribute(("xfId", s.as_str()));
22370 }
22371 }
22372 if let Some(ref val) = self.builtin_id {
22373 {
22374 let s = val.to_string();
22375 start.push_attribute(("builtinId", s.as_str()));
22376 }
22377 }
22378 if let Some(ref val) = self.i_level {
22379 {
22380 let s = val.to_string();
22381 start.push_attribute(("iLevel", s.as_str()));
22382 }
22383 }
22384 if let Some(ref val) = self.hidden {
22385 start.push_attribute(("hidden", if *val { "1" } else { "0" }));
22386 }
22387 if let Some(ref val) = self.custom_builtin {
22388 start.push_attribute(("customBuiltin", if *val { "1" } else { "0" }));
22389 }
22390 #[cfg(feature = "extra-attrs")]
22391 for (key, value) in &self.extra_attrs {
22392 start.push_attribute((key.as_str(), value.as_str()));
22393 }
22394 start
22395 }
22396
22397 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22398 #[cfg(feature = "extra-children")]
22399 let mut extra_iter = self.extra_children.iter().peekable();
22400 #[cfg(feature = "extra-children")]
22401 let mut emit_idx: usize = 0;
22402 #[cfg(feature = "extra-children")]
22403 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22404 extra_iter
22405 .next()
22406 .unwrap()
22407 .node
22408 .write_to(writer)
22409 .map_err(SerializeError::from)?;
22410 }
22411 if let Some(ref val) = self.extension_list {
22412 val.write_element("extLst", writer)?;
22413 }
22414 #[cfg(feature = "extra-children")]
22415 {
22416 emit_idx += 1;
22417 }
22418 #[cfg(feature = "extra-children")]
22419 for extra in extra_iter {
22420 extra.node.write_to(writer).map_err(SerializeError::from)?;
22421 }
22422 Ok(())
22423 }
22424
22425 fn is_empty_element(&self) -> bool {
22426 if self.extension_list.is_some() {
22427 return false;
22428 }
22429 #[cfg(feature = "extra-children")]
22430 if !self.extra_children.is_empty() {
22431 return false;
22432 }
22433 true
22434 }
22435}
22436
22437impl ToXml for DifferentialFormats {
22438 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22439 #[allow(unused_mut)]
22440 let mut start = start;
22441 if let Some(ref val) = self.count {
22442 {
22443 let s = val.to_string();
22444 start.push_attribute(("count", s.as_str()));
22445 }
22446 }
22447 #[cfg(feature = "extra-attrs")]
22448 for (key, value) in &self.extra_attrs {
22449 start.push_attribute((key.as_str(), value.as_str()));
22450 }
22451 start
22452 }
22453
22454 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22455 #[cfg(feature = "extra-children")]
22456 let mut extra_iter = self.extra_children.iter().peekable();
22457 #[cfg(feature = "extra-children")]
22458 let mut emit_idx: usize = 0;
22459 for item in &self.dxf {
22460 #[cfg(feature = "extra-children")]
22461 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22462 extra_iter
22463 .next()
22464 .unwrap()
22465 .node
22466 .write_to(writer)
22467 .map_err(SerializeError::from)?;
22468 }
22469 item.write_element("dxf", writer)?;
22470 #[cfg(feature = "extra-children")]
22471 {
22472 emit_idx += 1;
22473 }
22474 }
22475 #[cfg(feature = "extra-children")]
22476 for extra in extra_iter {
22477 extra.node.write_to(writer).map_err(SerializeError::from)?;
22478 }
22479 Ok(())
22480 }
22481
22482 fn is_empty_element(&self) -> bool {
22483 if !self.dxf.is_empty() {
22484 return false;
22485 }
22486 #[cfg(feature = "extra-children")]
22487 if !self.extra_children.is_empty() {
22488 return false;
22489 }
22490 true
22491 }
22492}
22493
22494impl ToXml for DifferentialFormat {
22495 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22496 #[cfg(feature = "extra-children")]
22497 let mut extra_iter = self.extra_children.iter().peekable();
22498 #[cfg(feature = "extra-children")]
22499 let mut emit_idx: usize = 0;
22500 #[cfg(feature = "extra-children")]
22501 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22502 extra_iter
22503 .next()
22504 .unwrap()
22505 .node
22506 .write_to(writer)
22507 .map_err(SerializeError::from)?;
22508 }
22509 if let Some(ref val) = self.font {
22510 val.write_element("font", writer)?;
22511 }
22512 #[cfg(feature = "extra-children")]
22513 {
22514 emit_idx += 1;
22515 }
22516 #[cfg(feature = "extra-children")]
22517 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22518 extra_iter
22519 .next()
22520 .unwrap()
22521 .node
22522 .write_to(writer)
22523 .map_err(SerializeError::from)?;
22524 }
22525 if let Some(ref val) = self.num_fmt {
22526 val.write_element("numFmt", writer)?;
22527 }
22528 #[cfg(feature = "extra-children")]
22529 {
22530 emit_idx += 1;
22531 }
22532 #[cfg(feature = "extra-children")]
22533 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22534 extra_iter
22535 .next()
22536 .unwrap()
22537 .node
22538 .write_to(writer)
22539 .map_err(SerializeError::from)?;
22540 }
22541 if let Some(ref val) = self.fill {
22542 val.write_element("fill", writer)?;
22543 }
22544 #[cfg(feature = "extra-children")]
22545 {
22546 emit_idx += 1;
22547 }
22548 #[cfg(feature = "extra-children")]
22549 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22550 extra_iter
22551 .next()
22552 .unwrap()
22553 .node
22554 .write_to(writer)
22555 .map_err(SerializeError::from)?;
22556 }
22557 if let Some(ref val) = self.alignment {
22558 val.write_element("alignment", writer)?;
22559 }
22560 #[cfg(feature = "extra-children")]
22561 {
22562 emit_idx += 1;
22563 }
22564 #[cfg(feature = "extra-children")]
22565 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22566 extra_iter
22567 .next()
22568 .unwrap()
22569 .node
22570 .write_to(writer)
22571 .map_err(SerializeError::from)?;
22572 }
22573 if let Some(ref val) = self.border {
22574 val.write_element("border", writer)?;
22575 }
22576 #[cfg(feature = "extra-children")]
22577 {
22578 emit_idx += 1;
22579 }
22580 #[cfg(feature = "extra-children")]
22581 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22582 extra_iter
22583 .next()
22584 .unwrap()
22585 .node
22586 .write_to(writer)
22587 .map_err(SerializeError::from)?;
22588 }
22589 if let Some(ref val) = self.protection {
22590 val.write_element("protection", writer)?;
22591 }
22592 #[cfg(feature = "extra-children")]
22593 {
22594 emit_idx += 1;
22595 }
22596 #[cfg(feature = "extra-children")]
22597 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22598 extra_iter
22599 .next()
22600 .unwrap()
22601 .node
22602 .write_to(writer)
22603 .map_err(SerializeError::from)?;
22604 }
22605 if let Some(ref val) = self.extension_list {
22606 val.write_element("extLst", writer)?;
22607 }
22608 #[cfg(feature = "extra-children")]
22609 {
22610 emit_idx += 1;
22611 }
22612 #[cfg(feature = "extra-children")]
22613 for extra in extra_iter {
22614 extra.node.write_to(writer).map_err(SerializeError::from)?;
22615 }
22616 Ok(())
22617 }
22618
22619 fn is_empty_element(&self) -> bool {
22620 if self.font.is_some() {
22621 return false;
22622 }
22623 if self.num_fmt.is_some() {
22624 return false;
22625 }
22626 if self.fill.is_some() {
22627 return false;
22628 }
22629 if self.alignment.is_some() {
22630 return false;
22631 }
22632 if self.border.is_some() {
22633 return false;
22634 }
22635 if self.protection.is_some() {
22636 return false;
22637 }
22638 if self.extension_list.is_some() {
22639 return false;
22640 }
22641 #[cfg(feature = "extra-children")]
22642 if !self.extra_children.is_empty() {
22643 return false;
22644 }
22645 true
22646 }
22647}
22648
22649impl ToXml for Colors {
22650 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22651 #[cfg(feature = "extra-children")]
22652 let mut extra_iter = self.extra_children.iter().peekable();
22653 #[cfg(feature = "extra-children")]
22654 let mut emit_idx: usize = 0;
22655 #[cfg(feature = "extra-children")]
22656 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22657 extra_iter
22658 .next()
22659 .unwrap()
22660 .node
22661 .write_to(writer)
22662 .map_err(SerializeError::from)?;
22663 }
22664 #[cfg(feature = "sml-styling")]
22665 if let Some(ref val) = self.indexed_colors {
22666 val.write_element("indexedColors", writer)?;
22667 }
22668 #[cfg(feature = "extra-children")]
22669 {
22670 emit_idx += 1;
22671 }
22672 #[cfg(feature = "extra-children")]
22673 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22674 extra_iter
22675 .next()
22676 .unwrap()
22677 .node
22678 .write_to(writer)
22679 .map_err(SerializeError::from)?;
22680 }
22681 #[cfg(feature = "sml-styling")]
22682 if let Some(ref val) = self.mru_colors {
22683 val.write_element("mruColors", writer)?;
22684 }
22685 #[cfg(feature = "extra-children")]
22686 {
22687 emit_idx += 1;
22688 }
22689 #[cfg(feature = "extra-children")]
22690 for extra in extra_iter {
22691 extra.node.write_to(writer).map_err(SerializeError::from)?;
22692 }
22693 Ok(())
22694 }
22695
22696 fn is_empty_element(&self) -> bool {
22697 #[cfg(feature = "sml-styling")]
22698 if self.indexed_colors.is_some() {
22699 return false;
22700 }
22701 #[cfg(feature = "sml-styling")]
22702 if self.mru_colors.is_some() {
22703 return false;
22704 }
22705 #[cfg(feature = "extra-children")]
22706 if !self.extra_children.is_empty() {
22707 return false;
22708 }
22709 true
22710 }
22711}
22712
22713impl ToXml for IndexedColors {
22714 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22715 #[cfg(feature = "extra-children")]
22716 let mut extra_iter = self.extra_children.iter().peekable();
22717 #[cfg(feature = "extra-children")]
22718 let mut emit_idx: usize = 0;
22719 for item in &self.rgb_color {
22720 #[cfg(feature = "extra-children")]
22721 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22722 extra_iter
22723 .next()
22724 .unwrap()
22725 .node
22726 .write_to(writer)
22727 .map_err(SerializeError::from)?;
22728 }
22729 item.write_element("rgbColor", writer)?;
22730 #[cfg(feature = "extra-children")]
22731 {
22732 emit_idx += 1;
22733 }
22734 }
22735 #[cfg(feature = "extra-children")]
22736 for extra in extra_iter {
22737 extra.node.write_to(writer).map_err(SerializeError::from)?;
22738 }
22739 Ok(())
22740 }
22741
22742 fn is_empty_element(&self) -> bool {
22743 if !self.rgb_color.is_empty() {
22744 return false;
22745 }
22746 #[cfg(feature = "extra-children")]
22747 if !self.extra_children.is_empty() {
22748 return false;
22749 }
22750 true
22751 }
22752}
22753
22754impl ToXml for MostRecentColors {
22755 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22756 #[cfg(feature = "extra-children")]
22757 let mut extra_iter = self.extra_children.iter().peekable();
22758 #[cfg(feature = "extra-children")]
22759 let mut emit_idx: usize = 0;
22760 for item in &self.color {
22761 #[cfg(feature = "extra-children")]
22762 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22763 extra_iter
22764 .next()
22765 .unwrap()
22766 .node
22767 .write_to(writer)
22768 .map_err(SerializeError::from)?;
22769 }
22770 item.write_element("color", writer)?;
22771 #[cfg(feature = "extra-children")]
22772 {
22773 emit_idx += 1;
22774 }
22775 }
22776 #[cfg(feature = "extra-children")]
22777 for extra in extra_iter {
22778 extra.node.write_to(writer).map_err(SerializeError::from)?;
22779 }
22780 Ok(())
22781 }
22782
22783 fn is_empty_element(&self) -> bool {
22784 if !self.color.is_empty() {
22785 return false;
22786 }
22787 #[cfg(feature = "extra-children")]
22788 if !self.extra_children.is_empty() {
22789 return false;
22790 }
22791 true
22792 }
22793}
22794
22795impl ToXml for RgbColor {
22796 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22797 #[allow(unused_mut)]
22798 let mut start = start;
22799 if let Some(ref val) = self.rgb {
22800 {
22801 let hex = encode_hex(val);
22802 start.push_attribute(("rgb", hex.as_str()));
22803 }
22804 }
22805 #[cfg(feature = "extra-attrs")]
22806 for (key, value) in &self.extra_attrs {
22807 start.push_attribute((key.as_str(), value.as_str()));
22808 }
22809 start
22810 }
22811
22812 fn is_empty_element(&self) -> bool {
22813 true
22814 }
22815}
22816
22817impl ToXml for TableStyles {
22818 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22819 #[allow(unused_mut)]
22820 let mut start = start;
22821 if let Some(ref val) = self.count {
22822 {
22823 let s = val.to_string();
22824 start.push_attribute(("count", s.as_str()));
22825 }
22826 }
22827 if let Some(ref val) = self.default_table_style {
22828 start.push_attribute(("defaultTableStyle", val.as_str()));
22829 }
22830 if let Some(ref val) = self.default_pivot_style {
22831 start.push_attribute(("defaultPivotStyle", val.as_str()));
22832 }
22833 #[cfg(feature = "extra-attrs")]
22834 for (key, value) in &self.extra_attrs {
22835 start.push_attribute((key.as_str(), value.as_str()));
22836 }
22837 start
22838 }
22839
22840 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22841 #[cfg(feature = "extra-children")]
22842 let mut extra_iter = self.extra_children.iter().peekable();
22843 #[cfg(feature = "extra-children")]
22844 let mut emit_idx: usize = 0;
22845 for item in &self.table_style {
22846 #[cfg(feature = "extra-children")]
22847 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22848 extra_iter
22849 .next()
22850 .unwrap()
22851 .node
22852 .write_to(writer)
22853 .map_err(SerializeError::from)?;
22854 }
22855 item.write_element("tableStyle", writer)?;
22856 #[cfg(feature = "extra-children")]
22857 {
22858 emit_idx += 1;
22859 }
22860 }
22861 #[cfg(feature = "extra-children")]
22862 for extra in extra_iter {
22863 extra.node.write_to(writer).map_err(SerializeError::from)?;
22864 }
22865 Ok(())
22866 }
22867
22868 fn is_empty_element(&self) -> bool {
22869 if !self.table_style.is_empty() {
22870 return false;
22871 }
22872 #[cfg(feature = "extra-children")]
22873 if !self.extra_children.is_empty() {
22874 return false;
22875 }
22876 true
22877 }
22878}
22879
22880impl ToXml for TableStyle {
22881 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22882 #[allow(unused_mut)]
22883 let mut start = start;
22884 {
22885 let val = &self.name;
22886 start.push_attribute(("name", val.as_str()));
22887 }
22888 if let Some(ref val) = self.pivot {
22889 start.push_attribute(("pivot", if *val { "1" } else { "0" }));
22890 }
22891 if let Some(ref val) = self.table {
22892 start.push_attribute(("table", if *val { "1" } else { "0" }));
22893 }
22894 if let Some(ref val) = self.count {
22895 {
22896 let s = val.to_string();
22897 start.push_attribute(("count", s.as_str()));
22898 }
22899 }
22900 #[cfg(feature = "extra-attrs")]
22901 for (key, value) in &self.extra_attrs {
22902 start.push_attribute((key.as_str(), value.as_str()));
22903 }
22904 start
22905 }
22906
22907 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
22908 #[cfg(feature = "extra-children")]
22909 let mut extra_iter = self.extra_children.iter().peekable();
22910 #[cfg(feature = "extra-children")]
22911 let mut emit_idx: usize = 0;
22912 for item in &self.table_style_element {
22913 #[cfg(feature = "extra-children")]
22914 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
22915 extra_iter
22916 .next()
22917 .unwrap()
22918 .node
22919 .write_to(writer)
22920 .map_err(SerializeError::from)?;
22921 }
22922 item.write_element("tableStyleElement", writer)?;
22923 #[cfg(feature = "extra-children")]
22924 {
22925 emit_idx += 1;
22926 }
22927 }
22928 #[cfg(feature = "extra-children")]
22929 for extra in extra_iter {
22930 extra.node.write_to(writer).map_err(SerializeError::from)?;
22931 }
22932 Ok(())
22933 }
22934
22935 fn is_empty_element(&self) -> bool {
22936 if !self.table_style_element.is_empty() {
22937 return false;
22938 }
22939 #[cfg(feature = "extra-children")]
22940 if !self.extra_children.is_empty() {
22941 return false;
22942 }
22943 true
22944 }
22945}
22946
22947impl ToXml for TableStyleElement {
22948 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22949 #[allow(unused_mut)]
22950 let mut start = start;
22951 {
22952 let val = &self.r#type;
22953 {
22954 let s = val.to_string();
22955 start.push_attribute(("type", s.as_str()));
22956 }
22957 }
22958 if let Some(ref val) = self.size {
22959 {
22960 let s = val.to_string();
22961 start.push_attribute(("size", s.as_str()));
22962 }
22963 }
22964 if let Some(ref val) = self.dxf_id {
22965 {
22966 let s = val.to_string();
22967 start.push_attribute(("dxfId", s.as_str()));
22968 }
22969 }
22970 #[cfg(feature = "extra-attrs")]
22971 for (key, value) in &self.extra_attrs {
22972 start.push_attribute((key.as_str(), value.as_str()));
22973 }
22974 start
22975 }
22976
22977 fn is_empty_element(&self) -> bool {
22978 true
22979 }
22980}
22981
22982impl ToXml for BooleanProperty {
22983 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
22984 #[allow(unused_mut)]
22985 let mut start = start;
22986 if let Some(ref val) = self.value {
22987 start.push_attribute(("val", if *val { "1" } else { "0" }));
22988 }
22989 #[cfg(feature = "extra-attrs")]
22990 for (key, value) in &self.extra_attrs {
22991 start.push_attribute((key.as_str(), value.as_str()));
22992 }
22993 start
22994 }
22995
22996 fn is_empty_element(&self) -> bool {
22997 true
22998 }
22999}
23000
23001impl ToXml for FontSize {
23002 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
23003 #[allow(unused_mut)]
23004 let mut start = start;
23005 {
23006 let val = &self.value;
23007 {
23008 let s = val.to_string();
23009 start.push_attribute(("val", s.as_str()));
23010 }
23011 }
23012 #[cfg(feature = "extra-attrs")]
23013 for (key, value) in &self.extra_attrs {
23014 start.push_attribute((key.as_str(), value.as_str()));
23015 }
23016 start
23017 }
23018
23019 fn is_empty_element(&self) -> bool {
23020 true
23021 }
23022}
23023
23024impl ToXml for IntProperty {
23025 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
23026 #[allow(unused_mut)]
23027 let mut start = start;
23028 {
23029 let val = &self.value;
23030 {
23031 let s = val.to_string();
23032 start.push_attribute(("val", s.as_str()));
23033 }
23034 }
23035 #[cfg(feature = "extra-attrs")]
23036 for (key, value) in &self.extra_attrs {
23037 start.push_attribute((key.as_str(), value.as_str()));
23038 }
23039 start
23040 }
23041
23042 fn is_empty_element(&self) -> bool {
23043 true
23044 }
23045}
23046
23047impl ToXml for FontName {
23048 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
23049 #[allow(unused_mut)]
23050 let mut start = start;
23051 {
23052 let val = &self.value;
23053 start.push_attribute(("val", val.as_str()));
23054 }
23055 #[cfg(feature = "extra-attrs")]
23056 for (key, value) in &self.extra_attrs {
23057 start.push_attribute((key.as_str(), value.as_str()));
23058 }
23059 start
23060 }
23061
23062 fn is_empty_element(&self) -> bool {
23063 true
23064 }
23065}
23066
23067impl ToXml for VerticalAlignFontProperty {
23068 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
23069 #[allow(unused_mut)]
23070 let mut start = start;
23071 {
23072 let val = &self.value;
23073 {
23074 let s = val.to_string();
23075 start.push_attribute(("val", s.as_str()));
23076 }
23077 }
23078 #[cfg(feature = "extra-attrs")]
23079 for (key, value) in &self.extra_attrs {
23080 start.push_attribute((key.as_str(), value.as_str()));
23081 }
23082 start
23083 }
23084
23085 fn is_empty_element(&self) -> bool {
23086 true
23087 }
23088}
23089
23090impl ToXml for FontSchemeProperty {
23091 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
23092 #[allow(unused_mut)]
23093 let mut start = start;
23094 {
23095 let val = &self.value;
23096 {
23097 let s = val.to_string();
23098 start.push_attribute(("val", s.as_str()));
23099 }
23100 }
23101 #[cfg(feature = "extra-attrs")]
23102 for (key, value) in &self.extra_attrs {
23103 start.push_attribute((key.as_str(), value.as_str()));
23104 }
23105 start
23106 }
23107
23108 fn is_empty_element(&self) -> bool {
23109 true
23110 }
23111}
23112
23113impl ToXml for UnderlineProperty {
23114 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
23115 #[allow(unused_mut)]
23116 let mut start = start;
23117 if let Some(ref val) = self.value {
23118 {
23119 let s = val.to_string();
23120 start.push_attribute(("val", s.as_str()));
23121 }
23122 }
23123 #[cfg(feature = "extra-attrs")]
23124 for (key, value) in &self.extra_attrs {
23125 start.push_attribute((key.as_str(), value.as_str()));
23126 }
23127 start
23128 }
23129
23130 fn is_empty_element(&self) -> bool {
23131 true
23132 }
23133}
23134
23135impl ToXml for Font {
23136 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
23137 #[cfg(feature = "extra-children")]
23138 let mut extra_iter = self.extra_children.iter().peekable();
23139 #[cfg(feature = "extra-children")]
23140 let mut emit_idx: usize = 0;
23141 #[cfg(feature = "extra-children")]
23142 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23143 extra_iter
23144 .next()
23145 .unwrap()
23146 .node
23147 .write_to(writer)
23148 .map_err(SerializeError::from)?;
23149 }
23150 #[cfg(feature = "sml-styling")]
23151 if let Some(ref val) = self.name {
23152 val.write_element("name", writer)?;
23153 }
23154 #[cfg(feature = "extra-children")]
23155 {
23156 emit_idx += 1;
23157 }
23158 #[cfg(feature = "extra-children")]
23159 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23160 extra_iter
23161 .next()
23162 .unwrap()
23163 .node
23164 .write_to(writer)
23165 .map_err(SerializeError::from)?;
23166 }
23167 #[cfg(feature = "sml-styling")]
23168 if let Some(ref val) = self.charset {
23169 val.write_element("charset", writer)?;
23170 }
23171 #[cfg(feature = "extra-children")]
23172 {
23173 emit_idx += 1;
23174 }
23175 #[cfg(feature = "extra-children")]
23176 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23177 extra_iter
23178 .next()
23179 .unwrap()
23180 .node
23181 .write_to(writer)
23182 .map_err(SerializeError::from)?;
23183 }
23184 #[cfg(feature = "sml-styling")]
23185 if let Some(ref val) = self.family {
23186 val.write_element("family", writer)?;
23187 }
23188 #[cfg(feature = "extra-children")]
23189 {
23190 emit_idx += 1;
23191 }
23192 #[cfg(feature = "extra-children")]
23193 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23194 extra_iter
23195 .next()
23196 .unwrap()
23197 .node
23198 .write_to(writer)
23199 .map_err(SerializeError::from)?;
23200 }
23201 #[cfg(feature = "sml-styling")]
23202 if let Some(ref val) = self.b {
23203 val.write_element("b", writer)?;
23204 }
23205 #[cfg(feature = "extra-children")]
23206 {
23207 emit_idx += 1;
23208 }
23209 #[cfg(feature = "extra-children")]
23210 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23211 extra_iter
23212 .next()
23213 .unwrap()
23214 .node
23215 .write_to(writer)
23216 .map_err(SerializeError::from)?;
23217 }
23218 #[cfg(feature = "sml-styling")]
23219 if let Some(ref val) = self.i {
23220 val.write_element("i", writer)?;
23221 }
23222 #[cfg(feature = "extra-children")]
23223 {
23224 emit_idx += 1;
23225 }
23226 #[cfg(feature = "extra-children")]
23227 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23228 extra_iter
23229 .next()
23230 .unwrap()
23231 .node
23232 .write_to(writer)
23233 .map_err(SerializeError::from)?;
23234 }
23235 #[cfg(feature = "sml-styling")]
23236 if let Some(ref val) = self.strike {
23237 val.write_element("strike", writer)?;
23238 }
23239 #[cfg(feature = "extra-children")]
23240 {
23241 emit_idx += 1;
23242 }
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 #[cfg(feature = "sml-styling")]
23253 if let Some(ref val) = self.outline {
23254 val.write_element("outline", writer)?;
23255 }
23256 #[cfg(feature = "extra-children")]
23257 {
23258 emit_idx += 1;
23259 }
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 #[cfg(feature = "sml-styling")]
23270 if let Some(ref val) = self.shadow {
23271 val.write_element("shadow", writer)?;
23272 }
23273 #[cfg(feature = "extra-children")]
23274 {
23275 emit_idx += 1;
23276 }
23277 #[cfg(feature = "extra-children")]
23278 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23279 extra_iter
23280 .next()
23281 .unwrap()
23282 .node
23283 .write_to(writer)
23284 .map_err(SerializeError::from)?;
23285 }
23286 #[cfg(feature = "sml-styling")]
23287 if let Some(ref val) = self.condense {
23288 val.write_element("condense", writer)?;
23289 }
23290 #[cfg(feature = "extra-children")]
23291 {
23292 emit_idx += 1;
23293 }
23294 #[cfg(feature = "extra-children")]
23295 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23296 extra_iter
23297 .next()
23298 .unwrap()
23299 .node
23300 .write_to(writer)
23301 .map_err(SerializeError::from)?;
23302 }
23303 #[cfg(feature = "sml-styling")]
23304 if let Some(ref val) = self.extend {
23305 val.write_element("extend", writer)?;
23306 }
23307 #[cfg(feature = "extra-children")]
23308 {
23309 emit_idx += 1;
23310 }
23311 #[cfg(feature = "extra-children")]
23312 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23313 extra_iter
23314 .next()
23315 .unwrap()
23316 .node
23317 .write_to(writer)
23318 .map_err(SerializeError::from)?;
23319 }
23320 #[cfg(feature = "sml-styling")]
23321 if let Some(ref val) = self.color {
23322 val.write_element("color", writer)?;
23323 }
23324 #[cfg(feature = "extra-children")]
23325 {
23326 emit_idx += 1;
23327 }
23328 #[cfg(feature = "extra-children")]
23329 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23330 extra_iter
23331 .next()
23332 .unwrap()
23333 .node
23334 .write_to(writer)
23335 .map_err(SerializeError::from)?;
23336 }
23337 #[cfg(feature = "sml-styling")]
23338 if let Some(ref val) = self.sz {
23339 val.write_element("sz", writer)?;
23340 }
23341 #[cfg(feature = "extra-children")]
23342 {
23343 emit_idx += 1;
23344 }
23345 #[cfg(feature = "extra-children")]
23346 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23347 extra_iter
23348 .next()
23349 .unwrap()
23350 .node
23351 .write_to(writer)
23352 .map_err(SerializeError::from)?;
23353 }
23354 #[cfg(feature = "sml-styling")]
23355 if let Some(ref val) = self.u {
23356 val.write_element("u", writer)?;
23357 }
23358 #[cfg(feature = "extra-children")]
23359 {
23360 emit_idx += 1;
23361 }
23362 #[cfg(feature = "extra-children")]
23363 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23364 extra_iter
23365 .next()
23366 .unwrap()
23367 .node
23368 .write_to(writer)
23369 .map_err(SerializeError::from)?;
23370 }
23371 #[cfg(feature = "sml-styling")]
23372 if let Some(ref val) = self.vert_align {
23373 val.write_element("vertAlign", writer)?;
23374 }
23375 #[cfg(feature = "extra-children")]
23376 {
23377 emit_idx += 1;
23378 }
23379 #[cfg(feature = "extra-children")]
23380 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23381 extra_iter
23382 .next()
23383 .unwrap()
23384 .node
23385 .write_to(writer)
23386 .map_err(SerializeError::from)?;
23387 }
23388 #[cfg(feature = "sml-styling")]
23389 if let Some(ref val) = self.scheme {
23390 val.write_element("scheme", writer)?;
23391 }
23392 #[cfg(feature = "extra-children")]
23393 {
23394 emit_idx += 1;
23395 }
23396 #[cfg(feature = "extra-children")]
23397 for extra in extra_iter {
23398 extra.node.write_to(writer).map_err(SerializeError::from)?;
23399 }
23400 Ok(())
23401 }
23402
23403 fn is_empty_element(&self) -> bool {
23404 #[cfg(feature = "sml-styling")]
23405 if self.name.is_some() {
23406 return false;
23407 }
23408 #[cfg(feature = "sml-styling")]
23409 if self.charset.is_some() {
23410 return false;
23411 }
23412 #[cfg(feature = "sml-styling")]
23413 if self.family.is_some() {
23414 return false;
23415 }
23416 #[cfg(feature = "sml-styling")]
23417 if self.b.is_some() {
23418 return false;
23419 }
23420 #[cfg(feature = "sml-styling")]
23421 if self.i.is_some() {
23422 return false;
23423 }
23424 #[cfg(feature = "sml-styling")]
23425 if self.strike.is_some() {
23426 return false;
23427 }
23428 #[cfg(feature = "sml-styling")]
23429 if self.outline.is_some() {
23430 return false;
23431 }
23432 #[cfg(feature = "sml-styling")]
23433 if self.shadow.is_some() {
23434 return false;
23435 }
23436 #[cfg(feature = "sml-styling")]
23437 if self.condense.is_some() {
23438 return false;
23439 }
23440 #[cfg(feature = "sml-styling")]
23441 if self.extend.is_some() {
23442 return false;
23443 }
23444 #[cfg(feature = "sml-styling")]
23445 if self.color.is_some() {
23446 return false;
23447 }
23448 #[cfg(feature = "sml-styling")]
23449 if self.sz.is_some() {
23450 return false;
23451 }
23452 #[cfg(feature = "sml-styling")]
23453 if self.u.is_some() {
23454 return false;
23455 }
23456 #[cfg(feature = "sml-styling")]
23457 if self.vert_align.is_some() {
23458 return false;
23459 }
23460 #[cfg(feature = "sml-styling")]
23461 if self.scheme.is_some() {
23462 return false;
23463 }
23464 #[cfg(feature = "extra-children")]
23465 if !self.extra_children.is_empty() {
23466 return false;
23467 }
23468 true
23469 }
23470}
23471
23472impl ToXml for FontFamily {
23473 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
23474 #[allow(unused_mut)]
23475 let mut start = start;
23476 {
23477 let val = &self.value;
23478 {
23479 let s = val.to_string();
23480 start.push_attribute(("val", s.as_str()));
23481 }
23482 }
23483 #[cfg(feature = "extra-attrs")]
23484 for (key, value) in &self.extra_attrs {
23485 start.push_attribute((key.as_str(), value.as_str()));
23486 }
23487 start
23488 }
23489
23490 fn is_empty_element(&self) -> bool {
23491 true
23492 }
23493}
23494
23495impl ToXml for SmlAGAutoFormat {
23496 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
23497 #[allow(unused_mut)]
23498 let mut start = start;
23499 if let Some(ref val) = self.auto_format_id {
23500 {
23501 let s = val.to_string();
23502 start.push_attribute(("autoFormatId", s.as_str()));
23503 }
23504 }
23505 if let Some(ref val) = self.apply_number_formats {
23506 start.push_attribute(("applyNumberFormats", if *val { "1" } else { "0" }));
23507 }
23508 if let Some(ref val) = self.apply_border_formats {
23509 start.push_attribute(("applyBorderFormats", if *val { "1" } else { "0" }));
23510 }
23511 if let Some(ref val) = self.apply_font_formats {
23512 start.push_attribute(("applyFontFormats", if *val { "1" } else { "0" }));
23513 }
23514 if let Some(ref val) = self.apply_pattern_formats {
23515 start.push_attribute(("applyPatternFormats", if *val { "1" } else { "0" }));
23516 }
23517 if let Some(ref val) = self.apply_alignment_formats {
23518 start.push_attribute(("applyAlignmentFormats", if *val { "1" } else { "0" }));
23519 }
23520 if let Some(ref val) = self.apply_width_height_formats {
23521 start.push_attribute(("applyWidthHeightFormats", if *val { "1" } else { "0" }));
23522 }
23523 #[cfg(feature = "extra-attrs")]
23524 for (key, value) in &self.extra_attrs {
23525 start.push_attribute((key.as_str(), value.as_str()));
23526 }
23527 start
23528 }
23529
23530 fn is_empty_element(&self) -> bool {
23531 true
23532 }
23533}
23534
23535impl ToXml for ExternalLink {
23536 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
23537 #[cfg(feature = "extra-children")]
23538 let mut extra_iter = self.extra_children.iter().peekable();
23539 #[cfg(feature = "extra-children")]
23540 let mut emit_idx: usize = 0;
23541 #[cfg(feature = "extra-children")]
23542 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23543 extra_iter
23544 .next()
23545 .unwrap()
23546 .node
23547 .write_to(writer)
23548 .map_err(SerializeError::from)?;
23549 }
23550 if let Some(ref val) = self.external_book {
23551 val.write_element("externalBook", writer)?;
23552 }
23553 #[cfg(feature = "extra-children")]
23554 {
23555 emit_idx += 1;
23556 }
23557 #[cfg(feature = "extra-children")]
23558 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23559 extra_iter
23560 .next()
23561 .unwrap()
23562 .node
23563 .write_to(writer)
23564 .map_err(SerializeError::from)?;
23565 }
23566 if let Some(ref val) = self.dde_link {
23567 val.write_element("ddeLink", writer)?;
23568 }
23569 #[cfg(feature = "extra-children")]
23570 {
23571 emit_idx += 1;
23572 }
23573 #[cfg(feature = "extra-children")]
23574 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23575 extra_iter
23576 .next()
23577 .unwrap()
23578 .node
23579 .write_to(writer)
23580 .map_err(SerializeError::from)?;
23581 }
23582 if let Some(ref val) = self.ole_link {
23583 val.write_element("oleLink", writer)?;
23584 }
23585 #[cfg(feature = "extra-children")]
23586 {
23587 emit_idx += 1;
23588 }
23589 #[cfg(feature = "extra-children")]
23590 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23591 extra_iter
23592 .next()
23593 .unwrap()
23594 .node
23595 .write_to(writer)
23596 .map_err(SerializeError::from)?;
23597 }
23598 if let Some(ref val) = self.extension_list {
23599 val.write_element("extLst", writer)?;
23600 }
23601 #[cfg(feature = "extra-children")]
23602 {
23603 emit_idx += 1;
23604 }
23605 #[cfg(feature = "extra-children")]
23606 for extra in extra_iter {
23607 extra.node.write_to(writer).map_err(SerializeError::from)?;
23608 }
23609 Ok(())
23610 }
23611
23612 fn is_empty_element(&self) -> bool {
23613 if self.external_book.is_some() {
23614 return false;
23615 }
23616 if self.dde_link.is_some() {
23617 return false;
23618 }
23619 if self.ole_link.is_some() {
23620 return false;
23621 }
23622 if self.extension_list.is_some() {
23623 return false;
23624 }
23625 #[cfg(feature = "extra-children")]
23626 if !self.extra_children.is_empty() {
23627 return false;
23628 }
23629 true
23630 }
23631}
23632
23633impl ToXml for ExternalBook {
23634 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
23635 #[allow(unused_mut)]
23636 let mut start = start;
23637 {
23638 let val = &self.id;
23639 start.push_attribute(("r:id", val.as_str()));
23640 }
23641 #[cfg(feature = "extra-attrs")]
23642 for (key, value) in &self.extra_attrs {
23643 start.push_attribute((key.as_str(), value.as_str()));
23644 }
23645 start
23646 }
23647
23648 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
23649 #[cfg(feature = "extra-children")]
23650 let mut extra_iter = self.extra_children.iter().peekable();
23651 #[cfg(feature = "extra-children")]
23652 let mut emit_idx: usize = 0;
23653 #[cfg(feature = "extra-children")]
23654 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23655 extra_iter
23656 .next()
23657 .unwrap()
23658 .node
23659 .write_to(writer)
23660 .map_err(SerializeError::from)?;
23661 }
23662 if let Some(ref val) = self.sheet_names {
23663 val.write_element("sheetNames", writer)?;
23664 }
23665 #[cfg(feature = "extra-children")]
23666 {
23667 emit_idx += 1;
23668 }
23669 #[cfg(feature = "extra-children")]
23670 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23671 extra_iter
23672 .next()
23673 .unwrap()
23674 .node
23675 .write_to(writer)
23676 .map_err(SerializeError::from)?;
23677 }
23678 if let Some(ref val) = self.defined_names {
23679 val.write_element("definedNames", writer)?;
23680 }
23681 #[cfg(feature = "extra-children")]
23682 {
23683 emit_idx += 1;
23684 }
23685 #[cfg(feature = "extra-children")]
23686 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23687 extra_iter
23688 .next()
23689 .unwrap()
23690 .node
23691 .write_to(writer)
23692 .map_err(SerializeError::from)?;
23693 }
23694 if let Some(ref val) = self.sheet_data_set {
23695 val.write_element("sheetDataSet", writer)?;
23696 }
23697 #[cfg(feature = "extra-children")]
23698 {
23699 emit_idx += 1;
23700 }
23701 #[cfg(feature = "extra-children")]
23702 for extra in extra_iter {
23703 extra.node.write_to(writer).map_err(SerializeError::from)?;
23704 }
23705 Ok(())
23706 }
23707
23708 fn is_empty_element(&self) -> bool {
23709 if self.sheet_names.is_some() {
23710 return false;
23711 }
23712 if self.defined_names.is_some() {
23713 return false;
23714 }
23715 if self.sheet_data_set.is_some() {
23716 return false;
23717 }
23718 #[cfg(feature = "extra-children")]
23719 if !self.extra_children.is_empty() {
23720 return false;
23721 }
23722 true
23723 }
23724}
23725
23726impl ToXml for CTExternalSheetNames {
23727 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
23728 #[cfg(feature = "extra-children")]
23729 let mut extra_iter = self.extra_children.iter().peekable();
23730 #[cfg(feature = "extra-children")]
23731 let mut emit_idx: usize = 0;
23732 for item in &self.sheet_name {
23733 #[cfg(feature = "extra-children")]
23734 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23735 extra_iter
23736 .next()
23737 .unwrap()
23738 .node
23739 .write_to(writer)
23740 .map_err(SerializeError::from)?;
23741 }
23742 item.write_element("sheetName", writer)?;
23743 #[cfg(feature = "extra-children")]
23744 {
23745 emit_idx += 1;
23746 }
23747 }
23748 #[cfg(feature = "extra-children")]
23749 for extra in extra_iter {
23750 extra.node.write_to(writer).map_err(SerializeError::from)?;
23751 }
23752 Ok(())
23753 }
23754
23755 fn is_empty_element(&self) -> bool {
23756 if !self.sheet_name.is_empty() {
23757 return false;
23758 }
23759 #[cfg(feature = "extra-children")]
23760 if !self.extra_children.is_empty() {
23761 return false;
23762 }
23763 true
23764 }
23765}
23766
23767impl ToXml for CTExternalSheetName {
23768 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
23769 #[allow(unused_mut)]
23770 let mut start = start;
23771 if let Some(ref val) = self.value {
23772 start.push_attribute(("val", val.as_str()));
23773 }
23774 #[cfg(feature = "extra-attrs")]
23775 for (key, value) in &self.extra_attrs {
23776 start.push_attribute((key.as_str(), value.as_str()));
23777 }
23778 start
23779 }
23780
23781 fn is_empty_element(&self) -> bool {
23782 true
23783 }
23784}
23785
23786impl ToXml for CTExternalDefinedNames {
23787 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
23788 #[cfg(feature = "extra-children")]
23789 let mut extra_iter = self.extra_children.iter().peekable();
23790 #[cfg(feature = "extra-children")]
23791 let mut emit_idx: usize = 0;
23792 for item in &self.defined_name {
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 item.write_element("definedName", writer)?;
23803 #[cfg(feature = "extra-children")]
23804 {
23805 emit_idx += 1;
23806 }
23807 }
23808 #[cfg(feature = "extra-children")]
23809 for extra in extra_iter {
23810 extra.node.write_to(writer).map_err(SerializeError::from)?;
23811 }
23812 Ok(())
23813 }
23814
23815 fn is_empty_element(&self) -> bool {
23816 if !self.defined_name.is_empty() {
23817 return false;
23818 }
23819 #[cfg(feature = "extra-children")]
23820 if !self.extra_children.is_empty() {
23821 return false;
23822 }
23823 true
23824 }
23825}
23826
23827impl ToXml for CTExternalDefinedName {
23828 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
23829 #[allow(unused_mut)]
23830 let mut start = start;
23831 {
23832 let val = &self.name;
23833 start.push_attribute(("name", val.as_str()));
23834 }
23835 if let Some(ref val) = self.refers_to {
23836 start.push_attribute(("refersTo", val.as_str()));
23837 }
23838 if let Some(ref val) = self.sheet_id {
23839 {
23840 let s = val.to_string();
23841 start.push_attribute(("sheetId", s.as_str()));
23842 }
23843 }
23844 #[cfg(feature = "extra-attrs")]
23845 for (key, value) in &self.extra_attrs {
23846 start.push_attribute((key.as_str(), value.as_str()));
23847 }
23848 start
23849 }
23850
23851 fn is_empty_element(&self) -> bool {
23852 true
23853 }
23854}
23855
23856impl ToXml for ExternalSheetDataSet {
23857 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
23858 #[cfg(feature = "extra-children")]
23859 let mut extra_iter = self.extra_children.iter().peekable();
23860 #[cfg(feature = "extra-children")]
23861 let mut emit_idx: usize = 0;
23862 for item in &self.sheet_data {
23863 #[cfg(feature = "extra-children")]
23864 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23865 extra_iter
23866 .next()
23867 .unwrap()
23868 .node
23869 .write_to(writer)
23870 .map_err(SerializeError::from)?;
23871 }
23872 item.write_element("sheetData", writer)?;
23873 #[cfg(feature = "extra-children")]
23874 {
23875 emit_idx += 1;
23876 }
23877 }
23878 #[cfg(feature = "extra-children")]
23879 for extra in extra_iter {
23880 extra.node.write_to(writer).map_err(SerializeError::from)?;
23881 }
23882 Ok(())
23883 }
23884
23885 fn is_empty_element(&self) -> bool {
23886 if !self.sheet_data.is_empty() {
23887 return false;
23888 }
23889 #[cfg(feature = "extra-children")]
23890 if !self.extra_children.is_empty() {
23891 return false;
23892 }
23893 true
23894 }
23895}
23896
23897impl ToXml for ExternalSheetData {
23898 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
23899 #[allow(unused_mut)]
23900 let mut start = start;
23901 {
23902 let val = &self.sheet_id;
23903 {
23904 let s = val.to_string();
23905 start.push_attribute(("sheetId", s.as_str()));
23906 }
23907 }
23908 if let Some(ref val) = self.refresh_error {
23909 start.push_attribute(("refreshError", if *val { "1" } else { "0" }));
23910 }
23911 #[cfg(feature = "extra-attrs")]
23912 for (key, value) in &self.extra_attrs {
23913 start.push_attribute((key.as_str(), value.as_str()));
23914 }
23915 start
23916 }
23917
23918 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
23919 #[cfg(feature = "extra-children")]
23920 let mut extra_iter = self.extra_children.iter().peekable();
23921 #[cfg(feature = "extra-children")]
23922 let mut emit_idx: usize = 0;
23923 for item in &self.row {
23924 #[cfg(feature = "extra-children")]
23925 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23926 extra_iter
23927 .next()
23928 .unwrap()
23929 .node
23930 .write_to(writer)
23931 .map_err(SerializeError::from)?;
23932 }
23933 item.write_element("row", writer)?;
23934 #[cfg(feature = "extra-children")]
23935 {
23936 emit_idx += 1;
23937 }
23938 }
23939 #[cfg(feature = "extra-children")]
23940 for extra in extra_iter {
23941 extra.node.write_to(writer).map_err(SerializeError::from)?;
23942 }
23943 Ok(())
23944 }
23945
23946 fn is_empty_element(&self) -> bool {
23947 if !self.row.is_empty() {
23948 return false;
23949 }
23950 #[cfg(feature = "extra-children")]
23951 if !self.extra_children.is_empty() {
23952 return false;
23953 }
23954 true
23955 }
23956}
23957
23958impl ToXml for ExternalRow {
23959 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
23960 #[allow(unused_mut)]
23961 let mut start = start;
23962 {
23963 let val = &self.reference;
23964 {
23965 let s = val.to_string();
23966 start.push_attribute(("r", s.as_str()));
23967 }
23968 }
23969 #[cfg(feature = "extra-attrs")]
23970 for (key, value) in &self.extra_attrs {
23971 start.push_attribute((key.as_str(), value.as_str()));
23972 }
23973 start
23974 }
23975
23976 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
23977 #[cfg(feature = "extra-children")]
23978 let mut extra_iter = self.extra_children.iter().peekable();
23979 #[cfg(feature = "extra-children")]
23980 let mut emit_idx: usize = 0;
23981 for item in &self.cell {
23982 #[cfg(feature = "extra-children")]
23983 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
23984 extra_iter
23985 .next()
23986 .unwrap()
23987 .node
23988 .write_to(writer)
23989 .map_err(SerializeError::from)?;
23990 }
23991 item.write_element("cell", writer)?;
23992 #[cfg(feature = "extra-children")]
23993 {
23994 emit_idx += 1;
23995 }
23996 }
23997 #[cfg(feature = "extra-children")]
23998 for extra in extra_iter {
23999 extra.node.write_to(writer).map_err(SerializeError::from)?;
24000 }
24001 Ok(())
24002 }
24003
24004 fn is_empty_element(&self) -> bool {
24005 if !self.cell.is_empty() {
24006 return false;
24007 }
24008 #[cfg(feature = "extra-children")]
24009 if !self.extra_children.is_empty() {
24010 return false;
24011 }
24012 true
24013 }
24014}
24015
24016impl ToXml for ExternalCell {
24017 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
24018 #[allow(unused_mut)]
24019 let mut start = start;
24020 if let Some(ref val) = self.reference {
24021 start.push_attribute(("r", val.as_str()));
24022 }
24023 if let Some(ref val) = self.cell_type {
24024 {
24025 let s = val.to_string();
24026 start.push_attribute(("t", s.as_str()));
24027 }
24028 }
24029 if let Some(ref val) = self.vm {
24030 {
24031 let s = val.to_string();
24032 start.push_attribute(("vm", s.as_str()));
24033 }
24034 }
24035 #[cfg(feature = "extra-attrs")]
24036 for (key, value) in &self.extra_attrs {
24037 start.push_attribute((key.as_str(), value.as_str()));
24038 }
24039 start
24040 }
24041
24042 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
24043 #[cfg(feature = "extra-children")]
24044 let mut extra_iter = self.extra_children.iter().peekable();
24045 #[cfg(feature = "extra-children")]
24046 let mut emit_idx: usize = 0;
24047 #[cfg(feature = "extra-children")]
24048 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24049 extra_iter
24050 .next()
24051 .unwrap()
24052 .node
24053 .write_to(writer)
24054 .map_err(SerializeError::from)?;
24055 }
24056 if let Some(ref val) = self.value {
24057 {
24058 let start = BytesStart::new("v");
24059 writer.write_event(Event::Start(start))?;
24060 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
24061 writer.write_event(Event::End(BytesEnd::new("v")))?;
24062 }
24063 }
24064 #[cfg(feature = "extra-children")]
24065 {
24066 emit_idx += 1;
24067 }
24068 #[cfg(feature = "extra-children")]
24069 for extra in extra_iter {
24070 extra.node.write_to(writer).map_err(SerializeError::from)?;
24071 }
24072 Ok(())
24073 }
24074
24075 fn is_empty_element(&self) -> bool {
24076 if self.value.is_some() {
24077 return false;
24078 }
24079 #[cfg(feature = "extra-children")]
24080 if !self.extra_children.is_empty() {
24081 return false;
24082 }
24083 true
24084 }
24085}
24086
24087impl ToXml for DdeLink {
24088 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
24089 #[allow(unused_mut)]
24090 let mut start = start;
24091 {
24092 let val = &self.dde_service;
24093 start.push_attribute(("ddeService", val.as_str()));
24094 }
24095 {
24096 let val = &self.dde_topic;
24097 start.push_attribute(("ddeTopic", val.as_str()));
24098 }
24099 #[cfg(feature = "extra-attrs")]
24100 for (key, value) in &self.extra_attrs {
24101 start.push_attribute((key.as_str(), value.as_str()));
24102 }
24103 start
24104 }
24105
24106 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
24107 #[cfg(feature = "extra-children")]
24108 let mut extra_iter = self.extra_children.iter().peekable();
24109 #[cfg(feature = "extra-children")]
24110 let mut emit_idx: usize = 0;
24111 #[cfg(feature = "extra-children")]
24112 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24113 extra_iter
24114 .next()
24115 .unwrap()
24116 .node
24117 .write_to(writer)
24118 .map_err(SerializeError::from)?;
24119 }
24120 if let Some(ref val) = self.dde_items {
24121 val.write_element("ddeItems", writer)?;
24122 }
24123 #[cfg(feature = "extra-children")]
24124 {
24125 emit_idx += 1;
24126 }
24127 #[cfg(feature = "extra-children")]
24128 for extra in extra_iter {
24129 extra.node.write_to(writer).map_err(SerializeError::from)?;
24130 }
24131 Ok(())
24132 }
24133
24134 fn is_empty_element(&self) -> bool {
24135 if self.dde_items.is_some() {
24136 return false;
24137 }
24138 #[cfg(feature = "extra-children")]
24139 if !self.extra_children.is_empty() {
24140 return false;
24141 }
24142 true
24143 }
24144}
24145
24146impl ToXml for DdeItems {
24147 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
24148 #[cfg(feature = "extra-children")]
24149 let mut extra_iter = self.extra_children.iter().peekable();
24150 #[cfg(feature = "extra-children")]
24151 let mut emit_idx: usize = 0;
24152 for item in &self.dde_item {
24153 #[cfg(feature = "extra-children")]
24154 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24155 extra_iter
24156 .next()
24157 .unwrap()
24158 .node
24159 .write_to(writer)
24160 .map_err(SerializeError::from)?;
24161 }
24162 item.write_element("ddeItem", writer)?;
24163 #[cfg(feature = "extra-children")]
24164 {
24165 emit_idx += 1;
24166 }
24167 }
24168 #[cfg(feature = "extra-children")]
24169 for extra in extra_iter {
24170 extra.node.write_to(writer).map_err(SerializeError::from)?;
24171 }
24172 Ok(())
24173 }
24174
24175 fn is_empty_element(&self) -> bool {
24176 if !self.dde_item.is_empty() {
24177 return false;
24178 }
24179 #[cfg(feature = "extra-children")]
24180 if !self.extra_children.is_empty() {
24181 return false;
24182 }
24183 true
24184 }
24185}
24186
24187impl ToXml for DdeItem {
24188 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
24189 #[allow(unused_mut)]
24190 let mut start = start;
24191 if let Some(ref val) = self.name {
24192 start.push_attribute(("name", val.as_str()));
24193 }
24194 if let Some(ref val) = self.ole {
24195 start.push_attribute(("ole", if *val { "1" } else { "0" }));
24196 }
24197 if let Some(ref val) = self.advise {
24198 start.push_attribute(("advise", if *val { "1" } else { "0" }));
24199 }
24200 if let Some(ref val) = self.prefer_pic {
24201 start.push_attribute(("preferPic", if *val { "1" } else { "0" }));
24202 }
24203 #[cfg(feature = "extra-attrs")]
24204 for (key, value) in &self.extra_attrs {
24205 start.push_attribute((key.as_str(), value.as_str()));
24206 }
24207 start
24208 }
24209
24210 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
24211 #[cfg(feature = "extra-children")]
24212 let mut extra_iter = self.extra_children.iter().peekable();
24213 #[cfg(feature = "extra-children")]
24214 let mut emit_idx: usize = 0;
24215 #[cfg(feature = "extra-children")]
24216 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24217 extra_iter
24218 .next()
24219 .unwrap()
24220 .node
24221 .write_to(writer)
24222 .map_err(SerializeError::from)?;
24223 }
24224 if let Some(ref val) = self.values {
24225 val.write_element("values", writer)?;
24226 }
24227 #[cfg(feature = "extra-children")]
24228 {
24229 emit_idx += 1;
24230 }
24231 #[cfg(feature = "extra-children")]
24232 for extra in extra_iter {
24233 extra.node.write_to(writer).map_err(SerializeError::from)?;
24234 }
24235 Ok(())
24236 }
24237
24238 fn is_empty_element(&self) -> bool {
24239 if self.values.is_some() {
24240 return false;
24241 }
24242 #[cfg(feature = "extra-children")]
24243 if !self.extra_children.is_empty() {
24244 return false;
24245 }
24246 true
24247 }
24248}
24249
24250impl ToXml for CTDdeValues {
24251 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
24252 #[allow(unused_mut)]
24253 let mut start = start;
24254 if let Some(ref val) = self.rows {
24255 {
24256 let s = val.to_string();
24257 start.push_attribute(("rows", s.as_str()));
24258 }
24259 }
24260 if let Some(ref val) = self.cols {
24261 {
24262 let s = val.to_string();
24263 start.push_attribute(("cols", s.as_str()));
24264 }
24265 }
24266 #[cfg(feature = "extra-attrs")]
24267 for (key, value) in &self.extra_attrs {
24268 start.push_attribute((key.as_str(), value.as_str()));
24269 }
24270 start
24271 }
24272
24273 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
24274 #[cfg(feature = "extra-children")]
24275 let mut extra_iter = self.extra_children.iter().peekable();
24276 #[cfg(feature = "extra-children")]
24277 let mut emit_idx: usize = 0;
24278 for item in &self.value {
24279 #[cfg(feature = "extra-children")]
24280 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24281 extra_iter
24282 .next()
24283 .unwrap()
24284 .node
24285 .write_to(writer)
24286 .map_err(SerializeError::from)?;
24287 }
24288 item.write_element("value", writer)?;
24289 #[cfg(feature = "extra-children")]
24290 {
24291 emit_idx += 1;
24292 }
24293 }
24294 #[cfg(feature = "extra-children")]
24295 for extra in extra_iter {
24296 extra.node.write_to(writer).map_err(SerializeError::from)?;
24297 }
24298 Ok(())
24299 }
24300
24301 fn is_empty_element(&self) -> bool {
24302 if !self.value.is_empty() {
24303 return false;
24304 }
24305 #[cfg(feature = "extra-children")]
24306 if !self.extra_children.is_empty() {
24307 return false;
24308 }
24309 true
24310 }
24311}
24312
24313impl ToXml for CTDdeValue {
24314 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
24315 #[allow(unused_mut)]
24316 let mut start = start;
24317 if let Some(ref val) = self.cell_type {
24318 {
24319 let s = val.to_string();
24320 start.push_attribute(("t", s.as_str()));
24321 }
24322 }
24323 #[cfg(feature = "extra-attrs")]
24324 for (key, value) in &self.extra_attrs {
24325 start.push_attribute((key.as_str(), value.as_str()));
24326 }
24327 start
24328 }
24329
24330 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
24331 #[cfg(feature = "extra-children")]
24332 let mut extra_iter = self.extra_children.iter().peekable();
24333 #[cfg(feature = "extra-children")]
24334 let mut emit_idx: usize = 0;
24335 #[cfg(feature = "extra-children")]
24336 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24337 extra_iter
24338 .next()
24339 .unwrap()
24340 .node
24341 .write_to(writer)
24342 .map_err(SerializeError::from)?;
24343 }
24344 {
24345 let val = &self.value;
24346 {
24347 let start = BytesStart::new("val");
24348 writer.write_event(Event::Start(start))?;
24349 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
24350 writer.write_event(Event::End(BytesEnd::new("val")))?;
24351 }
24352 }
24353 #[cfg(feature = "extra-children")]
24354 {
24355 emit_idx += 1;
24356 }
24357 #[cfg(feature = "extra-children")]
24358 for extra in extra_iter {
24359 extra.node.write_to(writer).map_err(SerializeError::from)?;
24360 }
24361 Ok(())
24362 }
24363
24364 fn is_empty_element(&self) -> bool {
24365 false
24366 }
24367}
24368
24369impl ToXml for OleLink {
24370 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
24371 #[allow(unused_mut)]
24372 let mut start = start;
24373 {
24374 let val = &self.id;
24375 start.push_attribute(("r:id", val.as_str()));
24376 }
24377 {
24378 let val = &self.prog_id;
24379 start.push_attribute(("progId", val.as_str()));
24380 }
24381 #[cfg(feature = "extra-attrs")]
24382 for (key, value) in &self.extra_attrs {
24383 start.push_attribute((key.as_str(), value.as_str()));
24384 }
24385 start
24386 }
24387
24388 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
24389 #[cfg(feature = "extra-children")]
24390 let mut extra_iter = self.extra_children.iter().peekable();
24391 #[cfg(feature = "extra-children")]
24392 let mut emit_idx: usize = 0;
24393 #[cfg(feature = "extra-children")]
24394 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24395 extra_iter
24396 .next()
24397 .unwrap()
24398 .node
24399 .write_to(writer)
24400 .map_err(SerializeError::from)?;
24401 }
24402 if let Some(ref val) = self.ole_items {
24403 val.write_element("oleItems", writer)?;
24404 }
24405 #[cfg(feature = "extra-children")]
24406 {
24407 emit_idx += 1;
24408 }
24409 #[cfg(feature = "extra-children")]
24410 for extra in extra_iter {
24411 extra.node.write_to(writer).map_err(SerializeError::from)?;
24412 }
24413 Ok(())
24414 }
24415
24416 fn is_empty_element(&self) -> bool {
24417 if self.ole_items.is_some() {
24418 return false;
24419 }
24420 #[cfg(feature = "extra-children")]
24421 if !self.extra_children.is_empty() {
24422 return false;
24423 }
24424 true
24425 }
24426}
24427
24428impl ToXml for OleItems {
24429 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
24430 #[cfg(feature = "extra-children")]
24431 let mut extra_iter = self.extra_children.iter().peekable();
24432 #[cfg(feature = "extra-children")]
24433 let mut emit_idx: usize = 0;
24434 for item in &self.ole_item {
24435 #[cfg(feature = "extra-children")]
24436 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24437 extra_iter
24438 .next()
24439 .unwrap()
24440 .node
24441 .write_to(writer)
24442 .map_err(SerializeError::from)?;
24443 }
24444 item.write_element("oleItem", writer)?;
24445 #[cfg(feature = "extra-children")]
24446 {
24447 emit_idx += 1;
24448 }
24449 }
24450 #[cfg(feature = "extra-children")]
24451 for extra in extra_iter {
24452 extra.node.write_to(writer).map_err(SerializeError::from)?;
24453 }
24454 Ok(())
24455 }
24456
24457 fn is_empty_element(&self) -> bool {
24458 if !self.ole_item.is_empty() {
24459 return false;
24460 }
24461 #[cfg(feature = "extra-children")]
24462 if !self.extra_children.is_empty() {
24463 return false;
24464 }
24465 true
24466 }
24467}
24468
24469impl ToXml for OleItem {
24470 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
24471 #[allow(unused_mut)]
24472 let mut start = start;
24473 {
24474 let val = &self.name;
24475 start.push_attribute(("name", val.as_str()));
24476 }
24477 if let Some(ref val) = self.icon {
24478 start.push_attribute(("icon", if *val { "1" } else { "0" }));
24479 }
24480 if let Some(ref val) = self.advise {
24481 start.push_attribute(("advise", if *val { "1" } else { "0" }));
24482 }
24483 if let Some(ref val) = self.prefer_pic {
24484 start.push_attribute(("preferPic", if *val { "1" } else { "0" }));
24485 }
24486 #[cfg(feature = "extra-attrs")]
24487 for (key, value) in &self.extra_attrs {
24488 start.push_attribute((key.as_str(), value.as_str()));
24489 }
24490 start
24491 }
24492
24493 fn is_empty_element(&self) -> bool {
24494 true
24495 }
24496}
24497
24498impl ToXml for Table {
24499 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
24500 #[allow(unused_mut)]
24501 let mut start = start;
24502 #[cfg(feature = "sml-tables")]
24503 {
24504 let val = &self.id;
24505 {
24506 let s = val.to_string();
24507 start.push_attribute(("id", s.as_str()));
24508 }
24509 }
24510 #[cfg(feature = "sml-tables")]
24511 if let Some(ref val) = self.name {
24512 start.push_attribute(("name", val.as_str()));
24513 }
24514 #[cfg(feature = "sml-tables")]
24515 {
24516 let val = &self.display_name;
24517 start.push_attribute(("displayName", val.as_str()));
24518 }
24519 #[cfg(feature = "sml-tables")]
24520 if let Some(ref val) = self.comment {
24521 start.push_attribute(("comment", val.as_str()));
24522 }
24523 #[cfg(feature = "sml-tables")]
24524 {
24525 let val = &self.reference;
24526 start.push_attribute(("ref", val.as_str()));
24527 }
24528 #[cfg(feature = "sml-tables")]
24529 if let Some(ref val) = self.table_type {
24530 {
24531 let s = val.to_string();
24532 start.push_attribute(("tableType", s.as_str()));
24533 }
24534 }
24535 #[cfg(feature = "sml-tables")]
24536 if let Some(ref val) = self.header_row_count {
24537 {
24538 let s = val.to_string();
24539 start.push_attribute(("headerRowCount", s.as_str()));
24540 }
24541 }
24542 #[cfg(feature = "sml-tables")]
24543 if let Some(ref val) = self.insert_row {
24544 start.push_attribute(("insertRow", if *val { "1" } else { "0" }));
24545 }
24546 #[cfg(feature = "sml-tables")]
24547 if let Some(ref val) = self.insert_row_shift {
24548 start.push_attribute(("insertRowShift", if *val { "1" } else { "0" }));
24549 }
24550 #[cfg(feature = "sml-tables")]
24551 if let Some(ref val) = self.totals_row_count {
24552 {
24553 let s = val.to_string();
24554 start.push_attribute(("totalsRowCount", s.as_str()));
24555 }
24556 }
24557 #[cfg(feature = "sml-tables")]
24558 if let Some(ref val) = self.totals_row_shown {
24559 start.push_attribute(("totalsRowShown", if *val { "1" } else { "0" }));
24560 }
24561 #[cfg(feature = "sml-tables")]
24562 if let Some(ref val) = self.published {
24563 start.push_attribute(("published", if *val { "1" } else { "0" }));
24564 }
24565 #[cfg(feature = "sml-tables")]
24566 if let Some(ref val) = self.header_row_dxf_id {
24567 {
24568 let s = val.to_string();
24569 start.push_attribute(("headerRowDxfId", s.as_str()));
24570 }
24571 }
24572 #[cfg(feature = "sml-tables")]
24573 if let Some(ref val) = self.data_dxf_id {
24574 {
24575 let s = val.to_string();
24576 start.push_attribute(("dataDxfId", s.as_str()));
24577 }
24578 }
24579 #[cfg(feature = "sml-tables")]
24580 if let Some(ref val) = self.totals_row_dxf_id {
24581 {
24582 let s = val.to_string();
24583 start.push_attribute(("totalsRowDxfId", s.as_str()));
24584 }
24585 }
24586 #[cfg(feature = "sml-tables")]
24587 if let Some(ref val) = self.header_row_border_dxf_id {
24588 {
24589 let s = val.to_string();
24590 start.push_attribute(("headerRowBorderDxfId", s.as_str()));
24591 }
24592 }
24593 #[cfg(feature = "sml-tables")]
24594 if let Some(ref val) = self.table_border_dxf_id {
24595 {
24596 let s = val.to_string();
24597 start.push_attribute(("tableBorderDxfId", s.as_str()));
24598 }
24599 }
24600 #[cfg(feature = "sml-tables")]
24601 if let Some(ref val) = self.totals_row_border_dxf_id {
24602 {
24603 let s = val.to_string();
24604 start.push_attribute(("totalsRowBorderDxfId", s.as_str()));
24605 }
24606 }
24607 #[cfg(feature = "sml-tables")]
24608 if let Some(ref val) = self.header_row_cell_style {
24609 start.push_attribute(("headerRowCellStyle", val.as_str()));
24610 }
24611 #[cfg(feature = "sml-tables")]
24612 if let Some(ref val) = self.data_cell_style {
24613 start.push_attribute(("dataCellStyle", val.as_str()));
24614 }
24615 #[cfg(feature = "sml-tables")]
24616 if let Some(ref val) = self.totals_row_cell_style {
24617 start.push_attribute(("totalsRowCellStyle", val.as_str()));
24618 }
24619 #[cfg(feature = "sml-tables")]
24620 if let Some(ref val) = self.connection_id {
24621 {
24622 let s = val.to_string();
24623 start.push_attribute(("connectionId", s.as_str()));
24624 }
24625 }
24626 #[cfg(feature = "extra-attrs")]
24627 for (key, value) in &self.extra_attrs {
24628 start.push_attribute((key.as_str(), value.as_str()));
24629 }
24630 start
24631 }
24632
24633 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
24634 #[cfg(feature = "extra-children")]
24635 let mut extra_iter = self.extra_children.iter().peekable();
24636 #[cfg(feature = "extra-children")]
24637 let mut emit_idx: usize = 0;
24638 #[cfg(feature = "extra-children")]
24639 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24640 extra_iter
24641 .next()
24642 .unwrap()
24643 .node
24644 .write_to(writer)
24645 .map_err(SerializeError::from)?;
24646 }
24647 #[cfg(feature = "sml-tables")]
24648 if let Some(ref val) = self.auto_filter {
24649 val.write_element("autoFilter", writer)?;
24650 }
24651 #[cfg(feature = "extra-children")]
24652 {
24653 emit_idx += 1;
24654 }
24655 #[cfg(feature = "extra-children")]
24656 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24657 extra_iter
24658 .next()
24659 .unwrap()
24660 .node
24661 .write_to(writer)
24662 .map_err(SerializeError::from)?;
24663 }
24664 #[cfg(feature = "sml-tables")]
24665 if let Some(ref val) = self.sort_state {
24666 val.write_element("sortState", writer)?;
24667 }
24668 #[cfg(feature = "extra-children")]
24669 {
24670 emit_idx += 1;
24671 }
24672 #[cfg(feature = "extra-children")]
24673 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24674 extra_iter
24675 .next()
24676 .unwrap()
24677 .node
24678 .write_to(writer)
24679 .map_err(SerializeError::from)?;
24680 }
24681 #[cfg(feature = "sml-tables")]
24682 {
24683 let val = &self.table_columns;
24684 val.write_element("tableColumns", writer)?;
24685 }
24686 #[cfg(feature = "extra-children")]
24687 {
24688 emit_idx += 1;
24689 }
24690 #[cfg(feature = "extra-children")]
24691 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24692 extra_iter
24693 .next()
24694 .unwrap()
24695 .node
24696 .write_to(writer)
24697 .map_err(SerializeError::from)?;
24698 }
24699 #[cfg(feature = "sml-tables")]
24700 if let Some(ref val) = self.table_style_info {
24701 val.write_element("tableStyleInfo", writer)?;
24702 }
24703 #[cfg(feature = "extra-children")]
24704 {
24705 emit_idx += 1;
24706 }
24707 #[cfg(feature = "extra-children")]
24708 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24709 extra_iter
24710 .next()
24711 .unwrap()
24712 .node
24713 .write_to(writer)
24714 .map_err(SerializeError::from)?;
24715 }
24716 #[cfg(feature = "sml-extensions")]
24717 if let Some(ref val) = self.extension_list {
24718 val.write_element("extLst", writer)?;
24719 }
24720 #[cfg(feature = "extra-children")]
24721 {
24722 emit_idx += 1;
24723 }
24724 #[cfg(feature = "extra-children")]
24725 for extra in extra_iter {
24726 extra.node.write_to(writer).map_err(SerializeError::from)?;
24727 }
24728 Ok(())
24729 }
24730
24731 fn is_empty_element(&self) -> bool {
24732 #[cfg(feature = "sml-tables")]
24733 if self.auto_filter.is_some() {
24734 return false;
24735 }
24736 #[cfg(feature = "sml-tables")]
24737 if self.sort_state.is_some() {
24738 return false;
24739 }
24740 #[cfg(feature = "sml-tables")]
24741 return false;
24742 #[cfg(feature = "sml-tables")]
24743 if self.table_style_info.is_some() {
24744 return false;
24745 }
24746 #[cfg(feature = "sml-extensions")]
24747 if self.extension_list.is_some() {
24748 return false;
24749 }
24750 #[cfg(feature = "extra-children")]
24751 if !self.extra_children.is_empty() {
24752 return false;
24753 }
24754 true
24755 }
24756}
24757
24758impl ToXml for TableStyleInfo {
24759 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
24760 #[allow(unused_mut)]
24761 let mut start = start;
24762 if let Some(ref val) = self.name {
24763 start.push_attribute(("name", val.as_str()));
24764 }
24765 if let Some(ref val) = self.show_first_column {
24766 start.push_attribute(("showFirstColumn", if *val { "1" } else { "0" }));
24767 }
24768 if let Some(ref val) = self.show_last_column {
24769 start.push_attribute(("showLastColumn", if *val { "1" } else { "0" }));
24770 }
24771 if let Some(ref val) = self.show_row_stripes {
24772 start.push_attribute(("showRowStripes", if *val { "1" } else { "0" }));
24773 }
24774 if let Some(ref val) = self.show_column_stripes {
24775 start.push_attribute(("showColumnStripes", if *val { "1" } else { "0" }));
24776 }
24777 #[cfg(feature = "extra-attrs")]
24778 for (key, value) in &self.extra_attrs {
24779 start.push_attribute((key.as_str(), value.as_str()));
24780 }
24781 start
24782 }
24783
24784 fn is_empty_element(&self) -> bool {
24785 true
24786 }
24787}
24788
24789impl ToXml for TableColumns {
24790 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
24791 #[allow(unused_mut)]
24792 let mut start = start;
24793 if let Some(ref val) = self.count {
24794 {
24795 let s = val.to_string();
24796 start.push_attribute(("count", s.as_str()));
24797 }
24798 }
24799 #[cfg(feature = "extra-attrs")]
24800 for (key, value) in &self.extra_attrs {
24801 start.push_attribute((key.as_str(), value.as_str()));
24802 }
24803 start
24804 }
24805
24806 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
24807 #[cfg(feature = "extra-children")]
24808 let mut extra_iter = self.extra_children.iter().peekable();
24809 #[cfg(feature = "extra-children")]
24810 let mut emit_idx: usize = 0;
24811 for item in &self.table_column {
24812 #[cfg(feature = "extra-children")]
24813 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24814 extra_iter
24815 .next()
24816 .unwrap()
24817 .node
24818 .write_to(writer)
24819 .map_err(SerializeError::from)?;
24820 }
24821 item.write_element("tableColumn", writer)?;
24822 #[cfg(feature = "extra-children")]
24823 {
24824 emit_idx += 1;
24825 }
24826 }
24827 #[cfg(feature = "extra-children")]
24828 for extra in extra_iter {
24829 extra.node.write_to(writer).map_err(SerializeError::from)?;
24830 }
24831 Ok(())
24832 }
24833
24834 fn is_empty_element(&self) -> bool {
24835 if !self.table_column.is_empty() {
24836 return false;
24837 }
24838 #[cfg(feature = "extra-children")]
24839 if !self.extra_children.is_empty() {
24840 return false;
24841 }
24842 true
24843 }
24844}
24845
24846impl ToXml for TableColumn {
24847 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
24848 #[allow(unused_mut)]
24849 let mut start = start;
24850 {
24851 let val = &self.id;
24852 {
24853 let s = val.to_string();
24854 start.push_attribute(("id", s.as_str()));
24855 }
24856 }
24857 if let Some(ref val) = self.unique_name {
24858 start.push_attribute(("uniqueName", val.as_str()));
24859 }
24860 {
24861 let val = &self.name;
24862 start.push_attribute(("name", val.as_str()));
24863 }
24864 if let Some(ref val) = self.totals_row_function {
24865 {
24866 let s = val.to_string();
24867 start.push_attribute(("totalsRowFunction", s.as_str()));
24868 }
24869 }
24870 if let Some(ref val) = self.totals_row_label {
24871 start.push_attribute(("totalsRowLabel", val.as_str()));
24872 }
24873 if let Some(ref val) = self.query_table_field_id {
24874 {
24875 let s = val.to_string();
24876 start.push_attribute(("queryTableFieldId", s.as_str()));
24877 }
24878 }
24879 if let Some(ref val) = self.header_row_dxf_id {
24880 {
24881 let s = val.to_string();
24882 start.push_attribute(("headerRowDxfId", s.as_str()));
24883 }
24884 }
24885 if let Some(ref val) = self.data_dxf_id {
24886 {
24887 let s = val.to_string();
24888 start.push_attribute(("dataDxfId", s.as_str()));
24889 }
24890 }
24891 if let Some(ref val) = self.totals_row_dxf_id {
24892 {
24893 let s = val.to_string();
24894 start.push_attribute(("totalsRowDxfId", s.as_str()));
24895 }
24896 }
24897 if let Some(ref val) = self.header_row_cell_style {
24898 start.push_attribute(("headerRowCellStyle", val.as_str()));
24899 }
24900 if let Some(ref val) = self.data_cell_style {
24901 start.push_attribute(("dataCellStyle", val.as_str()));
24902 }
24903 if let Some(ref val) = self.totals_row_cell_style {
24904 start.push_attribute(("totalsRowCellStyle", val.as_str()));
24905 }
24906 #[cfg(feature = "extra-attrs")]
24907 for (key, value) in &self.extra_attrs {
24908 start.push_attribute((key.as_str(), value.as_str()));
24909 }
24910 start
24911 }
24912
24913 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
24914 #[cfg(feature = "extra-children")]
24915 let mut extra_iter = self.extra_children.iter().peekable();
24916 #[cfg(feature = "extra-children")]
24917 let mut emit_idx: usize = 0;
24918 #[cfg(feature = "extra-children")]
24919 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24920 extra_iter
24921 .next()
24922 .unwrap()
24923 .node
24924 .write_to(writer)
24925 .map_err(SerializeError::from)?;
24926 }
24927 if let Some(ref val) = self.calculated_column_formula {
24928 val.write_element("calculatedColumnFormula", writer)?;
24929 }
24930 #[cfg(feature = "extra-children")]
24931 {
24932 emit_idx += 1;
24933 }
24934 #[cfg(feature = "extra-children")]
24935 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24936 extra_iter
24937 .next()
24938 .unwrap()
24939 .node
24940 .write_to(writer)
24941 .map_err(SerializeError::from)?;
24942 }
24943 if let Some(ref val) = self.totals_row_formula {
24944 val.write_element("totalsRowFormula", writer)?;
24945 }
24946 #[cfg(feature = "extra-children")]
24947 {
24948 emit_idx += 1;
24949 }
24950 #[cfg(feature = "extra-children")]
24951 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24952 extra_iter
24953 .next()
24954 .unwrap()
24955 .node
24956 .write_to(writer)
24957 .map_err(SerializeError::from)?;
24958 }
24959 if let Some(ref val) = self.xml_column_pr {
24960 val.write_element("xmlColumnPr", writer)?;
24961 }
24962 #[cfg(feature = "extra-children")]
24963 {
24964 emit_idx += 1;
24965 }
24966 #[cfg(feature = "extra-children")]
24967 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
24968 extra_iter
24969 .next()
24970 .unwrap()
24971 .node
24972 .write_to(writer)
24973 .map_err(SerializeError::from)?;
24974 }
24975 if let Some(ref val) = self.extension_list {
24976 val.write_element("extLst", writer)?;
24977 }
24978 #[cfg(feature = "extra-children")]
24979 {
24980 emit_idx += 1;
24981 }
24982 #[cfg(feature = "extra-children")]
24983 for extra in extra_iter {
24984 extra.node.write_to(writer).map_err(SerializeError::from)?;
24985 }
24986 Ok(())
24987 }
24988
24989 fn is_empty_element(&self) -> bool {
24990 if self.calculated_column_formula.is_some() {
24991 return false;
24992 }
24993 if self.totals_row_formula.is_some() {
24994 return false;
24995 }
24996 if self.xml_column_pr.is_some() {
24997 return false;
24998 }
24999 if self.extension_list.is_some() {
25000 return false;
25001 }
25002 #[cfg(feature = "extra-children")]
25003 if !self.extra_children.is_empty() {
25004 return false;
25005 }
25006 true
25007 }
25008}
25009
25010impl ToXml for TableFormula {
25011 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25012 #[allow(unused_mut)]
25013 let mut start = start;
25014 if let Some(ref val) = self.array {
25015 start.push_attribute(("array", if *val { "1" } else { "0" }));
25016 }
25017 #[cfg(feature = "extra-attrs")]
25018 for (key, value) in &self.extra_attrs {
25019 start.push_attribute((key.as_str(), value.as_str()));
25020 }
25021 start
25022 }
25023
25024 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25025 if let Some(ref text) = self.text {
25026 writer.write_event(Event::Text(BytesText::new(text)))?;
25027 }
25028 #[cfg(feature = "extra-children")]
25029 for extra in &self.extra_children {
25030 extra.node.write_to(writer).map_err(SerializeError::from)?;
25031 }
25032 Ok(())
25033 }
25034
25035 fn is_empty_element(&self) -> bool {
25036 if self.text.is_some() {
25037 return false;
25038 }
25039 #[cfg(feature = "extra-children")]
25040 if !self.extra_children.is_empty() {
25041 return false;
25042 }
25043 true
25044 }
25045}
25046
25047impl ToXml for XmlColumnProperties {
25048 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25049 #[allow(unused_mut)]
25050 let mut start = start;
25051 {
25052 let val = &self.map_id;
25053 {
25054 let s = val.to_string();
25055 start.push_attribute(("mapId", s.as_str()));
25056 }
25057 }
25058 {
25059 let val = &self.xpath;
25060 start.push_attribute(("xpath", val.as_str()));
25061 }
25062 if let Some(ref val) = self.denormalized {
25063 start.push_attribute(("denormalized", if *val { "1" } else { "0" }));
25064 }
25065 {
25066 let val = &self.xml_data_type;
25067 start.push_attribute(("xmlDataType", val.as_str()));
25068 }
25069 #[cfg(feature = "extra-attrs")]
25070 for (key, value) in &self.extra_attrs {
25071 start.push_attribute((key.as_str(), value.as_str()));
25072 }
25073 start
25074 }
25075
25076 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25077 #[cfg(feature = "extra-children")]
25078 let mut extra_iter = self.extra_children.iter().peekable();
25079 #[cfg(feature = "extra-children")]
25080 let mut emit_idx: usize = 0;
25081 #[cfg(feature = "extra-children")]
25082 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25083 extra_iter
25084 .next()
25085 .unwrap()
25086 .node
25087 .write_to(writer)
25088 .map_err(SerializeError::from)?;
25089 }
25090 if let Some(ref val) = self.extension_list {
25091 val.write_element("extLst", writer)?;
25092 }
25093 #[cfg(feature = "extra-children")]
25094 {
25095 emit_idx += 1;
25096 }
25097 #[cfg(feature = "extra-children")]
25098 for extra in extra_iter {
25099 extra.node.write_to(writer).map_err(SerializeError::from)?;
25100 }
25101 Ok(())
25102 }
25103
25104 fn is_empty_element(&self) -> bool {
25105 if self.extension_list.is_some() {
25106 return false;
25107 }
25108 #[cfg(feature = "extra-children")]
25109 if !self.extra_children.is_empty() {
25110 return false;
25111 }
25112 true
25113 }
25114}
25115
25116impl ToXml for CTVolTypes {
25117 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25118 #[cfg(feature = "extra-children")]
25119 let mut extra_iter = self.extra_children.iter().peekable();
25120 #[cfg(feature = "extra-children")]
25121 let mut emit_idx: usize = 0;
25122 for item in &self.vol_type {
25123 #[cfg(feature = "extra-children")]
25124 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25125 extra_iter
25126 .next()
25127 .unwrap()
25128 .node
25129 .write_to(writer)
25130 .map_err(SerializeError::from)?;
25131 }
25132 item.write_element("volType", writer)?;
25133 #[cfg(feature = "extra-children")]
25134 {
25135 emit_idx += 1;
25136 }
25137 }
25138 #[cfg(feature = "extra-children")]
25139 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25140 extra_iter
25141 .next()
25142 .unwrap()
25143 .node
25144 .write_to(writer)
25145 .map_err(SerializeError::from)?;
25146 }
25147 if let Some(ref val) = self.extension_list {
25148 val.write_element("extLst", writer)?;
25149 }
25150 #[cfg(feature = "extra-children")]
25151 {
25152 emit_idx += 1;
25153 }
25154 #[cfg(feature = "extra-children")]
25155 for extra in extra_iter {
25156 extra.node.write_to(writer).map_err(SerializeError::from)?;
25157 }
25158 Ok(())
25159 }
25160
25161 fn is_empty_element(&self) -> bool {
25162 if !self.vol_type.is_empty() {
25163 return false;
25164 }
25165 if self.extension_list.is_some() {
25166 return false;
25167 }
25168 #[cfg(feature = "extra-children")]
25169 if !self.extra_children.is_empty() {
25170 return false;
25171 }
25172 true
25173 }
25174}
25175
25176impl ToXml for CTVolType {
25177 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25178 #[allow(unused_mut)]
25179 let mut start = start;
25180 {
25181 let val = &self.r#type;
25182 {
25183 let s = val.to_string();
25184 start.push_attribute(("type", s.as_str()));
25185 }
25186 }
25187 #[cfg(feature = "extra-attrs")]
25188 for (key, value) in &self.extra_attrs {
25189 start.push_attribute((key.as_str(), value.as_str()));
25190 }
25191 start
25192 }
25193
25194 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25195 #[cfg(feature = "extra-children")]
25196 let mut extra_iter = self.extra_children.iter().peekable();
25197 #[cfg(feature = "extra-children")]
25198 let mut emit_idx: usize = 0;
25199 for item in &self.main {
25200 #[cfg(feature = "extra-children")]
25201 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25202 extra_iter
25203 .next()
25204 .unwrap()
25205 .node
25206 .write_to(writer)
25207 .map_err(SerializeError::from)?;
25208 }
25209 item.write_element("main", writer)?;
25210 #[cfg(feature = "extra-children")]
25211 {
25212 emit_idx += 1;
25213 }
25214 }
25215 #[cfg(feature = "extra-children")]
25216 for extra in extra_iter {
25217 extra.node.write_to(writer).map_err(SerializeError::from)?;
25218 }
25219 Ok(())
25220 }
25221
25222 fn is_empty_element(&self) -> bool {
25223 if !self.main.is_empty() {
25224 return false;
25225 }
25226 #[cfg(feature = "extra-children")]
25227 if !self.extra_children.is_empty() {
25228 return false;
25229 }
25230 true
25231 }
25232}
25233
25234impl ToXml for CTVolMain {
25235 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25236 #[allow(unused_mut)]
25237 let mut start = start;
25238 {
25239 let val = &self.first;
25240 start.push_attribute(("first", val.as_str()));
25241 }
25242 #[cfg(feature = "extra-attrs")]
25243 for (key, value) in &self.extra_attrs {
25244 start.push_attribute((key.as_str(), value.as_str()));
25245 }
25246 start
25247 }
25248
25249 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25250 #[cfg(feature = "extra-children")]
25251 let mut extra_iter = self.extra_children.iter().peekable();
25252 #[cfg(feature = "extra-children")]
25253 let mut emit_idx: usize = 0;
25254 for item in &self.tp {
25255 #[cfg(feature = "extra-children")]
25256 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25257 extra_iter
25258 .next()
25259 .unwrap()
25260 .node
25261 .write_to(writer)
25262 .map_err(SerializeError::from)?;
25263 }
25264 item.write_element("tp", writer)?;
25265 #[cfg(feature = "extra-children")]
25266 {
25267 emit_idx += 1;
25268 }
25269 }
25270 #[cfg(feature = "extra-children")]
25271 for extra in extra_iter {
25272 extra.node.write_to(writer).map_err(SerializeError::from)?;
25273 }
25274 Ok(())
25275 }
25276
25277 fn is_empty_element(&self) -> bool {
25278 if !self.tp.is_empty() {
25279 return false;
25280 }
25281 #[cfg(feature = "extra-children")]
25282 if !self.extra_children.is_empty() {
25283 return false;
25284 }
25285 true
25286 }
25287}
25288
25289impl ToXml for CTVolTopic {
25290 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25291 #[allow(unused_mut)]
25292 let mut start = start;
25293 if let Some(ref val) = self.cell_type {
25294 {
25295 let s = val.to_string();
25296 start.push_attribute(("t", s.as_str()));
25297 }
25298 }
25299 #[cfg(feature = "extra-attrs")]
25300 for (key, value) in &self.extra_attrs {
25301 start.push_attribute((key.as_str(), value.as_str()));
25302 }
25303 start
25304 }
25305
25306 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25307 #[cfg(feature = "extra-children")]
25308 let mut extra_iter = self.extra_children.iter().peekable();
25309 #[cfg(feature = "extra-children")]
25310 let mut emit_idx: usize = 0;
25311 #[cfg(feature = "extra-children")]
25312 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25313 extra_iter
25314 .next()
25315 .unwrap()
25316 .node
25317 .write_to(writer)
25318 .map_err(SerializeError::from)?;
25319 }
25320 {
25321 let val = &self.value;
25322 {
25323 let start = BytesStart::new("v");
25324 writer.write_event(Event::Start(start))?;
25325 writer.write_event(Event::Text(BytesText::new(val.as_str())))?;
25326 writer.write_event(Event::End(BytesEnd::new("v")))?;
25327 }
25328 }
25329 #[cfg(feature = "extra-children")]
25330 {
25331 emit_idx += 1;
25332 }
25333 for item in &self.stp {
25334 #[cfg(feature = "extra-children")]
25335 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25336 extra_iter
25337 .next()
25338 .unwrap()
25339 .node
25340 .write_to(writer)
25341 .map_err(SerializeError::from)?;
25342 }
25343 {
25344 let start = BytesStart::new("stp");
25345 writer.write_event(Event::Start(start))?;
25346 writer.write_event(Event::Text(BytesText::new(item.as_str())))?;
25347 writer.write_event(Event::End(BytesEnd::new("stp")))?;
25348 }
25349 #[cfg(feature = "extra-children")]
25350 {
25351 emit_idx += 1;
25352 }
25353 }
25354 for item in &self.tr {
25355 #[cfg(feature = "extra-children")]
25356 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25357 extra_iter
25358 .next()
25359 .unwrap()
25360 .node
25361 .write_to(writer)
25362 .map_err(SerializeError::from)?;
25363 }
25364 item.write_element("tr", writer)?;
25365 #[cfg(feature = "extra-children")]
25366 {
25367 emit_idx += 1;
25368 }
25369 }
25370 #[cfg(feature = "extra-children")]
25371 for extra in extra_iter {
25372 extra.node.write_to(writer).map_err(SerializeError::from)?;
25373 }
25374 Ok(())
25375 }
25376
25377 fn is_empty_element(&self) -> bool {
25378 false
25379 }
25380}
25381
25382impl ToXml for CTVolTopicRef {
25383 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25384 #[allow(unused_mut)]
25385 let mut start = start;
25386 {
25387 let val = &self.reference;
25388 start.push_attribute(("r", val.as_str()));
25389 }
25390 {
25391 let val = &self.style_index;
25392 {
25393 let s = val.to_string();
25394 start.push_attribute(("s", s.as_str()));
25395 }
25396 }
25397 #[cfg(feature = "extra-attrs")]
25398 for (key, value) in &self.extra_attrs {
25399 start.push_attribute((key.as_str(), value.as_str()));
25400 }
25401 start
25402 }
25403
25404 fn is_empty_element(&self) -> bool {
25405 true
25406 }
25407}
25408
25409impl ToXml for Workbook {
25410 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25411 #[allow(unused_mut)]
25412 let mut start = start;
25413 if let Some(ref val) = self.conformance {
25414 {
25415 let s = val.to_string();
25416 start.push_attribute(("conformance", s.as_str()));
25417 }
25418 }
25419 #[cfg(feature = "extra-attrs")]
25420 for (key, value) in &self.extra_attrs {
25421 start.push_attribute((key.as_str(), value.as_str()));
25422 }
25423 start
25424 }
25425
25426 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25427 #[cfg(feature = "extra-children")]
25428 let mut extra_iter = self.extra_children.iter().peekable();
25429 #[cfg(feature = "extra-children")]
25430 let mut emit_idx: usize = 0;
25431 #[cfg(feature = "extra-children")]
25432 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25433 extra_iter
25434 .next()
25435 .unwrap()
25436 .node
25437 .write_to(writer)
25438 .map_err(SerializeError::from)?;
25439 }
25440 if let Some(ref val) = self.file_version {
25441 val.write_element("fileVersion", writer)?;
25442 }
25443 #[cfg(feature = "extra-children")]
25444 {
25445 emit_idx += 1;
25446 }
25447 #[cfg(feature = "extra-children")]
25448 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25449 extra_iter
25450 .next()
25451 .unwrap()
25452 .node
25453 .write_to(writer)
25454 .map_err(SerializeError::from)?;
25455 }
25456 #[cfg(feature = "sml-protection")]
25457 if let Some(ref val) = self.file_sharing {
25458 val.write_element("fileSharing", writer)?;
25459 }
25460 #[cfg(feature = "extra-children")]
25461 {
25462 emit_idx += 1;
25463 }
25464 #[cfg(feature = "extra-children")]
25465 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25466 extra_iter
25467 .next()
25468 .unwrap()
25469 .node
25470 .write_to(writer)
25471 .map_err(SerializeError::from)?;
25472 }
25473 if let Some(ref val) = self.workbook_pr {
25474 val.write_element("workbookPr", writer)?;
25475 }
25476 #[cfg(feature = "extra-children")]
25477 {
25478 emit_idx += 1;
25479 }
25480 #[cfg(feature = "extra-children")]
25481 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25482 extra_iter
25483 .next()
25484 .unwrap()
25485 .node
25486 .write_to(writer)
25487 .map_err(SerializeError::from)?;
25488 }
25489 #[cfg(feature = "sml-protection")]
25490 if let Some(ref val) = self.workbook_protection {
25491 val.write_element("workbookProtection", writer)?;
25492 }
25493 #[cfg(feature = "extra-children")]
25494 {
25495 emit_idx += 1;
25496 }
25497 #[cfg(feature = "extra-children")]
25498 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25499 extra_iter
25500 .next()
25501 .unwrap()
25502 .node
25503 .write_to(writer)
25504 .map_err(SerializeError::from)?;
25505 }
25506 if let Some(ref val) = self.book_views {
25507 val.write_element("bookViews", writer)?;
25508 }
25509 #[cfg(feature = "extra-children")]
25510 {
25511 emit_idx += 1;
25512 }
25513 #[cfg(feature = "extra-children")]
25514 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25515 extra_iter
25516 .next()
25517 .unwrap()
25518 .node
25519 .write_to(writer)
25520 .map_err(SerializeError::from)?;
25521 }
25522 {
25523 let val = &self.sheets;
25524 val.write_element("sheets", writer)?;
25525 }
25526 #[cfg(feature = "extra-children")]
25527 {
25528 emit_idx += 1;
25529 }
25530 #[cfg(feature = "extra-children")]
25531 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25532 extra_iter
25533 .next()
25534 .unwrap()
25535 .node
25536 .write_to(writer)
25537 .map_err(SerializeError::from)?;
25538 }
25539 #[cfg(feature = "sml-formulas-advanced")]
25540 if let Some(ref val) = self.function_groups {
25541 val.write_element("functionGroups", writer)?;
25542 }
25543 #[cfg(feature = "extra-children")]
25544 {
25545 emit_idx += 1;
25546 }
25547 #[cfg(feature = "extra-children")]
25548 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25549 extra_iter
25550 .next()
25551 .unwrap()
25552 .node
25553 .write_to(writer)
25554 .map_err(SerializeError::from)?;
25555 }
25556 #[cfg(feature = "sml-external")]
25557 if let Some(ref val) = self.external_references {
25558 val.write_element("externalReferences", writer)?;
25559 }
25560 #[cfg(feature = "extra-children")]
25561 {
25562 emit_idx += 1;
25563 }
25564 #[cfg(feature = "extra-children")]
25565 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25566 extra_iter
25567 .next()
25568 .unwrap()
25569 .node
25570 .write_to(writer)
25571 .map_err(SerializeError::from)?;
25572 }
25573 if let Some(ref val) = self.defined_names {
25574 val.write_element("definedNames", writer)?;
25575 }
25576 #[cfg(feature = "extra-children")]
25577 {
25578 emit_idx += 1;
25579 }
25580 #[cfg(feature = "extra-children")]
25581 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25582 extra_iter
25583 .next()
25584 .unwrap()
25585 .node
25586 .write_to(writer)
25587 .map_err(SerializeError::from)?;
25588 }
25589 #[cfg(feature = "sml-formulas")]
25590 if let Some(ref val) = self.calc_pr {
25591 val.write_element("calcPr", writer)?;
25592 }
25593 #[cfg(feature = "extra-children")]
25594 {
25595 emit_idx += 1;
25596 }
25597 #[cfg(feature = "extra-children")]
25598 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25599 extra_iter
25600 .next()
25601 .unwrap()
25602 .node
25603 .write_to(writer)
25604 .map_err(SerializeError::from)?;
25605 }
25606 #[cfg(feature = "sml-external")]
25607 if let Some(ref val) = self.ole_size {
25608 val.write_element("oleSize", writer)?;
25609 }
25610 #[cfg(feature = "extra-children")]
25611 {
25612 emit_idx += 1;
25613 }
25614 #[cfg(feature = "extra-children")]
25615 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25616 extra_iter
25617 .next()
25618 .unwrap()
25619 .node
25620 .write_to(writer)
25621 .map_err(SerializeError::from)?;
25622 }
25623 #[cfg(feature = "sml-structure")]
25624 if let Some(ref val) = self.custom_workbook_views {
25625 val.write_element("customWorkbookViews", writer)?;
25626 }
25627 #[cfg(feature = "extra-children")]
25628 {
25629 emit_idx += 1;
25630 }
25631 #[cfg(feature = "extra-children")]
25632 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25633 extra_iter
25634 .next()
25635 .unwrap()
25636 .node
25637 .write_to(writer)
25638 .map_err(SerializeError::from)?;
25639 }
25640 #[cfg(feature = "sml-pivot")]
25641 if let Some(ref val) = self.pivot_caches {
25642 val.write_element("pivotCaches", writer)?;
25643 }
25644 #[cfg(feature = "extra-children")]
25645 {
25646 emit_idx += 1;
25647 }
25648 #[cfg(feature = "extra-children")]
25649 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25650 extra_iter
25651 .next()
25652 .unwrap()
25653 .node
25654 .write_to(writer)
25655 .map_err(SerializeError::from)?;
25656 }
25657 #[cfg(feature = "sml-metadata")]
25658 if let Some(ref val) = self.smart_tag_pr {
25659 val.write_element("smartTagPr", writer)?;
25660 }
25661 #[cfg(feature = "extra-children")]
25662 {
25663 emit_idx += 1;
25664 }
25665 #[cfg(feature = "extra-children")]
25666 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25667 extra_iter
25668 .next()
25669 .unwrap()
25670 .node
25671 .write_to(writer)
25672 .map_err(SerializeError::from)?;
25673 }
25674 #[cfg(feature = "sml-metadata")]
25675 if let Some(ref val) = self.smart_tag_types {
25676 val.write_element("smartTagTypes", writer)?;
25677 }
25678 #[cfg(feature = "extra-children")]
25679 {
25680 emit_idx += 1;
25681 }
25682 #[cfg(feature = "extra-children")]
25683 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25684 extra_iter
25685 .next()
25686 .unwrap()
25687 .node
25688 .write_to(writer)
25689 .map_err(SerializeError::from)?;
25690 }
25691 #[cfg(feature = "sml-external")]
25692 if let Some(ref val) = self.web_publishing {
25693 val.write_element("webPublishing", writer)?;
25694 }
25695 #[cfg(feature = "extra-children")]
25696 {
25697 emit_idx += 1;
25698 }
25699 for item in &self.file_recovery_pr {
25700 #[cfg(feature = "extra-children")]
25701 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25702 extra_iter
25703 .next()
25704 .unwrap()
25705 .node
25706 .write_to(writer)
25707 .map_err(SerializeError::from)?;
25708 }
25709 item.write_element("fileRecoveryPr", writer)?;
25710 #[cfg(feature = "extra-children")]
25711 {
25712 emit_idx += 1;
25713 }
25714 }
25715 #[cfg(feature = "extra-children")]
25716 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25717 extra_iter
25718 .next()
25719 .unwrap()
25720 .node
25721 .write_to(writer)
25722 .map_err(SerializeError::from)?;
25723 }
25724 #[cfg(feature = "sml-external")]
25725 if let Some(ref val) = self.web_publish_objects {
25726 val.write_element("webPublishObjects", writer)?;
25727 }
25728 #[cfg(feature = "extra-children")]
25729 {
25730 emit_idx += 1;
25731 }
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 = "sml-extensions")]
25742 if let Some(ref val) = self.extension_list {
25743 val.write_element("extLst", writer)?;
25744 }
25745 #[cfg(feature = "extra-children")]
25746 {
25747 emit_idx += 1;
25748 }
25749 #[cfg(feature = "extra-children")]
25750 for extra in extra_iter {
25751 extra.node.write_to(writer).map_err(SerializeError::from)?;
25752 }
25753 Ok(())
25754 }
25755
25756 fn is_empty_element(&self) -> bool {
25757 if self.file_version.is_some() {
25758 return false;
25759 }
25760 #[cfg(feature = "sml-protection")]
25761 if self.file_sharing.is_some() {
25762 return false;
25763 }
25764 if self.workbook_pr.is_some() {
25765 return false;
25766 }
25767 #[cfg(feature = "sml-protection")]
25768 if self.workbook_protection.is_some() {
25769 return false;
25770 }
25771 if self.book_views.is_some() {
25772 return false;
25773 }
25774 false
25775 }
25776}
25777
25778impl ToXml for FileVersion {
25779 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25780 #[allow(unused_mut)]
25781 let mut start = start;
25782 if let Some(ref val) = self.app_name {
25783 start.push_attribute(("appName", val.as_str()));
25784 }
25785 if let Some(ref val) = self.last_edited {
25786 start.push_attribute(("lastEdited", val.as_str()));
25787 }
25788 if let Some(ref val) = self.lowest_edited {
25789 start.push_attribute(("lowestEdited", val.as_str()));
25790 }
25791 if let Some(ref val) = self.rup_build {
25792 start.push_attribute(("rupBuild", val.as_str()));
25793 }
25794 if let Some(ref val) = self.code_name {
25795 start.push_attribute(("codeName", val.as_str()));
25796 }
25797 #[cfg(feature = "extra-attrs")]
25798 for (key, value) in &self.extra_attrs {
25799 start.push_attribute((key.as_str(), value.as_str()));
25800 }
25801 start
25802 }
25803
25804 fn is_empty_element(&self) -> bool {
25805 true
25806 }
25807}
25808
25809impl ToXml for BookViews {
25810 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25811 #[cfg(feature = "extra-children")]
25812 let mut extra_iter = self.extra_children.iter().peekable();
25813 #[cfg(feature = "extra-children")]
25814 let mut emit_idx: usize = 0;
25815 for item in &self.workbook_view {
25816 #[cfg(feature = "extra-children")]
25817 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25818 extra_iter
25819 .next()
25820 .unwrap()
25821 .node
25822 .write_to(writer)
25823 .map_err(SerializeError::from)?;
25824 }
25825 item.write_element("workbookView", writer)?;
25826 #[cfg(feature = "extra-children")]
25827 {
25828 emit_idx += 1;
25829 }
25830 }
25831 #[cfg(feature = "extra-children")]
25832 for extra in extra_iter {
25833 extra.node.write_to(writer).map_err(SerializeError::from)?;
25834 }
25835 Ok(())
25836 }
25837
25838 fn is_empty_element(&self) -> bool {
25839 if !self.workbook_view.is_empty() {
25840 return false;
25841 }
25842 #[cfg(feature = "extra-children")]
25843 if !self.extra_children.is_empty() {
25844 return false;
25845 }
25846 true
25847 }
25848}
25849
25850impl ToXml for BookView {
25851 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
25852 #[allow(unused_mut)]
25853 let mut start = start;
25854 #[cfg(feature = "sml-structure")]
25855 if let Some(ref val) = self.visibility {
25856 {
25857 let s = val.to_string();
25858 start.push_attribute(("visibility", s.as_str()));
25859 }
25860 }
25861 #[cfg(feature = "sml-structure")]
25862 if let Some(ref val) = self.minimized {
25863 start.push_attribute(("minimized", if *val { "1" } else { "0" }));
25864 }
25865 #[cfg(feature = "sml-structure")]
25866 if let Some(ref val) = self.show_horizontal_scroll {
25867 start.push_attribute(("showHorizontalScroll", if *val { "1" } else { "0" }));
25868 }
25869 #[cfg(feature = "sml-structure")]
25870 if let Some(ref val) = self.show_vertical_scroll {
25871 start.push_attribute(("showVerticalScroll", if *val { "1" } else { "0" }));
25872 }
25873 #[cfg(feature = "sml-structure")]
25874 if let Some(ref val) = self.show_sheet_tabs {
25875 start.push_attribute(("showSheetTabs", if *val { "1" } else { "0" }));
25876 }
25877 #[cfg(feature = "sml-structure")]
25878 if let Some(ref val) = self.x_window {
25879 {
25880 let s = val.to_string();
25881 start.push_attribute(("xWindow", s.as_str()));
25882 }
25883 }
25884 #[cfg(feature = "sml-structure")]
25885 if let Some(ref val) = self.y_window {
25886 {
25887 let s = val.to_string();
25888 start.push_attribute(("yWindow", s.as_str()));
25889 }
25890 }
25891 #[cfg(feature = "sml-structure")]
25892 if let Some(ref val) = self.window_width {
25893 {
25894 let s = val.to_string();
25895 start.push_attribute(("windowWidth", s.as_str()));
25896 }
25897 }
25898 #[cfg(feature = "sml-structure")]
25899 if let Some(ref val) = self.window_height {
25900 {
25901 let s = val.to_string();
25902 start.push_attribute(("windowHeight", s.as_str()));
25903 }
25904 }
25905 #[cfg(feature = "sml-structure")]
25906 if let Some(ref val) = self.tab_ratio {
25907 {
25908 let s = val.to_string();
25909 start.push_attribute(("tabRatio", s.as_str()));
25910 }
25911 }
25912 #[cfg(feature = "sml-structure")]
25913 if let Some(ref val) = self.first_sheet {
25914 {
25915 let s = val.to_string();
25916 start.push_attribute(("firstSheet", s.as_str()));
25917 }
25918 }
25919 if let Some(ref val) = self.active_tab {
25920 {
25921 let s = val.to_string();
25922 start.push_attribute(("activeTab", s.as_str()));
25923 }
25924 }
25925 #[cfg(feature = "sml-filtering")]
25926 if let Some(ref val) = self.auto_filter_date_grouping {
25927 start.push_attribute(("autoFilterDateGrouping", if *val { "1" } else { "0" }));
25928 }
25929 #[cfg(feature = "extra-attrs")]
25930 for (key, value) in &self.extra_attrs {
25931 start.push_attribute((key.as_str(), value.as_str()));
25932 }
25933 start
25934 }
25935
25936 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25937 #[cfg(feature = "extra-children")]
25938 let mut extra_iter = self.extra_children.iter().peekable();
25939 #[cfg(feature = "extra-children")]
25940 let mut emit_idx: usize = 0;
25941 #[cfg(feature = "extra-children")]
25942 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25943 extra_iter
25944 .next()
25945 .unwrap()
25946 .node
25947 .write_to(writer)
25948 .map_err(SerializeError::from)?;
25949 }
25950 #[cfg(feature = "sml-extensions")]
25951 if let Some(ref val) = self.extension_list {
25952 val.write_element("extLst", writer)?;
25953 }
25954 #[cfg(feature = "extra-children")]
25955 {
25956 emit_idx += 1;
25957 }
25958 #[cfg(feature = "extra-children")]
25959 for extra in extra_iter {
25960 extra.node.write_to(writer).map_err(SerializeError::from)?;
25961 }
25962 Ok(())
25963 }
25964
25965 fn is_empty_element(&self) -> bool {
25966 #[cfg(feature = "sml-extensions")]
25967 if self.extension_list.is_some() {
25968 return false;
25969 }
25970 #[cfg(feature = "extra-children")]
25971 if !self.extra_children.is_empty() {
25972 return false;
25973 }
25974 true
25975 }
25976}
25977
25978impl ToXml for CustomWorkbookViews {
25979 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
25980 #[cfg(feature = "extra-children")]
25981 let mut extra_iter = self.extra_children.iter().peekable();
25982 #[cfg(feature = "extra-children")]
25983 let mut emit_idx: usize = 0;
25984 for item in &self.custom_workbook_view {
25985 #[cfg(feature = "extra-children")]
25986 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
25987 extra_iter
25988 .next()
25989 .unwrap()
25990 .node
25991 .write_to(writer)
25992 .map_err(SerializeError::from)?;
25993 }
25994 item.write_element("customWorkbookView", writer)?;
25995 #[cfg(feature = "extra-children")]
25996 {
25997 emit_idx += 1;
25998 }
25999 }
26000 #[cfg(feature = "extra-children")]
26001 for extra in extra_iter {
26002 extra.node.write_to(writer).map_err(SerializeError::from)?;
26003 }
26004 Ok(())
26005 }
26006
26007 fn is_empty_element(&self) -> bool {
26008 if !self.custom_workbook_view.is_empty() {
26009 return false;
26010 }
26011 #[cfg(feature = "extra-children")]
26012 if !self.extra_children.is_empty() {
26013 return false;
26014 }
26015 true
26016 }
26017}
26018
26019impl ToXml for CustomWorkbookView {
26020 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
26021 #[allow(unused_mut)]
26022 let mut start = start;
26023 {
26024 let val = &self.name;
26025 start.push_attribute(("name", val.as_str()));
26026 }
26027 {
26028 let val = &self.guid;
26029 start.push_attribute(("guid", val.as_str()));
26030 }
26031 if let Some(ref val) = self.auto_update {
26032 start.push_attribute(("autoUpdate", if *val { "1" } else { "0" }));
26033 }
26034 if let Some(ref val) = self.merge_interval {
26035 {
26036 let s = val.to_string();
26037 start.push_attribute(("mergeInterval", s.as_str()));
26038 }
26039 }
26040 if let Some(ref val) = self.changes_saved_win {
26041 start.push_attribute(("changesSavedWin", if *val { "1" } else { "0" }));
26042 }
26043 if let Some(ref val) = self.only_sync {
26044 start.push_attribute(("onlySync", if *val { "1" } else { "0" }));
26045 }
26046 if let Some(ref val) = self.personal_view {
26047 start.push_attribute(("personalView", if *val { "1" } else { "0" }));
26048 }
26049 if let Some(ref val) = self.include_print_settings {
26050 start.push_attribute(("includePrintSettings", if *val { "1" } else { "0" }));
26051 }
26052 if let Some(ref val) = self.include_hidden_row_col {
26053 start.push_attribute(("includeHiddenRowCol", if *val { "1" } else { "0" }));
26054 }
26055 if let Some(ref val) = self.maximized {
26056 start.push_attribute(("maximized", if *val { "1" } else { "0" }));
26057 }
26058 if let Some(ref val) = self.minimized {
26059 start.push_attribute(("minimized", if *val { "1" } else { "0" }));
26060 }
26061 if let Some(ref val) = self.show_horizontal_scroll {
26062 start.push_attribute(("showHorizontalScroll", if *val { "1" } else { "0" }));
26063 }
26064 if let Some(ref val) = self.show_vertical_scroll {
26065 start.push_attribute(("showVerticalScroll", if *val { "1" } else { "0" }));
26066 }
26067 if let Some(ref val) = self.show_sheet_tabs {
26068 start.push_attribute(("showSheetTabs", if *val { "1" } else { "0" }));
26069 }
26070 if let Some(ref val) = self.x_window {
26071 {
26072 let s = val.to_string();
26073 start.push_attribute(("xWindow", s.as_str()));
26074 }
26075 }
26076 if let Some(ref val) = self.y_window {
26077 {
26078 let s = val.to_string();
26079 start.push_attribute(("yWindow", s.as_str()));
26080 }
26081 }
26082 {
26083 let val = &self.window_width;
26084 {
26085 let s = val.to_string();
26086 start.push_attribute(("windowWidth", s.as_str()));
26087 }
26088 }
26089 {
26090 let val = &self.window_height;
26091 {
26092 let s = val.to_string();
26093 start.push_attribute(("windowHeight", s.as_str()));
26094 }
26095 }
26096 if let Some(ref val) = self.tab_ratio {
26097 {
26098 let s = val.to_string();
26099 start.push_attribute(("tabRatio", s.as_str()));
26100 }
26101 }
26102 {
26103 let val = &self.active_sheet_id;
26104 {
26105 let s = val.to_string();
26106 start.push_attribute(("activeSheetId", s.as_str()));
26107 }
26108 }
26109 if let Some(ref val) = self.show_formula_bar {
26110 start.push_attribute(("showFormulaBar", if *val { "1" } else { "0" }));
26111 }
26112 if let Some(ref val) = self.show_statusbar {
26113 start.push_attribute(("showStatusbar", if *val { "1" } else { "0" }));
26114 }
26115 if let Some(ref val) = self.show_comments {
26116 {
26117 let s = val.to_string();
26118 start.push_attribute(("showComments", s.as_str()));
26119 }
26120 }
26121 if let Some(ref val) = self.show_objects {
26122 {
26123 let s = val.to_string();
26124 start.push_attribute(("showObjects", s.as_str()));
26125 }
26126 }
26127 #[cfg(feature = "extra-attrs")]
26128 for (key, value) in &self.extra_attrs {
26129 start.push_attribute((key.as_str(), value.as_str()));
26130 }
26131 start
26132 }
26133
26134 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
26135 #[cfg(feature = "extra-children")]
26136 let mut extra_iter = self.extra_children.iter().peekable();
26137 #[cfg(feature = "extra-children")]
26138 let mut emit_idx: usize = 0;
26139 #[cfg(feature = "extra-children")]
26140 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26141 extra_iter
26142 .next()
26143 .unwrap()
26144 .node
26145 .write_to(writer)
26146 .map_err(SerializeError::from)?;
26147 }
26148 if let Some(ref val) = self.extension_list {
26149 val.write_element("extLst", writer)?;
26150 }
26151 #[cfg(feature = "extra-children")]
26152 {
26153 emit_idx += 1;
26154 }
26155 #[cfg(feature = "extra-children")]
26156 for extra in extra_iter {
26157 extra.node.write_to(writer).map_err(SerializeError::from)?;
26158 }
26159 Ok(())
26160 }
26161
26162 fn is_empty_element(&self) -> bool {
26163 if self.extension_list.is_some() {
26164 return false;
26165 }
26166 #[cfg(feature = "extra-children")]
26167 if !self.extra_children.is_empty() {
26168 return false;
26169 }
26170 true
26171 }
26172}
26173
26174impl ToXml for Sheets {
26175 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
26176 #[cfg(feature = "extra-children")]
26177 let mut extra_iter = self.extra_children.iter().peekable();
26178 #[cfg(feature = "extra-children")]
26179 let mut emit_idx: usize = 0;
26180 for item in &self.sheet {
26181 #[cfg(feature = "extra-children")]
26182 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26183 extra_iter
26184 .next()
26185 .unwrap()
26186 .node
26187 .write_to(writer)
26188 .map_err(SerializeError::from)?;
26189 }
26190 item.write_element("sheet", writer)?;
26191 #[cfg(feature = "extra-children")]
26192 {
26193 emit_idx += 1;
26194 }
26195 }
26196 #[cfg(feature = "extra-children")]
26197 for extra in extra_iter {
26198 extra.node.write_to(writer).map_err(SerializeError::from)?;
26199 }
26200 Ok(())
26201 }
26202
26203 fn is_empty_element(&self) -> bool {
26204 if !self.sheet.is_empty() {
26205 return false;
26206 }
26207 #[cfg(feature = "extra-children")]
26208 if !self.extra_children.is_empty() {
26209 return false;
26210 }
26211 true
26212 }
26213}
26214
26215impl ToXml for Sheet {
26216 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
26217 #[allow(unused_mut)]
26218 let mut start = start;
26219 {
26220 let val = &self.name;
26221 start.push_attribute(("name", val.as_str()));
26222 }
26223 {
26224 let val = &self.sheet_id;
26225 {
26226 let s = val.to_string();
26227 start.push_attribute(("sheetId", s.as_str()));
26228 }
26229 }
26230 #[cfg(feature = "sml-structure")]
26231 if let Some(ref val) = self.state {
26232 {
26233 let s = val.to_string();
26234 start.push_attribute(("state", s.as_str()));
26235 }
26236 }
26237 {
26238 let val = &self.id;
26239 start.push_attribute(("r:id", val.as_str()));
26240 }
26241 #[cfg(feature = "extra-attrs")]
26242 for (key, value) in &self.extra_attrs {
26243 start.push_attribute((key.as_str(), value.as_str()));
26244 }
26245 start
26246 }
26247
26248 fn is_empty_element(&self) -> bool {
26249 true
26250 }
26251}
26252
26253impl ToXml for WorkbookProperties {
26254 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
26255 #[allow(unused_mut)]
26256 let mut start = start;
26257 if let Some(ref val) = self.date1904 {
26258 start.push_attribute(("date1904", if *val { "1" } else { "0" }));
26259 }
26260 if let Some(ref val) = self.show_objects {
26261 {
26262 let s = val.to_string();
26263 start.push_attribute(("showObjects", s.as_str()));
26264 }
26265 }
26266 if let Some(ref val) = self.show_border_unselected_tables {
26267 start.push_attribute(("showBorderUnselectedTables", if *val { "1" } else { "0" }));
26268 }
26269 if let Some(ref val) = self.filter_privacy {
26270 start.push_attribute(("filterPrivacy", if *val { "1" } else { "0" }));
26271 }
26272 if let Some(ref val) = self.prompted_solutions {
26273 start.push_attribute(("promptedSolutions", if *val { "1" } else { "0" }));
26274 }
26275 if let Some(ref val) = self.show_ink_annotation {
26276 start.push_attribute(("showInkAnnotation", if *val { "1" } else { "0" }));
26277 }
26278 if let Some(ref val) = self.backup_file {
26279 start.push_attribute(("backupFile", if *val { "1" } else { "0" }));
26280 }
26281 if let Some(ref val) = self.save_external_link_values {
26282 start.push_attribute(("saveExternalLinkValues", if *val { "1" } else { "0" }));
26283 }
26284 if let Some(ref val) = self.update_links {
26285 {
26286 let s = val.to_string();
26287 start.push_attribute(("updateLinks", s.as_str()));
26288 }
26289 }
26290 if let Some(ref val) = self.code_name {
26291 start.push_attribute(("codeName", val.as_str()));
26292 }
26293 if let Some(ref val) = self.hide_pivot_field_list {
26294 start.push_attribute(("hidePivotFieldList", if *val { "1" } else { "0" }));
26295 }
26296 if let Some(ref val) = self.show_pivot_chart_filter {
26297 start.push_attribute(("showPivotChartFilter", if *val { "1" } else { "0" }));
26298 }
26299 if let Some(ref val) = self.allow_refresh_query {
26300 start.push_attribute(("allowRefreshQuery", if *val { "1" } else { "0" }));
26301 }
26302 if let Some(ref val) = self.publish_items {
26303 start.push_attribute(("publishItems", if *val { "1" } else { "0" }));
26304 }
26305 if let Some(ref val) = self.check_compatibility {
26306 start.push_attribute(("checkCompatibility", if *val { "1" } else { "0" }));
26307 }
26308 if let Some(ref val) = self.auto_compress_pictures {
26309 start.push_attribute(("autoCompressPictures", if *val { "1" } else { "0" }));
26310 }
26311 if let Some(ref val) = self.refresh_all_connections {
26312 start.push_attribute(("refreshAllConnections", if *val { "1" } else { "0" }));
26313 }
26314 if let Some(ref val) = self.default_theme_version {
26315 {
26316 let s = val.to_string();
26317 start.push_attribute(("defaultThemeVersion", s.as_str()));
26318 }
26319 }
26320 #[cfg(feature = "extra-attrs")]
26321 for (key, value) in &self.extra_attrs {
26322 start.push_attribute((key.as_str(), value.as_str()));
26323 }
26324 start
26325 }
26326
26327 fn is_empty_element(&self) -> bool {
26328 true
26329 }
26330}
26331
26332impl ToXml for CTSmartTagPr {
26333 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
26334 #[allow(unused_mut)]
26335 let mut start = start;
26336 if let Some(ref val) = self.embed {
26337 start.push_attribute(("embed", if *val { "1" } else { "0" }));
26338 }
26339 if let Some(ref val) = self.show {
26340 {
26341 let s = val.to_string();
26342 start.push_attribute(("show", s.as_str()));
26343 }
26344 }
26345 #[cfg(feature = "extra-attrs")]
26346 for (key, value) in &self.extra_attrs {
26347 start.push_attribute((key.as_str(), value.as_str()));
26348 }
26349 start
26350 }
26351
26352 fn is_empty_element(&self) -> bool {
26353 true
26354 }
26355}
26356
26357impl ToXml for CTSmartTagTypes {
26358 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
26359 #[cfg(feature = "extra-children")]
26360 let mut extra_iter = self.extra_children.iter().peekable();
26361 #[cfg(feature = "extra-children")]
26362 let mut emit_idx: usize = 0;
26363 for item in &self.smart_tag_type {
26364 #[cfg(feature = "extra-children")]
26365 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26366 extra_iter
26367 .next()
26368 .unwrap()
26369 .node
26370 .write_to(writer)
26371 .map_err(SerializeError::from)?;
26372 }
26373 item.write_element("smartTagType", writer)?;
26374 #[cfg(feature = "extra-children")]
26375 {
26376 emit_idx += 1;
26377 }
26378 }
26379 #[cfg(feature = "extra-children")]
26380 for extra in extra_iter {
26381 extra.node.write_to(writer).map_err(SerializeError::from)?;
26382 }
26383 Ok(())
26384 }
26385
26386 fn is_empty_element(&self) -> bool {
26387 if !self.smart_tag_type.is_empty() {
26388 return false;
26389 }
26390 #[cfg(feature = "extra-children")]
26391 if !self.extra_children.is_empty() {
26392 return false;
26393 }
26394 true
26395 }
26396}
26397
26398impl ToXml for CTSmartTagType {
26399 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
26400 #[allow(unused_mut)]
26401 let mut start = start;
26402 if let Some(ref val) = self.namespace_uri {
26403 start.push_attribute(("namespaceUri", val.as_str()));
26404 }
26405 if let Some(ref val) = self.name {
26406 start.push_attribute(("name", val.as_str()));
26407 }
26408 if let Some(ref val) = self.url {
26409 start.push_attribute(("url", val.as_str()));
26410 }
26411 #[cfg(feature = "extra-attrs")]
26412 for (key, value) in &self.extra_attrs {
26413 start.push_attribute((key.as_str(), value.as_str()));
26414 }
26415 start
26416 }
26417
26418 fn is_empty_element(&self) -> bool {
26419 true
26420 }
26421}
26422
26423impl ToXml for FileRecoveryProperties {
26424 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
26425 #[allow(unused_mut)]
26426 let mut start = start;
26427 if let Some(ref val) = self.auto_recover {
26428 start.push_attribute(("autoRecover", if *val { "1" } else { "0" }));
26429 }
26430 if let Some(ref val) = self.crash_save {
26431 start.push_attribute(("crashSave", if *val { "1" } else { "0" }));
26432 }
26433 if let Some(ref val) = self.data_extract_load {
26434 start.push_attribute(("dataExtractLoad", if *val { "1" } else { "0" }));
26435 }
26436 if let Some(ref val) = self.repair_load {
26437 start.push_attribute(("repairLoad", if *val { "1" } else { "0" }));
26438 }
26439 #[cfg(feature = "extra-attrs")]
26440 for (key, value) in &self.extra_attrs {
26441 start.push_attribute((key.as_str(), value.as_str()));
26442 }
26443 start
26444 }
26445
26446 fn is_empty_element(&self) -> bool {
26447 true
26448 }
26449}
26450
26451impl ToXml for CalculationProperties {
26452 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
26453 #[allow(unused_mut)]
26454 let mut start = start;
26455 #[cfg(feature = "sml-formulas")]
26456 if let Some(ref val) = self.calc_id {
26457 {
26458 let s = val.to_string();
26459 start.push_attribute(("calcId", s.as_str()));
26460 }
26461 }
26462 #[cfg(feature = "sml-formulas")]
26463 if let Some(ref val) = self.calc_mode {
26464 {
26465 let s = val.to_string();
26466 start.push_attribute(("calcMode", s.as_str()));
26467 }
26468 }
26469 #[cfg(feature = "sml-formulas")]
26470 if let Some(ref val) = self.full_calc_on_load {
26471 start.push_attribute(("fullCalcOnLoad", if *val { "1" } else { "0" }));
26472 }
26473 #[cfg(feature = "sml-formulas")]
26474 if let Some(ref val) = self.ref_mode {
26475 {
26476 let s = val.to_string();
26477 start.push_attribute(("refMode", s.as_str()));
26478 }
26479 }
26480 #[cfg(feature = "sml-formulas-advanced")]
26481 if let Some(ref val) = self.iterate {
26482 start.push_attribute(("iterate", if *val { "1" } else { "0" }));
26483 }
26484 #[cfg(feature = "sml-formulas-advanced")]
26485 if let Some(ref val) = self.iterate_count {
26486 {
26487 let s = val.to_string();
26488 start.push_attribute(("iterateCount", s.as_str()));
26489 }
26490 }
26491 #[cfg(feature = "sml-formulas-advanced")]
26492 if let Some(ref val) = self.iterate_delta {
26493 {
26494 let s = val.to_string();
26495 start.push_attribute(("iterateDelta", s.as_str()));
26496 }
26497 }
26498 #[cfg(feature = "sml-formulas")]
26499 if let Some(ref val) = self.full_precision {
26500 start.push_attribute(("fullPrecision", if *val { "1" } else { "0" }));
26501 }
26502 #[cfg(feature = "sml-formulas")]
26503 if let Some(ref val) = self.calc_completed {
26504 start.push_attribute(("calcCompleted", if *val { "1" } else { "0" }));
26505 }
26506 #[cfg(feature = "sml-formulas")]
26507 if let Some(ref val) = self.calc_on_save {
26508 start.push_attribute(("calcOnSave", if *val { "1" } else { "0" }));
26509 }
26510 #[cfg(feature = "sml-formulas-advanced")]
26511 if let Some(ref val) = self.concurrent_calc {
26512 start.push_attribute(("concurrentCalc", if *val { "1" } else { "0" }));
26513 }
26514 #[cfg(feature = "sml-formulas-advanced")]
26515 if let Some(ref val) = self.concurrent_manual_count {
26516 {
26517 let s = val.to_string();
26518 start.push_attribute(("concurrentManualCount", s.as_str()));
26519 }
26520 }
26521 #[cfg(feature = "sml-formulas")]
26522 if let Some(ref val) = self.force_full_calc {
26523 start.push_attribute(("forceFullCalc", if *val { "1" } else { "0" }));
26524 }
26525 #[cfg(feature = "extra-attrs")]
26526 for (key, value) in &self.extra_attrs {
26527 start.push_attribute((key.as_str(), value.as_str()));
26528 }
26529 start
26530 }
26531
26532 fn is_empty_element(&self) -> bool {
26533 true
26534 }
26535}
26536
26537impl ToXml for DefinedNames {
26538 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
26539 #[cfg(feature = "extra-children")]
26540 let mut extra_iter = self.extra_children.iter().peekable();
26541 #[cfg(feature = "extra-children")]
26542 let mut emit_idx: usize = 0;
26543 for item in &self.defined_name {
26544 #[cfg(feature = "extra-children")]
26545 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26546 extra_iter
26547 .next()
26548 .unwrap()
26549 .node
26550 .write_to(writer)
26551 .map_err(SerializeError::from)?;
26552 }
26553 item.write_element("definedName", writer)?;
26554 #[cfg(feature = "extra-children")]
26555 {
26556 emit_idx += 1;
26557 }
26558 }
26559 #[cfg(feature = "extra-children")]
26560 for extra in extra_iter {
26561 extra.node.write_to(writer).map_err(SerializeError::from)?;
26562 }
26563 Ok(())
26564 }
26565
26566 fn is_empty_element(&self) -> bool {
26567 if !self.defined_name.is_empty() {
26568 return false;
26569 }
26570 #[cfg(feature = "extra-children")]
26571 if !self.extra_children.is_empty() {
26572 return false;
26573 }
26574 true
26575 }
26576}
26577
26578impl ToXml for DefinedName {
26579 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
26580 #[allow(unused_mut)]
26581 let mut start = start;
26582 {
26583 let val = &self.name;
26584 start.push_attribute(("name", val.as_str()));
26585 }
26586 if let Some(ref val) = self.comment {
26587 start.push_attribute(("comment", val.as_str()));
26588 }
26589 #[cfg(feature = "sml-formulas-advanced")]
26590 if let Some(ref val) = self.custom_menu {
26591 start.push_attribute(("customMenu", val.as_str()));
26592 }
26593 if let Some(ref val) = self.description {
26594 start.push_attribute(("description", val.as_str()));
26595 }
26596 #[cfg(feature = "sml-formulas-advanced")]
26597 if let Some(ref val) = self.help {
26598 start.push_attribute(("help", val.as_str()));
26599 }
26600 #[cfg(feature = "sml-formulas-advanced")]
26601 if let Some(ref val) = self.status_bar {
26602 start.push_attribute(("statusBar", val.as_str()));
26603 }
26604 if let Some(ref val) = self.local_sheet_id {
26605 {
26606 let s = val.to_string();
26607 start.push_attribute(("localSheetId", s.as_str()));
26608 }
26609 }
26610 #[cfg(feature = "sml-structure")]
26611 if let Some(ref val) = self.hidden {
26612 start.push_attribute(("hidden", if *val { "1" } else { "0" }));
26613 }
26614 #[cfg(feature = "sml-formulas-advanced")]
26615 if let Some(ref val) = self.function {
26616 start.push_attribute(("function", if *val { "1" } else { "0" }));
26617 }
26618 #[cfg(feature = "sml-formulas-advanced")]
26619 if let Some(ref val) = self.vb_procedure {
26620 start.push_attribute(("vbProcedure", if *val { "1" } else { "0" }));
26621 }
26622 #[cfg(feature = "sml-formulas-advanced")]
26623 if let Some(ref val) = self.xlm {
26624 start.push_attribute(("xlm", if *val { "1" } else { "0" }));
26625 }
26626 #[cfg(feature = "sml-formulas-advanced")]
26627 if let Some(ref val) = self.function_group_id {
26628 {
26629 let s = val.to_string();
26630 start.push_attribute(("functionGroupId", s.as_str()));
26631 }
26632 }
26633 #[cfg(feature = "sml-formulas-advanced")]
26634 if let Some(ref val) = self.shortcut_key {
26635 start.push_attribute(("shortcutKey", val.as_str()));
26636 }
26637 #[cfg(feature = "sml-external")]
26638 if let Some(ref val) = self.publish_to_server {
26639 start.push_attribute(("publishToServer", if *val { "1" } else { "0" }));
26640 }
26641 #[cfg(feature = "sml-formulas-advanced")]
26642 if let Some(ref val) = self.workbook_parameter {
26643 start.push_attribute(("workbookParameter", if *val { "1" } else { "0" }));
26644 }
26645 #[cfg(feature = "extra-attrs")]
26646 for (key, value) in &self.extra_attrs {
26647 start.push_attribute((key.as_str(), value.as_str()));
26648 }
26649 start
26650 }
26651
26652 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
26653 if let Some(ref text) = self.text {
26654 writer.write_event(Event::Text(BytesText::new(text)))?;
26655 }
26656 #[cfg(feature = "extra-children")]
26657 for extra in &self.extra_children {
26658 extra.node.write_to(writer).map_err(SerializeError::from)?;
26659 }
26660 Ok(())
26661 }
26662
26663 fn is_empty_element(&self) -> bool {
26664 if self.text.is_some() {
26665 return false;
26666 }
26667 #[cfg(feature = "extra-children")]
26668 if !self.extra_children.is_empty() {
26669 return false;
26670 }
26671 true
26672 }
26673}
26674
26675impl ToXml for ExternalReferences {
26676 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
26677 #[cfg(feature = "extra-children")]
26678 let mut extra_iter = self.extra_children.iter().peekable();
26679 #[cfg(feature = "extra-children")]
26680 let mut emit_idx: usize = 0;
26681 for item in &self.external_reference {
26682 #[cfg(feature = "extra-children")]
26683 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26684 extra_iter
26685 .next()
26686 .unwrap()
26687 .node
26688 .write_to(writer)
26689 .map_err(SerializeError::from)?;
26690 }
26691 item.write_element("externalReference", writer)?;
26692 #[cfg(feature = "extra-children")]
26693 {
26694 emit_idx += 1;
26695 }
26696 }
26697 #[cfg(feature = "extra-children")]
26698 for extra in extra_iter {
26699 extra.node.write_to(writer).map_err(SerializeError::from)?;
26700 }
26701 Ok(())
26702 }
26703
26704 fn is_empty_element(&self) -> bool {
26705 if !self.external_reference.is_empty() {
26706 return false;
26707 }
26708 #[cfg(feature = "extra-children")]
26709 if !self.extra_children.is_empty() {
26710 return false;
26711 }
26712 true
26713 }
26714}
26715
26716impl ToXml for ExternalReference {
26717 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
26718 #[allow(unused_mut)]
26719 let mut start = start;
26720 {
26721 let val = &self.id;
26722 start.push_attribute(("r:id", val.as_str()));
26723 }
26724 #[cfg(feature = "extra-attrs")]
26725 for (key, value) in &self.extra_attrs {
26726 start.push_attribute((key.as_str(), value.as_str()));
26727 }
26728 start
26729 }
26730
26731 fn is_empty_element(&self) -> bool {
26732 true
26733 }
26734}
26735
26736impl ToXml for SheetBackgroundPicture {
26737 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
26738 #[allow(unused_mut)]
26739 let mut start = start;
26740 {
26741 let val = &self.id;
26742 start.push_attribute(("r:id", val.as_str()));
26743 }
26744 #[cfg(feature = "extra-attrs")]
26745 for (key, value) in &self.extra_attrs {
26746 start.push_attribute((key.as_str(), value.as_str()));
26747 }
26748 start
26749 }
26750
26751 fn is_empty_element(&self) -> bool {
26752 true
26753 }
26754}
26755
26756impl ToXml for PivotCaches {
26757 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
26758 #[cfg(feature = "extra-children")]
26759 let mut extra_iter = self.extra_children.iter().peekable();
26760 #[cfg(feature = "extra-children")]
26761 let mut emit_idx: usize = 0;
26762 for item in &self.pivot_cache {
26763 #[cfg(feature = "extra-children")]
26764 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
26765 extra_iter
26766 .next()
26767 .unwrap()
26768 .node
26769 .write_to(writer)
26770 .map_err(SerializeError::from)?;
26771 }
26772 item.write_element("pivotCache", writer)?;
26773 #[cfg(feature = "extra-children")]
26774 {
26775 emit_idx += 1;
26776 }
26777 }
26778 #[cfg(feature = "extra-children")]
26779 for extra in extra_iter {
26780 extra.node.write_to(writer).map_err(SerializeError::from)?;
26781 }
26782 Ok(())
26783 }
26784
26785 fn is_empty_element(&self) -> bool {
26786 if !self.pivot_cache.is_empty() {
26787 return false;
26788 }
26789 #[cfg(feature = "extra-children")]
26790 if !self.extra_children.is_empty() {
26791 return false;
26792 }
26793 true
26794 }
26795}
26796
26797impl ToXml for CTPivotCache {
26798 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
26799 #[allow(unused_mut)]
26800 let mut start = start;
26801 {
26802 let val = &self.cache_id;
26803 {
26804 let s = val.to_string();
26805 start.push_attribute(("cacheId", s.as_str()));
26806 }
26807 }
26808 {
26809 let val = &self.id;
26810 start.push_attribute(("r:id", val.as_str()));
26811 }
26812 #[cfg(feature = "extra-attrs")]
26813 for (key, value) in &self.extra_attrs {
26814 start.push_attribute((key.as_str(), value.as_str()));
26815 }
26816 start
26817 }
26818
26819 fn is_empty_element(&self) -> bool {
26820 true
26821 }
26822}
26823
26824impl ToXml for FileSharing {
26825 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
26826 #[allow(unused_mut)]
26827 let mut start = start;
26828 if let Some(ref val) = self.read_only_recommended {
26829 start.push_attribute(("readOnlyRecommended", if *val { "1" } else { "0" }));
26830 }
26831 if let Some(ref val) = self.user_name {
26832 start.push_attribute(("userName", val.as_str()));
26833 }
26834 if let Some(ref val) = self.reservation_password {
26835 {
26836 let hex = encode_hex(val);
26837 start.push_attribute(("reservationPassword", hex.as_str()));
26838 }
26839 }
26840 if let Some(ref val) = self.algorithm_name {
26841 start.push_attribute(("algorithmName", val.as_str()));
26842 }
26843 if let Some(ref val) = self.hash_value {
26844 {
26845 let b64 = encode_base64(val);
26846 start.push_attribute(("hashValue", b64.as_str()));
26847 }
26848 }
26849 if let Some(ref val) = self.salt_value {
26850 {
26851 let b64 = encode_base64(val);
26852 start.push_attribute(("saltValue", b64.as_str()));
26853 }
26854 }
26855 if let Some(ref val) = self.spin_count {
26856 {
26857 let s = val.to_string();
26858 start.push_attribute(("spinCount", s.as_str()));
26859 }
26860 }
26861 #[cfg(feature = "extra-attrs")]
26862 for (key, value) in &self.extra_attrs {
26863 start.push_attribute((key.as_str(), value.as_str()));
26864 }
26865 start
26866 }
26867
26868 fn is_empty_element(&self) -> bool {
26869 true
26870 }
26871}
26872
26873impl ToXml for CTOleSize {
26874 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
26875 #[allow(unused_mut)]
26876 let mut start = start;
26877 {
26878 let val = &self.reference;
26879 start.push_attribute(("ref", val.as_str()));
26880 }
26881 #[cfg(feature = "extra-attrs")]
26882 for (key, value) in &self.extra_attrs {
26883 start.push_attribute((key.as_str(), value.as_str()));
26884 }
26885 start
26886 }
26887
26888 fn is_empty_element(&self) -> bool {
26889 true
26890 }
26891}
26892
26893impl ToXml for WorkbookProtection {
26894 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
26895 #[allow(unused_mut)]
26896 let mut start = start;
26897 if let Some(ref val) = self.workbook_password {
26898 {
26899 let hex = encode_hex(val);
26900 start.push_attribute(("workbookPassword", hex.as_str()));
26901 }
26902 }
26903 if let Some(ref val) = self.workbook_password_character_set {
26904 start.push_attribute(("workbookPasswordCharacterSet", val.as_str()));
26905 }
26906 if let Some(ref val) = self.revisions_password {
26907 {
26908 let hex = encode_hex(val);
26909 start.push_attribute(("revisionsPassword", hex.as_str()));
26910 }
26911 }
26912 if let Some(ref val) = self.revisions_password_character_set {
26913 start.push_attribute(("revisionsPasswordCharacterSet", val.as_str()));
26914 }
26915 if let Some(ref val) = self.lock_structure {
26916 start.push_attribute(("lockStructure", if *val { "1" } else { "0" }));
26917 }
26918 if let Some(ref val) = self.lock_windows {
26919 start.push_attribute(("lockWindows", if *val { "1" } else { "0" }));
26920 }
26921 if let Some(ref val) = self.lock_revision {
26922 start.push_attribute(("lockRevision", if *val { "1" } else { "0" }));
26923 }
26924 if let Some(ref val) = self.revisions_algorithm_name {
26925 start.push_attribute(("revisionsAlgorithmName", val.as_str()));
26926 }
26927 if let Some(ref val) = self.revisions_hash_value {
26928 {
26929 let b64 = encode_base64(val);
26930 start.push_attribute(("revisionsHashValue", b64.as_str()));
26931 }
26932 }
26933 if let Some(ref val) = self.revisions_salt_value {
26934 {
26935 let b64 = encode_base64(val);
26936 start.push_attribute(("revisionsSaltValue", b64.as_str()));
26937 }
26938 }
26939 if let Some(ref val) = self.revisions_spin_count {
26940 {
26941 let s = val.to_string();
26942 start.push_attribute(("revisionsSpinCount", s.as_str()));
26943 }
26944 }
26945 if let Some(ref val) = self.workbook_algorithm_name {
26946 start.push_attribute(("workbookAlgorithmName", val.as_str()));
26947 }
26948 if let Some(ref val) = self.workbook_hash_value {
26949 {
26950 let b64 = encode_base64(val);
26951 start.push_attribute(("workbookHashValue", b64.as_str()));
26952 }
26953 }
26954 if let Some(ref val) = self.workbook_salt_value {
26955 {
26956 let b64 = encode_base64(val);
26957 start.push_attribute(("workbookSaltValue", b64.as_str()));
26958 }
26959 }
26960 if let Some(ref val) = self.workbook_spin_count {
26961 {
26962 let s = val.to_string();
26963 start.push_attribute(("workbookSpinCount", s.as_str()));
26964 }
26965 }
26966 #[cfg(feature = "extra-attrs")]
26967 for (key, value) in &self.extra_attrs {
26968 start.push_attribute((key.as_str(), value.as_str()));
26969 }
26970 start
26971 }
26972
26973 fn is_empty_element(&self) -> bool {
26974 true
26975 }
26976}
26977
26978impl ToXml for WebPublishing {
26979 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
26980 #[allow(unused_mut)]
26981 let mut start = start;
26982 if let Some(ref val) = self.css {
26983 start.push_attribute(("css", if *val { "1" } else { "0" }));
26984 }
26985 if let Some(ref val) = self.thicket {
26986 start.push_attribute(("thicket", if *val { "1" } else { "0" }));
26987 }
26988 if let Some(ref val) = self.long_file_names {
26989 start.push_attribute(("longFileNames", if *val { "1" } else { "0" }));
26990 }
26991 if let Some(ref val) = self.vml {
26992 start.push_attribute(("vml", if *val { "1" } else { "0" }));
26993 }
26994 if let Some(ref val) = self.allow_png {
26995 start.push_attribute(("allowPng", if *val { "1" } else { "0" }));
26996 }
26997 if let Some(ref val) = self.target_screen_size {
26998 {
26999 let s = val.to_string();
27000 start.push_attribute(("targetScreenSize", s.as_str()));
27001 }
27002 }
27003 if let Some(ref val) = self.dpi {
27004 {
27005 let s = val.to_string();
27006 start.push_attribute(("dpi", s.as_str()));
27007 }
27008 }
27009 if let Some(ref val) = self.code_page {
27010 {
27011 let s = val.to_string();
27012 start.push_attribute(("codePage", s.as_str()));
27013 }
27014 }
27015 if let Some(ref val) = self.character_set {
27016 start.push_attribute(("characterSet", val.as_str()));
27017 }
27018 #[cfg(feature = "extra-attrs")]
27019 for (key, value) in &self.extra_attrs {
27020 start.push_attribute((key.as_str(), value.as_str()));
27021 }
27022 start
27023 }
27024
27025 fn is_empty_element(&self) -> bool {
27026 true
27027 }
27028}
27029
27030impl ToXml for CTFunctionGroups {
27031 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
27032 #[allow(unused_mut)]
27033 let mut start = start;
27034 if let Some(ref val) = self.built_in_group_count {
27035 {
27036 let s = val.to_string();
27037 start.push_attribute(("builtInGroupCount", s.as_str()));
27038 }
27039 }
27040 #[cfg(feature = "extra-attrs")]
27041 for (key, value) in &self.extra_attrs {
27042 start.push_attribute((key.as_str(), value.as_str()));
27043 }
27044 start
27045 }
27046
27047 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
27048 #[cfg(feature = "extra-children")]
27049 let mut extra_iter = self.extra_children.iter().peekable();
27050 #[cfg(feature = "extra-children")]
27051 let mut emit_idx: usize = 0;
27052 for item in &self.function_group {
27053 #[cfg(feature = "extra-children")]
27054 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27055 extra_iter
27056 .next()
27057 .unwrap()
27058 .node
27059 .write_to(writer)
27060 .map_err(SerializeError::from)?;
27061 }
27062 item.write_element("functionGroup", writer)?;
27063 #[cfg(feature = "extra-children")]
27064 {
27065 emit_idx += 1;
27066 }
27067 }
27068 #[cfg(feature = "extra-children")]
27069 for extra in extra_iter {
27070 extra.node.write_to(writer).map_err(SerializeError::from)?;
27071 }
27072 Ok(())
27073 }
27074
27075 fn is_empty_element(&self) -> bool {
27076 if !self.function_group.is_empty() {
27077 return false;
27078 }
27079 #[cfg(feature = "extra-children")]
27080 if !self.extra_children.is_empty() {
27081 return false;
27082 }
27083 true
27084 }
27085}
27086
27087impl ToXml for CTFunctionGroup {
27088 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
27089 #[allow(unused_mut)]
27090 let mut start = start;
27091 if let Some(ref val) = self.name {
27092 start.push_attribute(("name", val.as_str()));
27093 }
27094 #[cfg(feature = "extra-attrs")]
27095 for (key, value) in &self.extra_attrs {
27096 start.push_attribute((key.as_str(), value.as_str()));
27097 }
27098 start
27099 }
27100
27101 fn is_empty_element(&self) -> bool {
27102 true
27103 }
27104}
27105
27106impl ToXml for CTWebPublishObjects {
27107 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
27108 #[allow(unused_mut)]
27109 let mut start = start;
27110 if let Some(ref val) = self.count {
27111 {
27112 let s = val.to_string();
27113 start.push_attribute(("count", s.as_str()));
27114 }
27115 }
27116 #[cfg(feature = "extra-attrs")]
27117 for (key, value) in &self.extra_attrs {
27118 start.push_attribute((key.as_str(), value.as_str()));
27119 }
27120 start
27121 }
27122
27123 fn write_children<W: Write>(&self, writer: &mut Writer<W>) -> Result<(), SerializeError> {
27124 #[cfg(feature = "extra-children")]
27125 let mut extra_iter = self.extra_children.iter().peekable();
27126 #[cfg(feature = "extra-children")]
27127 let mut emit_idx: usize = 0;
27128 for item in &self.web_publish_object {
27129 #[cfg(feature = "extra-children")]
27130 while extra_iter.peek().is_some_and(|e| e.position <= emit_idx) {
27131 extra_iter
27132 .next()
27133 .unwrap()
27134 .node
27135 .write_to(writer)
27136 .map_err(SerializeError::from)?;
27137 }
27138 item.write_element("webPublishObject", writer)?;
27139 #[cfg(feature = "extra-children")]
27140 {
27141 emit_idx += 1;
27142 }
27143 }
27144 #[cfg(feature = "extra-children")]
27145 for extra in extra_iter {
27146 extra.node.write_to(writer).map_err(SerializeError::from)?;
27147 }
27148 Ok(())
27149 }
27150
27151 fn is_empty_element(&self) -> bool {
27152 if !self.web_publish_object.is_empty() {
27153 return false;
27154 }
27155 #[cfg(feature = "extra-children")]
27156 if !self.extra_children.is_empty() {
27157 return false;
27158 }
27159 true
27160 }
27161}
27162
27163impl ToXml for CTWebPublishObject {
27164 fn write_attrs<'a>(&self, start: BytesStart<'a>) -> BytesStart<'a> {
27165 #[allow(unused_mut)]
27166 let mut start = start;
27167 {
27168 let val = &self.id;
27169 {
27170 let s = val.to_string();
27171 start.push_attribute(("id", s.as_str()));
27172 }
27173 }
27174 {
27175 let val = &self.div_id;
27176 start.push_attribute(("divId", val.as_str()));
27177 }
27178 if let Some(ref val) = self.source_object {
27179 start.push_attribute(("sourceObject", val.as_str()));
27180 }
27181 {
27182 let val = &self.destination_file;
27183 start.push_attribute(("destinationFile", val.as_str()));
27184 }
27185 if let Some(ref val) = self.title {
27186 start.push_attribute(("title", val.as_str()));
27187 }
27188 if let Some(ref val) = self.auto_republish {
27189 start.push_attribute(("autoRepublish", if *val { "1" } else { "0" }));
27190 }
27191 #[cfg(feature = "extra-attrs")]
27192 for (key, value) in &self.extra_attrs {
27193 start.push_attribute((key.as_str(), value.as_str()));
27194 }
27195 start
27196 }
27197
27198 fn is_empty_element(&self) -> bool {
27199 true
27200 }
27201}