///|
/// 分段计时(Lap)示例(含 Reporter)
fn main {
println("=== 分段计时示例 ===")
println("")
// 创建一个秒表并启动
let sw = @lib.Stopwatch::new().start()
println("秒表已启动")
// 记录第1圈
let (sw1, lap1) = sw.lap("第1圈")
println("1. 圈名: " + lap1.label())
println(" 分段: " + @lib.format_nanos(lap1.lap_nanos()))
println(" 累计: " + @lib.format_nanos(lap1.total_nanos()))
// 记录第2圈
let (sw2, lap2) = sw1.lap("第2圈")
println("2. 圈名: " + lap2.label())
println(" 分段: " + @lib.format_nanos(lap2.lap_nanos()))
println(" 累计: " + @lib.format_nanos(lap2.total_nanos()))
// 记录第3圈
let (sw3, lap3) = sw2.lap("第3圈")
println("3. 圈名: " + lap3.label())
println(" 分段: " + @lib.format_nanos(lap3.lap_nanos()))
println(" 累计: " + @lib.format_nanos(lap3.total_nanos()))
// 列出所有分段
println("")
println("所有分段记录:")
let laps = sw3.list_laps()
let mut i = 0
while i < laps.length() {
let lap = laps[i]
println(
" [" + lap.label() + "] 分段=" +
@lib.format_nanos(lap.lap_nanos()) + ", 累计=" +
@lib.format_nanos(lap.total_nanos()),
)
i = i + 1
}
println("")
println("总圈数: " + sw3.lap_count().to_string())
// 暂停秒表
let sw4 = sw3.stop()
let total_nanos = sw4.elapsed_nanos()
println("最终耗时: " + @lib.format_nanos(total_nanos))
// 使用 ConsoleReporter 展示分段详情
println("")
println("ConsoleReporter 分段输出:")
let reporter = @lib.ConsoleReporter::new()
reporter.report_stopwatch("lap-demo", total_nanos, sw3.list_laps())
println("")
println("=== 示例结束 ===")
}