syncable_cli/analyzer/vulnerability/checkers/
mod.rs

1//! # Language-specific vulnerability checkers
2
3pub mod go;
4pub mod java;
5pub mod javascript;
6pub mod python;
7pub mod rust;
8
9pub use go::GoVulnerabilityChecker;
10pub use java::JavaVulnerabilityChecker;
11pub use javascript::JavaScriptVulnerabilityChecker;
12pub use python::PythonVulnerabilityChecker;
13pub use rust::RustVulnerabilityChecker;
14
15use super::types::{VulnerabilityError, VulnerableDependency};
16use crate::analyzer::dependency_parser::DependencyInfo;
17use std::path::Path;
18
19/// Common trait for language-specific vulnerability checkers
20pub trait LanguageVulnerabilityChecker {
21    fn check_vulnerabilities(
22        &self,
23        dependencies: &[DependencyInfo],
24        project_path: &Path,
25    ) -> Result<Vec<VulnerableDependency>, VulnerabilityError>;
26}
27
28/// Extension trait for mutable vulnerability checkers
29pub trait MutableLanguageVulnerabilityChecker {
30    fn check_vulnerabilities(
31        &mut self,
32        dependencies: &[DependencyInfo],
33        project_path: &Path,
34    ) -> Result<Vec<VulnerableDependency>, VulnerabilityError>;
35}