1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
use serde::Deserialize;

use crate::{AttackPattern, CourseOfAction, Malware, Matrix, Tactic, Tool};

#[stix::declaration]
#[derive(Deserialize)]
#[serde(tag = "type", rename_all = "kebab-case")]
#[non_exhaustive]
pub enum Declaration {
    AttackPattern(AttackPattern),
    CourseOfAction(CourseOfAction),
    Malware(Malware),
    #[serde(rename = "x-mitre-matrix")]
    Matrix(Matrix),
    #[serde(rename = "x-mitre-tactic")]
    Tactic(Tactic),
    Tool(Tool),
}