stix_rs/observables/
autonomous_system.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
4#[serde(rename_all = "snake_case")]
5pub struct AutonomousSystem {
6 pub number: Option<u32>,
7 pub name: Option<String>,
8 #[serde(flatten)]
9 pub custom_properties: std::collections::HashMap<String, serde_json::Value>,
10}
11
12impl AutonomousSystem { pub fn builder() -> AutonomousSystemBuilder { AutonomousSystemBuilder::default() } }
13
14#[derive(Debug, Default)]
15pub struct AutonomousSystemBuilder { number: Option<u32>, name: Option<String>, custom_properties: std::collections::HashMap<String, serde_json::Value> }
16
17impl AutonomousSystemBuilder {
18 pub fn number(mut self, n: u32) -> Self { self.number = Some(n); self }
19 pub fn name(mut self, s: impl Into<String>) -> Self { self.name = Some(s.into()); self }
20 pub fn property(mut self, k: impl Into<String>, v: impl Into<serde_json::Value>) -> Self { self.custom_properties.insert(k.into(), v.into()); self }
21 pub fn build(self) -> AutonomousSystem { AutonomousSystem { number: self.number, name: self.name, custom_properties: self.custom_properties } }
22}
23
24impl From<AutonomousSystem> for crate::StixObjectEnum { fn from(a: AutonomousSystem) -> Self { crate::StixObjectEnum::AutonomousSystem(a) } }