///|
fn main {
let args = @env.args()
if args.contains("--bench") {
println(@lib.benchmark_result_text(@lib.run_benchmark(100, 120)))
return
}
let json = args.contains("--json")
println("==================================================")
println(" MOONBIT INJURY RISK RULE ENGINE DEMO")
println("==================================================")
// 1. Healthy Athlete
let healthy_records = @lib.generate_healthy_athlete()
match
@lib.assess_comprehensive(
healthy_records,
"2026-08-30",
@lib.default_risk_policy(),
) {
Some(report) => {
println(
"\n>>> SCENARIO 1: HEALTHY ATHLETE (Balanced Workload & Recovery)",
)
println("Report Summary:")
if json {
println(@json.to_json(report).stringify())
} else {
println(report.summary)
}
}
None => println("Failed to generate report for Healthy Athlete.")
}
// 2. Workload Spike Athlete
let spike_records = @lib.generate_workload_spike_athlete()
match
@lib.assess_comprehensive(
spike_records,
"2026-08-30",
@lib.default_risk_policy(),
) {
Some(report) => {
println("\n>>> SCENARIO 2: WORKLOAD SPIKE ATHLETE (ACWR > 1.5)")
println("Report Summary:")
if json {
println(@json.to_json(report).stringify())
} else {
println(report.summary)
}
}
None => println("Failed to generate report for Workload Spike Athlete.")
}
// 3. Overtired Athlete
let overtired_records = @lib.generate_overtired_athlete()
match
@lib.assess_comprehensive(
overtired_records,
"2026-08-30",
@lib.default_risk_policy(),
) {
Some(report) => {
println(
"\n>>> SCENARIO 3: OVERTIRED ATHLETE (Sleep Deprived & High Fatigue)",
)
println("Report Summary:")
if json {
println(@json.to_json(report).stringify())
} else {
println(report.summary)
}
}
None => println("Failed to generate report for Overtired Athlete.")
}
// 4. Injured Athlete
let injured_records = @lib.generate_injured_athlete()
match
@lib.assess_comprehensive(
injured_records,
"2026-08-30",
@lib.default_risk_policy(),
) {
Some(report) => {
println("\n>>> SCENARIO 4: INJURED ATHLETE (Severe Pain Reported)")
println("Report Summary:")
if json {
println(@json.to_json(report).stringify())
} else {
println(report.summary)
}
}
None => println("Failed to generate report for Injured Athlete.")
}
}