Skip to main content

docx_rs/reader/
mc_fallback.rs

1#![allow(clippy::single_match)]
2
3use std::io::Read;
4use std::str::FromStr;
5
6use super::McFallback;
7
8use crate::reader::*;
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}