umya_spreadsheet/structs/
font_scheme.rs1use super::EnumValue;
3use super::FontSchemeValues;
4use crate::reader::driver::*;
5use crate::writer::driver::*;
6use quick_xml::events::BytesStart;
7use quick_xml::Reader;
8use quick_xml::Writer;
9use std::io::Cursor;
10
11#[derive(Clone, Default, Debug, Eq, Ord, PartialEq, PartialOrd)]
12pub struct FontScheme {
13 pub(crate) val: EnumValue<FontSchemeValues>,
14}
15
16impl FontScheme {
17 #[inline]
18 pub fn get_val(&self) -> &FontSchemeValues {
19 self.val.get_value()
20 }
21
22 #[inline]
23 pub fn set_val(&mut self, value: FontSchemeValues) -> &mut Self {
24 self.val.set_value(value);
25 self
26 }
27
28 #[inline]
29 pub(crate) fn set_attributes<R: std::io::BufRead>(
30 &mut self,
31 _reader: &mut Reader<R>,
32 e: &BytesStart,
33 ) {
34 self.val.set_value_string(get_attribute(e, b"val").unwrap());
35 }
36
37 #[inline]
38 pub(crate) fn write_to(&self, writer: &mut Writer<Cursor<Vec<u8>>>) {
39 if self.val.has_value() {
41 let attributes = vec![("val", self.val.get_value_string())];
42 write_start_tag(writer, "scheme", attributes, true);
43 }
44 }
45}