use serde::{Deserialize, Serialize};
use crate::{Capability, CapabilityFinding};
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, Eq)]
pub struct CapabilityProfile {
pub findings: Vec<CapabilityFinding>,
}
impl CapabilityProfile {
pub fn capabilities(&self) -> Vec<Capability> {
let mut caps: Vec<Capability> = self.findings.iter().map(|f| f.capability).collect();
caps.sort();
caps.dedup();
caps
}
pub fn findings_for(&self, capability: Capability) -> Vec<&CapabilityFinding> {
self.findings
.iter()
.filter(|f| f.capability == capability)
.collect()
}
}