use std::collections::HashMap;
use std::sync::Arc;
use rsigma_parser::Level;
use serde::Serialize;
#[derive(Debug, Clone, Serialize)]
pub struct MatchResult {
pub rule_title: String,
pub rule_id: Option<String>,
pub level: Option<Level>,
pub tags: Vec<String>,
pub matched_selections: Vec<String>,
pub matched_fields: Vec<FieldMatch>,
#[serde(skip_serializing_if = "Option::is_none")]
pub event: Option<serde_json::Value>,
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub custom_attributes: Arc<HashMap<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Serialize)]
pub struct FieldMatch {
pub field: String,
pub value: serde_json::Value,
}