1use super::{new_node, Config, Element, Encode, EncodeError};
2
3use crate::{config::change_case, svd::Interrupt};
4
5impl Encode for Interrupt {
6 type Error = EncodeError;
7
8 fn encode_with_config(&self, config: &Config) -> Result<Element, EncodeError> {
9 let mut children = vec![new_node(
10 "name",
11 change_case(&self.name, config.interrupt_name),
12 )];
13 if let Some(d) = self.description.clone() {
14 children.push(new_node("description", d));
15 }
16 children.push(new_node("value", format!("{}", self.value)));
17 let mut elem = Element::new("interrupt");
18 elem.children = children;
19 Ok(elem)
20 }
21}