Skip to content

Commit 1888f10

Browse files
bors[bot]wez
andcommitted
Merge #65
65: derivedFrom is an attribute, not a child of <register> r=Emilgardis a=wez This got accidentally refactored to be parsed as a child, but this is actually an attribute (consistent with peripheral.rs). Fixup and test via `cargo test --features unproven` See also: rust-embedded/svd2rust#256 Co-authored-by: Wez Furlong <[email protected]>
2 parents 9d87a7b + 0061aaa commit 1888f10

File tree

2 files changed

+4
-8
lines changed

2 files changed

+4
-8
lines changed

src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626

2727
extern crate either;
2828
extern crate xmltree;
29-
#[macro_use]
3029
extern crate failure;
3130

3231
#[cfg(feature = "unproven")]

src/svd/registerinfo.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ impl RegisterInfo {
5959
name,
6060
alternate_group: tree.get_child_text_opt("alternateGroup")?,
6161
alternate_register: tree.get_child_text_opt("alternateRegister")?,
62-
derived_from: tree.get_child_text_opt("derivedFrom")?,
62+
derived_from: tree.attributes.get("derivedFrom").map(|s| s.to_owned()),
6363
description: tree.get_child_text("description")?,
6464
address_offset: tree.get_child_u32("addressOffset")?,
6565
size: parse::optional::<u32>("size", tree)?,
@@ -136,10 +136,8 @@ impl Encode for RegisterInfo {
136136

137137
match self.derived_from {
138138
Some(ref v) => {
139-
elem.children.push(new_element(
140-
"derivedFrom",
141-
Some(format!("{}", v)),
142-
));
139+
elem.attributes
140+
.insert(String::from("derivedFrom"), format!("{}", v));
143141
}
144142
None => (),
145143
}
@@ -254,13 +252,12 @@ mod tests {
254252
_extensible: (),
255253
},
256254
"
257-
<register>
255+
<register derivedFrom=\"derived from\">
258256
<name>WRITECTRL</name>
259257
<description>Write Control Register</description>
260258
<addressOffset>0x8</addressOffset>
261259
<alternateGroup>alternate group</alternateGroup>
262260
<alternateRegister>alternate register</alternateRegister>
263-
<derivedFrom>derived from</derivedFrom>
264261
<size>32</size>
265262
<access>read-write</access>
266263
<resetValue>0x00000000</resetValue>

0 commit comments

Comments
 (0)