svd_encoder/
enumeratedvalue.rs1use 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}