docx_reader/reader/
shading.rs1use std::io::Read;
2use std::str::FromStr;
3use xml::attribute::OwnedAttribute;
4use xml::reader::EventReader;
5
6use crate::types::*;
7
8use super::*;
9
10impl ElementReader for Shading {
11 fn read<R: Read>(
12 _r: &mut EventReader<R>,
13 attrs: &[OwnedAttribute],
14 ) -> Result<Self, ReaderError> {
15 let mut shd = Shading::new();
16 for a in attrs {
17 let local_name = &a.name.local_name;
18 if local_name == "val" {
19 if let Ok(val) = ShdType::from_str(&a.value) {
20 shd = shd.shd_type(val);
21 }
22 } else if local_name == "color" {
23 shd = shd.color(&a.value);
24 } else if local_name == "fill" {
25 shd = shd.fill(&a.value);
26 }
27 }
28 Ok(shd)
29 }
30}