use super::HarnessId;
#[derive(Clone, Debug)]
pub enum HarnessEvidence {
Process(String),
ApplicationId(String),
Header(&'static str),
Path(String),
}
#[derive(Clone, Debug)]
pub struct HarnessDetection {
pub harness_id: HarnessId,
pub evidence: Vec<HarnessEvidence>,
pub version: Option<String>,
pub working_directory: Option<String>,
}
impl HarnessDetection {
pub fn evidence_names(&self) -> Vec<String> {
self.evidence
.iter()
.map(|evidence| match evidence {
HarnessEvidence::Process(value) => format!("process:{value}"),
HarnessEvidence::ApplicationId(value) => format!("application_id:{value}"),
HarnessEvidence::Header(value) => format!("header:{value}"),
HarnessEvidence::Path(value) => format!("path:{value}"),
})
.collect()
}
}