///|
/// 秒表命令行工具
///
/// Usage:
/// stopwatch [options]
///
/// Options:
/// --demo 运行演示
/// --help, -h 显示帮助信息
fn main {
let args = @env.args()
let mut show_demo = false
let mut show_help = false
let mut i = 1
while i < args.length() {
let arg = args[i]
if arg == "--demo" {
show_demo = true
} else if arg == "--help" || arg == "-h" {
show_help = true
}
i = i + 1
}
if show_help || args.length() <= 1 {
print_usage()
return
}
if show_demo {
run_demo()
}
}
///|
/// 运行秒表演示
fn run_demo() -> Unit {
println("=== MoonBit Stopwatch Demo ===")
println("")
let sw = @lib.Stopwatch::new()
println("Created stopwatch: idle")
println("Elapsed nanos: " + sw.elapsed_nanos().to_string())
println("")
let sw1 = sw.start()
println("Started: running = " + sw1.is_running().to_string())
let elapsed1 = sw1.elapsed_secs()
println("Elapsed secs: " + elapsed1.to_string())
println("Formatted: " + @lib.format_nanos(sw1.elapsed_nanos()))
println("")
let (sw2, lap1) = sw1.lap("demo-lap")
println("Lap recorded: " + @lib.format_nanos(lap1.lap_nanos()))
println("Total laps: " + sw2.lap_count().to_string())
println("")
let sw3 = sw2.stop()
println("Stopped: running = " + sw3.is_running().to_string())
println("Final elapsed: " + @lib.format_nanos(sw3.elapsed_nanos()))
println("")
let sw4 = sw3.reset()
println("Reset: elapsed_nanos = " + sw4.elapsed_nanos().to_string())
println("Laps after reset: " + sw4.lap_count().to_string())
println("")
println("=== Demo Complete ===")
}
///|
/// 打印使用帮助
fn print_usage() -> Unit {
println("moonbit-observe - MoonBit Observe CLI Tool")
println("")
println("Usage:")
println(" stopwatch [options]")
println("")
println("Options:")
println(" --demo Run stopwatch demo")
println(" --help, -h Show this help")
println("")
println("Examples:")
println(" stopwatch --demo")
}