diff --git a/src/converter.rs b/src/converter.rs index 2fcc4a4..7ab276a 100644 --- a/src/converter.rs +++ b/src/converter.rs @@ -390,17 +390,13 @@ impl Register { let desc = node.attribute("desc").map(str::to_string); let children: Vec<_> = { - if node - .children() - .filter(|node| node.is_element()) - .any(|node| node.tag_name().name().eq("value")) - { + let mut child_elements = node.children().filter(|node| node.is_element()); + if child_elements.any(|node| node.tag_name().name().eq("value")) { // Generate virtual single field under the register, to absorb difference between // normal format vec![Field::from_xml_register_dom(node)?] } else { - node.children() - .filter(|node| node.is_element()) + child_elements .filter(|node| node.tag_name().name().eq("field")) .map(Field::from_xml_dom) .collect::>()? @@ -520,9 +516,8 @@ impl Field { /// Generate virtual Field from Registers node (piracy), guessing a lot of parameters. pub(crate) fn from_xml_register_dom(node: Node) -> Result { - // // Prepend "val_" to avoid name confliction with struct for accessing values - // let name = "val_".to_string() + &util::get_name(node)?; - let name = "field".to_string(); + // Prepend "val_" to avoid name confliction with struct for accessing values + let name = "val_".to_string() + &util::get_name(node)?; let mask = match node.attribute("mask") { Some(mask) => mask .parse_prefixed_u32() diff --git a/src/integrated.rs b/src/integrated.rs index 0d64ee8..341c448 100644 --- a/src/integrated.rs +++ b/src/integrated.rs @@ -46,7 +46,7 @@ pub fn generate(xml: &path::Path, out: &path::Path) -> Result<(), Error> { log::debug!("xml parsed {doc:?}"); let register_map = types::Module::from_xml_dom(doc.root_element(), xml_git_info)?; - log::debug!("converted {register_map:#?}"); + log::debug!("converted {register_map:?}"); let (_maps, errors) = register_map.validate(); if !errors.is_empty() {