Skip to main content

stix_rs/observables/
email_addr.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
4#[serde(rename_all = "snake_case")]
5pub struct EmailAddr {
6    pub value: String,
7    #[serde(flatten)]
8    pub custom_properties: std::collections::HashMap<String, serde_json::Value>,
9}
10
11impl EmailAddr { pub fn builder() -> EmailAddrBuilder { EmailAddrBuilder::default() } }
12
13#[derive(Debug, Default)]
14pub struct EmailAddrBuilder { value: Option<String>, custom_properties: std::collections::HashMap<String, serde_json::Value> }
15
16impl EmailAddrBuilder {
17    pub fn value(mut self, v: impl Into<String>) -> Self { self.value = Some(v.into()); self }
18    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 }
19    pub fn build(self) -> EmailAddr { EmailAddr { value: self.value.unwrap_or_default(), custom_properties: self.custom_properties } }
20}
21
22impl From<EmailAddr> for crate::StixObjectEnum { fn from(e: EmailAddr) -> Self { crate::StixObjectEnum::EmailAddr(e) } }