docx_reader/reader/
mc_fallback.rs

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