umya_spreadsheet/structs/drawing/
offset.rs

1// a:off
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 Offset {
12    x: Int64Value,
13    y: Int64Value,
14}
15impl Offset {
16    #[inline]
17    pub fn get_x(&self) -> &i64 {
18        self.x.get_value()
19    }
20
21    #[inline]
22    pub fn set_x(&mut self, value: i64) {
23        self.x.set_value(value);
24    }
25
26    #[inline]
27    pub fn get_y(&self) -> &i64 {
28        self.y.get_value()
29    }
30
31    #[inline]
32    pub fn set_y(&mut self, value: i64) {
33        self.y.set_value(value);
34    }
35
36    #[inline]
37    pub(crate) fn set_attributes<R: std::io::BufRead>(
38        &mut self,
39        _reader: &mut Reader<R>,
40        e: &BytesStart,
41    ) {
42        self.x.set_value_string(get_attribute(e, b"x").unwrap());
43        self.y.set_value_string(get_attribute(e, b"y").unwrap());
44    }
45
46    pub(crate) fn write_to(&self, writer: &mut Writer<Cursor<Vec<u8>>>) {
47        // a:off
48        write_start_tag(
49            writer,
50            "a:off",
51            vec![
52                ("x", &self.x.get_value_string()),
53                ("y", &self.y.get_value_string()),
54            ],
55            true,
56        );
57    }
58}