use crate::content_history::ContentHistory;
use crate::mapping_notes::MappingNotes;
use crate::notes::Notes;
use crate::relationships::Relationships;
use crate::structured_text::StructuredText;
use crate::weaknesses::{References, TaxonomyMappings};
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize)]
pub struct Categories {
#[serde(rename(deserialize = "Category"), default)]
pub categories: Vec<Category>,
}
#[derive(Debug, Deserialize, Serialize)]
#[serde(deny_unknown_fields, rename(deserialize = "Category"))]
pub struct Category {
#[serde(rename(deserialize = "@ID"))]
pub id: i64,
#[serde(rename(deserialize = "@Name"))]
pub name: String,
#[serde(rename(deserialize = "@Status"))]
pub status: String,
#[serde(rename(deserialize = "Summary"))]
pub summary: StructuredText,
#[serde(rename(deserialize = "Relationships"))]
pub relationships: Option<Relationships>,
#[serde(rename(deserialize = "References"))]
pub references: Option<References>,
#[serde(rename(deserialize = "Mapping_Notes"))]
pub mapping_notes: MappingNotes,
#[serde(rename(deserialize = "Notes"))]
pub notes: Option<Notes>,
#[serde(rename(deserialize = "Content_History"))]
pub content_history: ContentHistory,
#[serde(rename(deserialize = "Taxonomy_Mappings"))]
pub taxonomy_mappings: Option<TaxonomyMappings>,
}