umya_spreadsheet/structs/drawing/
offset.rs1use 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 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}