docx_reader/reader/
shading.rs

1use 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}