Skip to content

Commit e2e3ab4

Browse files
committed
Add a function to produce merged peripheral when derivedFrom is used.
1 parent 2be903c commit e2e3ab4

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

src/lib.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,23 @@ pub struct Peripheral {
178178
}
179179

180180
impl Peripheral {
181+
pub fn derive_from(&self, other: &Peripheral) -> Peripheral {
182+
let mut derived = self.clone();
183+
if derived.group_name.is_none() && other.group_name.is_some() {
184+
derived.group_name = other.group_name.clone();
185+
}
186+
if derived.description.is_none() && other.description.is_some() {
187+
derived.description = other.description.clone();
188+
}
189+
if derived.registers.is_none() && other.registers.is_some() {
190+
derived.registers = other.registers.clone();
191+
}
192+
if derived.interrupt.is_empty() {
193+
derived.interrupt = other.interrupt.clone();
194+
}
195+
derived
196+
}
197+
181198
fn parse(tree: &Element) -> Peripheral {
182199
assert_eq!(tree.name, "peripheral");
183200

0 commit comments

Comments
 (0)