pub mod api_security;
pub mod common;
pub mod cors;
pub mod csp;
pub mod cve_templates;
pub mod graphql;
pub mod http_utils;
pub mod jwt;
pub mod mass_assignment;
pub mod oauth_oidc;
pub mod openapi;
pub mod rate_limit;
pub mod websocket;
use crate::{config::Config, error::CapturedError, http_client::HttpClient, reports::Finding};
#[async_trait::async_trait]
pub trait Scanner: Send + Sync + 'static {
fn name(&self) -> &'static str;
async fn scan(
&self,
url: &str,
client: &HttpClient,
config: &Config,
) -> (Vec<Finding>, Vec<CapturedError>);
}