umya_spreadsheet/structs/drawing/charts/
y_values.rs1use 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 write_start_tag(writer, "c:yVal", vec![], false);
54
55 self.number_reference.write_to(writer, spreadsheet);
57
58 write_end_tag(writer, "c:yVal");
59 }
60}