umya_spreadsheet/structs/drawing/spreadsheet/
extent.rs

1// xdr:ext
2use super::super::super::Int64Value;
3use crate::reader::driver::*;
4use crate::writer::driver::*;
5use quick_xml::events::BytesStart;
6use quick_xml::Reader;
7use quick_xml::Writer;
8use std::io::Cursor;
9
10#[derive(Clone, Default, Debug)]
11pub struct Extent {
12    cx: Int64Value,
13    cy: Int64Value,
14}
15
16impl Extent {
17    #[inline]
18    pub fn get_cx(&self) -> &i64 {
19        self.cx.get_value()
20    }
21
22    #[inline]
23    pub fn set_cx(&mut self, value: i64) -> &mut Extent {
24        self.cx.set_value(value);
25        self
26    }
27
28    #[inline]
29    pub fn get_cy(&self) -> &i64 {
30        self.cy.get_value()
31    }
32
33    #[inline]
34    pub fn set_cy(&mut self, value: i64) -> &mut Extent {
35        self.cy.set_value(value);
36        self
37    }
38
39    #[inline]
40    pub(crate) fn set_attributes<R: std::io::BufRead>(
41        &mut self,
42        _reader: &mut Reader<R>,
43        e: &BytesStart,
44    ) {
45        set_string_from_xml!(self, e, cx, "cx");
46        set_string_from_xml!(self, e, cy, "cy");
47    }
48
49    #[inline]
50    pub(crate) fn write_to(&self, writer: &mut Writer<Cursor<Vec<u8>>>) {
51        // xdr:ext
52        write_start_tag(
53            writer,
54            "xdr:ext",
55            vec![
56                ("cx", &self.cx.get_value_string()),
57                ("cy", &self.cy.get_value_string()),
58            ],
59            true,
60        );
61    }
62}