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