cwe_xml/cwe/
structured_text.rs

1use serde::Deserialize;
2
3#[derive(Debug, Deserialize)]
4#[serde(deny_unknown_fields)]
5pub struct StructuredCode {
6    #[serde(rename = "@Nature")]
7    pub nature: String,
8    #[serde(rename = "@Language")]
9    pub language: Option<String>,
10    #[serde(rename = "$value", default)]
11    pub children: Option<Vec<StructuredTextType>>,
12}
13
14#[derive(Debug, Deserialize)]
15#[serde(deny_unknown_fields)]
16pub struct StructuredText {
17    #[serde(rename = "$value")]
18    pub descriptions: Vec<StructuredTextType>,
19}
20
21#[derive(Debug, Deserialize)]
22#[serde(deny_unknown_fields)]
23pub enum StructuredTextType {
24    #[serde(rename = "p")]
25    P {
26        #[serde(rename = "$value", default)]
27        children: Vec<Box<StructuredTextType>>,
28    },
29    #[serde(rename = "b")]
30    XhtmlB {
31        #[serde(rename = "$value", default)]
32        children: Vec<Box<StructuredTextType>>,
33    },
34    #[serde(rename = "ol")]
35    XhtmlOl {
36        #[serde(rename = "$value", default)]
37        children: Vec<Box<StructuredTextType>>,
38    },
39    #[serde(rename = "li")]
40    XhtmlLi {
41        #[serde(rename = "$value", default)]
42        children: Vec<Box<StructuredTextType>>,
43    },
44    #[serde(rename = "ul")]
45    XhtmlUl {
46        #[serde(rename = "$value", default)]
47        children: Vec<Box<StructuredTextType>>,
48    },
49    #[serde(rename = "tbody")]
50    XhtmlTBody {
51        #[serde(rename = "$value", default)]
52        children: Vec<Box<StructuredTextType>>,
53    },
54    #[serde(rename = "table")]
55    XhtmlTable {
56        #[serde(rename = "$value", default)]
57        children: Vec<Box<StructuredTextType>>,
58    },
59    #[serde(rename = "tr")]
60    XhtmlTr {
61        #[serde(rename = "$value", default)]
62        children: Vec<Box<StructuredTextType>>,
63    },
64    #[serde(rename = "th")]
65    XhtmlTh {
66        #[serde(rename = "$value", default)]
67        children: Vec<Box<StructuredTextType>>,
68    },
69    #[serde(rename = "td")]
70    XhtmlTd {
71        #[serde(rename = "$value", default)]
72        children: Vec<Box<StructuredTextType>>,
73    },
74    #[serde(rename = "img")]
75    XhtmlImg {
76        #[serde(rename = "@src")]
77        src: String,
78        #[serde(rename = "@alt")]
79        alt: Option<String>,
80    },
81    #[serde(rename = "div")]
82    XhtmlDiv {
83        #[serde(rename = "@style")]
84        style: Option<String>,
85        #[serde(rename = "$value", default)]
86        children: Vec<Box<StructuredTextType>>,
87    },
88    #[serde(rename = "br")]
89    XhtmlBr,
90    #[serde(rename = "i")]
91    XhtmlI {
92        #[serde(rename = "$value")]
93        text: String,
94    },
95    #[serde(rename = "$text")]
96    Text(String),
97}