cwe_xml/cwe/
views.rs

1use std::rc::Rc;
2use serde::Deserialize;
3use crate::cwe::content_history::ContentHistory;
4use crate::cwe::notes::Notes;
5use crate::cwe::relationships::Relationships;
6use crate::cwe::structured_text::StructuredText;
7use crate::cwe::weaknesses::MappingNotes;
8
9#[derive(Debug, Deserialize)]
10#[serde(deny_unknown_fields)]
11pub struct Views {
12    #[serde(rename = "$value", default)]
13    pub views: Vec<Rc<View>>,
14}
15
16#[derive(Debug, Deserialize)]
17#[serde(deny_unknown_fields)]
18pub struct View {
19    #[serde(rename = "@ID")]
20    pub id: i64,
21    #[serde(rename = "@Name")]
22    pub name: String,
23    #[serde(rename = "@Type")]
24    pub r#type: String,
25    #[serde(rename = "@Status")]
26    pub status: String,
27    #[serde(rename = "Objective")]
28    pub objective: StructuredText,
29    #[serde(rename = "Audience")]
30    pub audience: Option<Audience>,
31    #[serde(rename = "Members")]
32    pub members: Option<Relationships>,
33    #[serde(rename = "Notes")]
34    pub notes: Option<Notes>,
35    #[serde(rename = "Filter")]
36    pub filter: Option<String>,
37    #[serde(rename = "Content_History")]
38    pub content_history: ContentHistory,
39    #[serde(rename = "Mapping_Notes")]
40    pub mapping_notes: Option<MappingNotes>,
41}
42
43#[derive(Debug, Deserialize)]
44#[serde(deny_unknown_fields)]
45pub struct Audience {
46    #[serde(rename = "$value", default)]
47    pub stake_holders: Vec<StakeHolder>,
48}
49
50#[derive(Debug, Deserialize)]
51#[serde(deny_unknown_fields)]
52pub struct StakeHolder {
53    #[serde(rename = "Type")]
54    pub r#type: String,
55    #[serde(rename = "Description")]
56    pub description: Option<String>,
57}