docx_rs/reader/
shading.rs

1use std::io::Read;
2use std::str::FromStr;
3
4use crate::types::*;
5use xml::attribute::OwnedAttribute;
6use xml::reader::EventReader;
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}