nvd_cwe/
structured_text.rs1use 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}