cyberstorm/src/domains/threat.rs

64 lines
1.1 KiB
Rust

use serde::{Deserialize, Serialize};
use crate::domains::common::*;
#[derive(Debug, Serialize, Deserialize)]
pub struct Tactic {
pub name: String,
}
impl DomainModel for Tactic {
fn kind() -> DomainModelKind {
DomainModelKind::ThreatTactic
}
fn name(&self) -> &str {
self.name.as_str()
}
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Technique {
pub name: String,
}
impl DomainModel for Technique {
fn kind() -> DomainModelKind {
DomainModelKind::ThreatTechnique
}
fn name(&self) -> &str {
self.name.as_str()
}
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Software {
pub name: String,
}
impl DomainModel for Software {
fn kind() -> DomainModelKind {
DomainModelKind::ThreatSoftware
}
fn name(&self) -> &str {
self.name.as_str()
}
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Simulation {
pub name: String,
}
impl DomainModel for Simulation {
fn kind() -> DomainModelKind {
DomainModelKind::ThreatSimulation
}
fn name(&self) -> &str {
self.name.as_str()
}
}