mirror of
https://gitlab.cern.ch/wotsubo/endcap-sl-software-ri-generator.git
synced 2025-06-07 21:45:44 +09:00
fix(converter): wrong iterator usage
all iterator was consumed for searching value before collecting field
This commit is contained in:
parent
e6f09d684a
commit
83e0c6cb3d
2 changed files with 8 additions and 4 deletions
|
@ -390,13 +390,17 @@ impl Register {
|
|||
let desc = node.attribute("desc").map(str::to_string);
|
||||
|
||||
let children: Vec<_> = {
|
||||
let mut child_elements = node.children().filter(|node| node.is_element());
|
||||
if child_elements.any(|node| node.tag_name().name().eq("value")) {
|
||||
if node
|
||||
.children()
|
||||
.filter(|node| node.is_element())
|
||||
.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 {
|
||||
child_elements
|
||||
node.children()
|
||||
.filter(|node| node.is_element())
|
||||
.filter(|node| node.tag_name().name().eq("field"))
|
||||
.map(Field::from_xml_dom)
|
||||
.collect::<Result<_, _>>()?
|
||||
|
|
|
@ -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() {
|
||||
|
|
Loading…
Add table
Reference in a new issue