svd_encoder/
enumeratedvalue.rs

1use super::{new_node, Config, Element, Encode, EncodeError};
2
3use crate::{
4    config::{change_case, format_number},
5    svd::EnumeratedValue,
6};
7
8impl Encode for EnumeratedValue {
9    type Error = EncodeError;
10
11    fn encode_with_config(&self, config: &Config) -> Result<Element, EncodeError> {
12        let mut base = Element::new("enumeratedValue");
13        base.children.push(new_node(
14            "name",
15            change_case(&self.name, config.enumerated_value_name),
16        ));
17
18        if let Some(d) = &self.description {
19            base.children.push(new_node("description", d.clone()));
20        };
21
22        if let Some(v) = &self.value {
23            base.children.push(new_node(
24                "value",
25                format_number(*v, config.enumerated_value_value),
26            ));
27        };
28
29        if let Some(v) = &self.is_default {
30            base.children.push(new_node("isDefault", format!("{}", v)));
31        };
32
33        Ok(base)
34    }
35}