cwe-xml 0.7.2

A local in-memory, queryable, and navigable CWE database initialized with one or multiple CWE XML files.
Documentation
use std::hash::{Hash};
use std::rc::Rc;
use serde::Deserialize;
use crate::cwe::relationships::Relationships;

#[derive(Debug, Deserialize)]
pub struct Categories {
    #[serde(rename = "Category", default)]
    pub categories: Vec<Rc<Category>>,
}

#[derive(Debug, Deserialize)]
#[serde(rename = "Category")]
pub struct Category {
    #[serde(rename = "@ID")]
    pub id: i64,
    #[serde(rename = "@Name")]
    pub name: String,
    #[serde(rename = "@Status")]
    pub status: String,
    #[serde(rename = "Summary")]
    pub summary: String,
    #[serde(rename = "Relationships")]
    pub relationships: Relationships,
}

impl PartialEq for Category {
    fn eq(&self, other: &Self) -> bool {
        self.id == other.id
    }
}

impl Eq for Category {}

impl Hash for Category {
    fn hash<H: std::hash::Hasher>(&self, state: &mut H) {
        state.write_i64(self.id);
    }
}