secfinding 0.3.0

Universal security finding types for vulnerability scanners.
Documentation
use secfinding::{filter, Finding, FindingFilter, Severity};

#[test]
fn filter_applies_severity_scanner_and_tags() {
    let f1 = Finding::builder("calyx", "target", Severity::High)
        .title("t")
        .tag("sql")
        .build()
        .unwrap();
    let f2 = Finding::builder("gossan", "target", Severity::Medium)
        .title("t")
        .tag("xss")
        .build()
        .unwrap();

    let findings = vec![f1, f2];

    let f = FindingFilter {
        min_severity: Some(Severity::High),
        ..Default::default()
    };
    assert_eq!(filter(&findings, &f).len(), 1);

    let f = FindingFilter {
        exclude_scanners: vec!["gossan".into()],
        ..Default::default()
    };
    assert_eq!(filter(&findings, &f).len(), 1);

    let f = FindingFilter {
        include_tags: vec!["xss".into()],
        ..Default::default()
    };
    assert_eq!(filter(&findings, &f).len(), 1);
}