docx_reader/reader/
mc_fallback.rs1use std::io::Read;
2use std::str::FromStr;
3use xml::attribute::OwnedAttribute;
4use xml::reader::{EventReader, XmlEvent};
5
6use crate::reader::*;
7
8use super::McFallback;
9
10impl ElementReader for McFallback {
11 fn read<R: Read>(
12 r: &mut EventReader<R>,
13 _attrs: &[OwnedAttribute],
14 ) -> Result<Self, ReaderError> {
15 loop {
16 let fallback = McFallback::new();
17 let e = r.next();
18 match e {
19 Ok(XmlEvent::EndElement { name, .. }) => {
20 let e = McXMLElement::from_str(&name.local_name).unwrap();
21 match e {
22 McXMLElement::Fallback => {
23 return Ok(fallback);
24 }
25 _ => {}
26 }
27 }
28 Err(_) => return Err(ReaderError::XMLReadError),
29 _ => {}
30 }
31 }
32 }
33}