use crate::_internal::analysis::evidence::EvidenceRecord;
use crate::_internal::analysis::state::Confidence;
#[derive(Debug, Clone)]
pub(crate) struct AnalysisOutcome<T> {
pub findings: Vec<T>,
pub confidence: Confidence,
pub evidence: Vec<EvidenceRecord>,
}
impl<T> AnalysisOutcome<T> {
pub(crate) fn new(
findings: Vec<T>,
confidence: Confidence,
evidence: Vec<EvidenceRecord>,
) -> Self {
Self {
findings,
confidence,
evidence,
}
}
pub(crate) 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
}
}