umya_spreadsheet/structs/vml/spreadsheet/
clipboard_format.rs1use super::ClipboardFormatValues;
2use crate::reader::driver::*;
3use crate::structs::EnumValue;
4use crate::writer::driver::*;
5use quick_xml::events::{BytesStart, Event};
6use quick_xml::Reader;
7use quick_xml::Writer;
8use std::io::Cursor;
9
10#[derive(Clone, Default, Debug)]
11pub struct ClipboardFormat {
12 value: EnumValue<ClipboardFormatValues>,
13}
14
15impl ClipboardFormat {
16 #[inline]
17 pub fn get_value(&self) -> &ClipboardFormatValues {
18 self.value.get_value()
19 }
20
21 #[inline]
22 pub fn set_value(&mut self, value: ClipboardFormatValues) -> &mut Self {
23 self.value.set_value(value);
24 self
25 }
26
27 #[inline]
28 pub(crate) fn set_attributes<R: std::io::BufRead>(
29 &mut self,
30 reader: &mut Reader<R>,
31 _e: &BytesStart,
32 ) {
33 xml_read_loop!(
34 reader,
35 Event::Text(e) => {
36 self.value.set_value_string(e.unescape().unwrap());
37 },
38 Event::End(ref e) => {
39 if e.name().0 == b"x:CF" {
40 return
41 }
42 },
43 Event::Eof => panic!("Error: Could not find {} end element", "x:CF")
44 );
45 }
46
47 #[inline]
48 pub(crate) fn write_to(&self, writer: &mut Writer<Cursor<Vec<u8>>>) {
49 write_start_tag(writer, "x:CF", vec![], false);
51 write_text_node(writer, self.value.get_value_string());
52 write_end_tag(writer, "x:CF");
53 }
54}