rust_checker 1.0.0

A modular Rust code validation tool with HTML, JSON, SVG badge, and JUnit XML report export. Includes optional web dashboard and PQC guardrails via plugins.
Documentation
use crate::config::RuleConfig as FileRuleConfig;

#[derive(Debug, Clone)]
pub struct RuleConfig {
    pub check_main: bool,
    pub check_unused_var: bool,
    pub check_unused_import: bool,
}

impl Default for RuleConfig {
    fn default() -> Self {
        Self {
            check_main: true,
            check_unused_var: true,
            check_unused_import: true,
        }
    }
}

impl RuleConfig {
    pub fn from_args(args: &[String]) -> Self {
        Self {
            check_main: !args.contains(&"--skip-main".to_string()),
            check_unused_var: !args.contains(&"--allow-unused-var".to_string()),
            check_unused_import: !args.contains(&"--allow-unused-import".to_string()),
        }
    }

    pub fn from_args_and_config(args: &[String], file: Option<FileRuleConfig>) -> Self {
        let cli = Self::from_args(args);
        if let Some(cfg) = file {
            Self {
                check_main: if args.contains(&"--skip-main".to_string()) {
                    false
                } else {
                    cfg.check_main.unwrap_or(cli.check_main)
                },
                check_unused_var: if args.contains(&"--allow-unused-var".to_string()) {
                    false
                } else {
                    cfg.check_unused_var.unwrap_or(cli.check_unused_var)
                },
                check_unused_import: if args.contains(&"--allow-unused-import".to_string()) {
                    false
                } else {
                    cfg.check_unused_import.unwrap_or(cli.check_unused_import)
                },
            }
        } else {
            cli
        }
    }
}