use crate::_internal::analysis::evidence::EvidenceRecord;
use crate::_internal::analysis::state::Confidence;
#[derive(Debug, Clone)]
pub struct AnalysisOutcome<T> {
pub findings: Vec<T>,
pub confidence: Confidence,
pub evidence: Vec<EvidenceRecord>,
}
impl<T> AnalysisOutcome<T> {
pub fn new(findings: Vec<T>, confidence: Confidence, evidence: Vec<EvidenceRecord>) -> Self {
Self {
findings,
confidence,
evidence,
}
}
pub fn with_evidence(mut self, record: EvidenceRecord) -> Self {
if !self.evidence.contains(&record) {
self.evidence.push(record);
self.evidence.sort();
}
self.confidence = Confidence::Tainted;
self
}
}