///|
/// 秒表基本使用示例(含 Reporter)
fn main {
  println("=== stopwatch 基本使用示例 ===")
  println("")

  // 1. 创建一个未启动的秒表
  let sw = @lib.Stopwatch::new()
  println("1. 创建秒表,is_running: " + sw.is_running().to_string())

  // 2. 启动秒表
  let sw1 = sw.start()
  println("2. 启动秒表,is_running: " + sw1.is_running().to_string())

  // 3. 读取耗时(纳秒、微秒、毫秒、秒)
  println("3. 耗时读取:")
  println("   nanos: " + sw1.elapsed_nanos().to_string())
  println("   micros: " + sw1.elapsed_micros().to_string())
  println("   millis: " + sw1.elapsed_millis().to_string())
  println("   secs: " + sw1.elapsed_secs().to_string())
  println("   格式化: " + @lib.format_nanos(sw1.elapsed_nanos()))

  // 4. 暂停秒表
  let sw2 = sw1.stop()
  println("4. 暂停,is_running: " + sw2.is_running().to_string())
  let paused_nanos = sw2.elapsed_nanos()
  println("   暂停时耗时: " + @lib.format_nanos(paused_nanos))

  // 5. 恢复秒表
  let sw3 = sw2.resume()
  println("5. 恢复,is_running: " + sw3.is_running().to_string())

  // 6. 重置秒表
  let sw4 = sw3.reset()
  println("6. 重置后 nanos: " + sw4.elapsed_nanos().to_string())
  println("   is_running: " + sw4.is_running().to_string())

  // 7. 使用 ConsoleReporter 输出
  println("")
  println("7. ConsoleReporter 输出:")
  let reporter = @lib.ConsoleReporter::new()
  reporter.report_stopwatch("basic-demo", paused_nanos, [])

  println("")
  println("=== 示例结束 ===")
}