// Copyright 2026 ppyq882
// Licensed under the Apache License, Version 2.0
///|
/// Interactive scenario demonstrating Privacy Loss Audit Report generation.
pub fn run_audit_demo() -> Unit {
println("==================================================")
println(" 3. Privacy Loss Audit Trail Exporter Scenario ")
println("==================================================")
let logger = @audit.AuditLogger::new()
let b = match @core.PrivacyBudget::make(0.8, 0.00001) {
Ok(budget) => budget
Err(_) => @core.PrivacyBudget::zero()
}
let e1 = @audit.AuditEntry::new(
"q1",
"alice",
"patients",
"SELECT COUNT(*)",
"Laplace",
b,
b,
1000L,
@audit.QueryStatus::executed(),
)
let e2 = @audit.AuditEntry::new(
"q2",
"bob",
"salaries",
"SELECT AVG(salary)",
"Gaussian",
b,
b,
1005L,
@audit.QueryStatus::executed(),
)
logger.log(e1)
logger.log(e2)
let report = @audit.generate_audit_report(logger)
let md_report = @audit.export_report_markdown(
report, "MoonBit DP Audit Summary",
)
println(md_report)
println("==================================================")
}