use crate::decision::Decision;
use crate::rules::{RiskInput, evaluate_risk};
pub fn evaluate(input: RiskInput, original: &str) -> Decision {
let score = evaluate_risk(input);
if score > 0.8 {
return Decision::Block;
}
if score > 0.5 {
return Decision::Warn;
}
if contains_repairable_issue(original) {
return Decision::Rewrite(sanitize(original));
}
Decision::Allow
}
fn contains_repairable_issue(input: &str) -> bool {
input.contains('\u{200B}') || input.contains("ƒ")
}
fn sanitize(input: &str) -> String {
input.replace('ƒ', "f")
}