syncable_cli/analyzer/vulnerability/checkers/
mod.rs

1//! # Language-specific vulnerability checkers
2
3pub mod rust;
4pub mod javascript;
5pub mod python;
6pub mod go;
7pub mod java;
8
9pub use rust::RustVulnerabilityChecker;
10pub use javascript::JavaScriptVulnerabilityChecker;
11pub use python::PythonVulnerabilityChecker;
12pub use go::GoVulnerabilityChecker;
13pub use java::JavaVulnerabilityChecker;
14
15use std::path::Path;
16use crate::analyzer::dependency_parser::DependencyInfo;
17use super::types::{VulnerableDependency, VulnerabilityError};
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}