svd_encoder/
interrupt.rs

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}