use serde::{Deserialize, Serialize};
use std::net::IpAddr;
#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct Rule {
pub name: String,
#[serde(default)]
pub names: Vec<String>,
pub r#type: String,
#[serde(default)]
pub packages: Vec<String>,
#[serde(default)]
pub distribution: Vec<String>,
#[serde(default)]
pub certificates: Vec<String>,
#[serde(default)]
pub websites: Vec<String>,
#[serde(default)]
pub c2: C2Rule,
}
#[derive(Debug, PartialEq, Eq, Default, Serialize, Deserialize)]
pub struct C2Rule {
#[serde(default)]
pub ips: Vec<IpAddr>,
#[serde(default)]
pub domains: Vec<String>,
}