cwe_xml/cwe/
categories.rs

1use std::hash::{Hash};
2use std::rc::Rc;
3use serde::Deserialize;
4use crate::cwe::relationships::Relationships;
5
6#[derive(Debug, Deserialize)]
7pub struct Categories {
8    #[serde(rename = "Category", default)]
9    pub categories: Vec<Rc<Category>>,
10}
11
12#[derive(Debug, Deserialize)]
13#[serde(rename = "Category")]
14pub struct Category {
15    #[serde(rename = "@ID")]
16    pub id: i64,
17    #[serde(rename = "@Name")]
18    pub name: String,
19    #[serde(rename = "@Status")]
20    pub status: String,
21    #[serde(rename = "Summary")]
22    pub summary: String,
23    #[serde(rename = "Relationships")]
24    pub relationships: Relationships,
25}
26
27impl PartialEq for Category {
28    fn eq(&self, other: &Self) -> bool {
29        self.id == other.id
30    }
31}
32
33impl Eq for Category {}
34
35impl Hash for Category {
36    fn hash<H: std::hash::Hasher>(&self, state: &mut H) {
37        state.write_i64(self.id);
38    }
39}