umya_spreadsheet/structs/drawing/charts/
y_values.rs

1// c:yVal
2use super::NumberReference;
3use crate::reader::driver::*;
4use crate::structs::Spreadsheet;
5use crate::writer::driver::*;
6use quick_xml::events::{BytesStart, Event};
7use quick_xml::Reader;
8use quick_xml::Writer;
9use std::io::Cursor;
10
11#[derive(Clone, Default, Debug)]
12pub struct YValues {
13    number_reference: NumberReference,
14}
15
16impl YValues {
17    pub fn get_number_reference(&self) -> &NumberReference {
18        &self.number_reference
19    }
20
21    pub fn get_number_reference_mut(&mut self) -> &mut NumberReference {
22        &mut self.number_reference
23    }
24
25    pub fn set_number_reference(&mut self, value: NumberReference) -> &mut YValues {
26        self.number_reference = value;
27        self
28    }
29
30    pub(crate) fn set_attributes<R: std::io::BufRead>(
31        &mut self,
32        reader: &mut Reader<R>,
33        _e: &BytesStart,
34    ) {
35        xml_read_loop!(
36            reader,
37            Event::Start(ref e) => {
38                if e.name().0 == b"c:numRef" {
39                    self.number_reference.set_attributes(reader, e);
40                }
41            },
42            Event::End(ref e) => {
43                if e.name().0 == b"c:yVal" {
44                    return;
45                }
46            },
47            Event::Eof => panic!("Error: Could not find {} end element", "c:yVal")
48        );
49    }
50
51    pub(crate) fn write_to(&self, writer: &mut Writer<Cursor<Vec<u8>>>, spreadsheet: &Spreadsheet) {
52        // c:yVal
53        write_start_tag(writer, "c:yVal", vec![], false);
54
55        // c:numRef
56        self.number_reference.write_to(writer, spreadsheet);
57
58        write_end_tag(writer, "c:yVal");
59    }
60}