///|
fn show_gate(
name : String,
result : @guard.ScanResult,
gate : @guard.GatePolicy,
) -> Unit {
let decision = result.decide_with(gate)
println("\{name}: \{decision.label()}")
for reason in result.decision_reasons(gate) {
println(" - \{reason}")
}
}
///|
fn show_case(name : String, input : String) -> Unit {
let result = @guard.scan(input)
println("=== \{name} ===")
println("safe text: \{result.text()}")
println("risk: \{result.risk_level()} (score=\{result.risk_score()})")
show_gate("strict", result, @guard.GatePolicy::strict())
show_gate("balanced", result, @guard.GatePolicy::balanced())
show_gate("permissive", result, @guard.GatePolicy::permissive())
println("")
}
///|
fn main {
println("MoonAnsi Guard - policy gate comparison")
println("")
show_case("plain log", "build completed")
show_case("styled log", "\u{1b}[32mbuild completed\u{1b}[0m")
show_case("title spoof", "\u{1b}]2;trusted pipeline\u{07}build completed")
show_case("desktop notification", "\u{1b}]9;click this message\u{07}done")
show_case("clipboard write", "\u{1b}]52;c;U0VDUkVU\u{07}done")
show_case(
"inline file transfer", "\u{1b}]1337;File=name=eA==:cGF5bG9hZA==\u{07}done",
)
}