use std::path::PathBuf;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ProcessMatch {
pub pid: u32,
pub parent_pid: u32,
pub image_name: String,
pub image_path: Option<PathBuf>,
pub threads: u32,
pub matched_modules: Vec<ModuleMatch>,
pub enumeration_status: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ModuleMatch {
pub name: String,
pub path: PathBuf,
pub base: usize,
pub size: usize,
pub pattern: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FindResult {
pub matches: Vec<ProcessMatch>,
pub total_processes: usize,
pub skipped_processes: Vec<SkippedProcess>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SkippedProcess {
pub pid: u32,
pub image_name: String,
pub reason: String,
pub kind: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ProcessSummary {
pub pid: u32,
pub image_name: String,
pub parent_pid: u32,
pub threads: u32,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ProcessListResult {
pub processes: Vec<ProcessSummary>,
pub total_processes: usize,
}