umya_spreadsheet/structs/
data_field.rs1use crate::reader::driver::*;
3use crate::structs::BooleanValue;
4use crate::structs::Int32Value;
5use crate::structs::Location;
6use crate::structs::StringValue;
7use crate::structs::UInt32Value;
8use crate::writer::driver::*;
9use quick_xml::events::{BytesStart, Event};
10use quick_xml::Reader;
11use quick_xml::Writer;
12use std::io::Cursor;
13
14#[derive(Clone, Default, Debug)]
15pub struct DataField {
16 name: StringValue,
17 fie_id: UInt32Value,
18 base_fie_id: Int32Value,
19 base_item: UInt32Value,
20}
21impl DataField {
22 #[inline]
23 pub fn get_name(&self) -> &str {
24 &self.name.get_value_str()
25 }
26
27 #[inline]
28 pub(crate) fn set_name<S: Into<String>>(&mut self, value: S) -> &mut Self {
29 self.name.set_value(value);
30 self
31 }
32
33 #[inline]
34 pub fn get_fie_id(&self) -> &u32 {
35 self.fie_id.get_value()
36 }
37
38 #[inline]
39 pub fn set_fie_id(&mut self, value: u32) -> &mut Self {
40 self.fie_id.set_value(value);
41 self
42 }
43
44 #[inline]
45 pub fn get_base_fie_id(&self) -> &i32 {
46 self.base_fie_id.get_value()
47 }
48
49 #[inline]
50 pub fn set_base_fie_id(&mut self, value: i32) -> &mut Self {
51 self.base_fie_id.set_value(value);
52 self
53 }
54
55 #[inline]
56 pub fn get_base_item(&self) -> &u32 {
57 self.base_item.get_value()
58 }
59
60 #[inline]
61 pub fn set_base_item(&mut self, value: u32) -> &mut Self {
62 self.base_item.set_value(value);
63 self
64 }
65
66 #[inline]
67 pub(crate) fn set_attributes<R: std::io::BufRead>(
68 &mut self,
69 _reader: &mut Reader<R>,
70 e: &BytesStart,
71 ) {
72 set_string_from_xml!(self, e, name, "name");
73 set_string_from_xml!(self, e, fie_id, "fld");
74 set_string_from_xml!(self, e, base_fie_id, "baseField");
75 set_string_from_xml!(self, e, base_item, "baseItem");
76 }
77
78 #[inline]
79 pub(crate) fn write_to(&self, writer: &mut Writer<Cursor<Vec<u8>>>) {
80 write_start_tag(
82 writer,
83 "dataField",
84 vec![
85 ("name", self.name.get_value_str()),
86 ("fld", &self.fie_id.get_value_string()),
87 ("baseField", &self.base_fie_id.get_value_string()),
88 ("baseItem", &self.base_item.get_value_string()),
89 ],
90 true,
91 );
92 }
93}