68 lines
1.5 KiB
Rust
68 lines
1.5 KiB
Rust
use serde::{Deserialize, Serialize};
|
|
|
|
use crate::domains::common::*;
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct Requirement {
|
|
pub name: String,
|
|
#[serde(default)]
|
|
pub intelligence: Vec<DomainId>,
|
|
#[serde(default)]
|
|
pub references: References,
|
|
#[serde(default)]
|
|
pub additional: Vec<(String, Value)>,
|
|
}
|
|
|
|
impl DomainModel for Requirement {
|
|
fn kind() -> DomainModelKind {
|
|
DomainModelKind::SourceRequirement
|
|
}
|
|
|
|
fn name(&self) -> &str {
|
|
self.name.as_str()
|
|
}
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct Intelligence {
|
|
pub name: String,
|
|
pub provider: DomainId,
|
|
#[serde(default)]
|
|
pub references: References,
|
|
#[serde(default)]
|
|
pub additional: Vec<(String, Value)>,
|
|
}
|
|
|
|
impl DomainModel for Intelligence {
|
|
fn kind() -> DomainModelKind {
|
|
DomainModelKind::SourceIntelligence
|
|
}
|
|
|
|
fn name(&self) -> &str {
|
|
self.name.as_str()
|
|
}
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct Provider {
|
|
pub name: String,
|
|
#[serde(default)]
|
|
pub references: References,
|
|
#[serde(default)]
|
|
pub additional: Vec<(String, Value)>,
|
|
}
|
|
|
|
impl DomainModel for Provider {
|
|
fn kind() -> DomainModelKind {
|
|
DomainModelKind::SourceProvider
|
|
}
|
|
|
|
fn name(&self) -> &str {
|
|
self.name.as_str()
|
|
}
|
|
}
|