1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
use xml::Element;
use ::{ReadError, ViaXml};
#[derive(Default, Debug, Clone)]
pub struct Category {
pub domain: Option<String>,
pub value: String,
}
impl ViaXml for Category {
fn to_xml(&self) -> Element {
let mut category = match self.domain {
Some(ref d) => Element::new("category".to_string(), None, vec![("domain".to_string(), None, d.clone())]),
None => Element::new("category".to_string(), None, vec![]),
};
category.text(self.value.clone());
category
}
fn from_xml(elem: Element) -> Result<Self, ReadError> {
let domain = elem.get_attribute("domain", None).map(|s| s.to_string());
let value = elem.content_str();
Ok(Category {
domain: domain,
value: value,
})
}
}