///|
/// AsyncTimer 异步任务计时示例
///
/// 演示 AsyncTimer + ConsoleReporter 的使用
fn main {
println("=== AsyncTimer 异步任务计时示例 ===")
println("")
// 创建并启动 AsyncTimer
let timer = @lib.AsyncTimer::new()
let timer1 = timer.start()
// 模拟异步任务(这里用空循环代替)
let mut i = 0
while i < 1000 {
i = i + 1
}
// 停止计时
let (timer2, elapsed) = timer1.stop()
let name = "async-task-1"
// 使用 ConsoleReporter 输出
let reporter = @lib.ConsoleReporter::new()
reporter.report_stopwatch(name, elapsed, [])
// 测试重置
let timer3 = timer2.reset()
let timer4 = timer3.start()
let mut j = 0
while j < 500 {
j = j + 1
}
let (_timer5, elapsed2) = timer4.stop()
reporter.report_stopwatch("async-task-2", elapsed2, [])
// 使用 JsonReporter 记录两次异步任务
let json_reporter = @lib.JsonReporter::new()
json_reporter.report_stopwatch("async-task-1", elapsed, [])
json_reporter.report_stopwatch("async-task-2", elapsed2, [])
println("JSON output:")
println(json_reporter.output())
println("=== 示例结束 ===")
}