minor cleanup of element skipping
* "skipped" is unnecessary: it's always false at depth == 0, so its one use in "if depth == 0 && !skipped" can be removed. * the element doesn't need a binding, and shadowing "named_element" confused me. * remove old commented-out path that errored on unknown elements
This commit is contained in:
parent
c889461eef
commit
8a1e1e2e16
@ -341,26 +341,20 @@ pub fn parse(
|
|||||||
trace!("Struct {} @ {}: matching {:?}", stringify!(#name), start_depth, event);
|
trace!("Struct {} @ {}: matching {:?}", stringify!(#name), start_depth, event);
|
||||||
match event {
|
match event {
|
||||||
XmlEvent::StartElement{ref name, ref attributes, ..} => {
|
XmlEvent::StartElement{ref name, ref attributes, ..} => {
|
||||||
let mut skipped = false;
|
|
||||||
|
|
||||||
match name.local_name.as_str() {
|
match name.local_name.as_str() {
|
||||||
#call_visitors
|
#call_visitors
|
||||||
named_element => {
|
_ => {
|
||||||
let event = reader.next_event()?;
|
let event = reader.next_event()?;
|
||||||
#write_unused
|
#write_unused
|
||||||
|
|
||||||
if depth > 0 { // Don't skip root element
|
if depth > 0 { // Don't skip root element
|
||||||
skipped = true;
|
|
||||||
reader.skip_element(|event| {
|
reader.skip_element(|event| {
|
||||||
#write_unused
|
#write_unused
|
||||||
})?;
|
})?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// name => {
|
|
||||||
// return Err(format!("unknown key {}", name))
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
if depth == 0 && !skipped { // Look for attributes only at element start
|
if depth == 0 { // Look for attributes only at element start
|
||||||
#attributes_loading
|
#attributes_loading
|
||||||
}
|
}
|
||||||
depth += 1;
|
depth += 1;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user