nvd_cwe/
structured_text.rs

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