cwe-xml 0.7.2

A local in-memory, queryable, and navigable CWE database initialized with one or multiple CWE XML files.
Documentation
use serde::Deserialize;

#[derive(Debug, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct ContentHistory {
    #[serde(rename = "$value")]
    pub references: Vec<ContentHistoryChild>,
}

#[derive(Debug, Deserialize)]
#[serde(deny_unknown_fields)]
pub enum ContentHistoryChild {
    #[serde(rename = "Submission")]
    Submission(Submission),
    #[serde(rename = "Modification")]
    Modification(Modification),
    #[serde(rename = "Contribution")]
    Contribution(Contribution),
    #[serde(rename = "Previous_Entry_Name")]
    PreviousEntryName {
        #[serde(rename = "@Date")]
        date: String,
        #[serde(rename = "@Version")]
        version: Option<String>,
        #[serde(rename = "$value")]
        previous_entry_name: String,
    },
}

#[derive(Debug, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct Submission {
    #[serde(rename = "Submission_Name")]
    pub submission_name: Option<String>,
    #[serde(rename = "Submission_Version")]
    pub submission_version: Option<String>,
    #[serde(rename = "Submission_Organization")]
    pub submission_organization: Option<String>,
    #[serde(rename = "Submission_Date")]
    pub submission_date: String,
    #[serde(rename = "Submission_ReleaseDate")]
    pub submission_release_date: String,
    #[serde(rename = "Submission_Comment")]
    pub submission_comment: Option<String>,
}

#[derive(Debug, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct Modification {
    #[serde(rename = "Modification_Name")]
    pub modification_name: Option<String>,
    #[serde(rename = "Modification_Version")]
    pub modification_version: Option<String>,
    #[serde(rename = "Modification_Organization")]
    pub modification_organization: Option<String>,
    #[serde(rename = "Modification_Date")]
    pub modification_date: String,
    #[serde(rename = "Modification_ReleaseDate")]
    pub modification_release_date: Option<String>,
    #[serde(rename = "Modification_Importance")]
    pub modification_importance: Option<String>,
    #[serde(rename = "Modification_Comment")]
    pub modification_comment: Option<String>,
}

#[derive(Debug, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct Contribution {
    #[serde(rename = "@Type")]
    pub r#type: Option<String>,
    #[serde(rename = "Contribution_Name")]
    pub contribution_name: Option<String>,
    #[serde(rename = "Contribution_Version")]
    pub contribution_version: Option<String>,
    #[serde(rename = "Contribution_ReleaseDate")]
    pub contribution_release_date: Option<String>,
    #[serde(rename = "Contribution_Organization")]
    pub contribution_organization: Option<String>,
    #[serde(rename = "Contribution_Date")]
    pub contribution_date: String,
    #[serde(rename = "Contribution_Comment")]
    pub contribution_comment: Option<String>,
}