svd_encoder/
enumeratedvalues.rs1use super::{new_node, Config, Element, Encode, EncodeError};
2
3use crate::{config::change_case, svd::EnumeratedValues};
4
5impl Encode for EnumeratedValues {
6 type Error = EncodeError;
7
8 fn encode_with_config(&self, config: &Config) -> Result<Element, EncodeError> {
9 let mut base = Element::new("enumeratedValues");
10
11 if let Some(d) = &self.name {
12 base.children.push(new_node(
13 "name",
14 change_case(d, config.enumerated_values_name),
15 ));
16 };
17
18 if let Some(v) = &self.usage {
19 base.children.push(v.encode_node()?);
20 };
21
22 if let Some(v) = &self.derived_from {
23 base.attributes.insert(
24 String::from("derivedFrom"),
25 change_case(v, config.enumerated_values_name),
26 );
27 }
28
29 for v in &self.values {
30 base.children.push(v.encode_node_with_config(config)?);
31 }
32
33 Ok(base)
34 }
35}