///|
fn main {
  let bytes = @moonwavkit.fixture_pcm16_mono()
  let parsed = @moonwavkit.parse_wav(bytes)
  if !parsed.ok {
    println("parse failed: \{parsed.error.code()}")
  } else {
    let decoded = @moonwavkit.decode_pcm(bytes, parsed.wav)
    if !decoded.ok {
      println("decode failed: \{decoded.error.code()}")
    } else {
      let stats = @moonwavkit.analyze_audio(decoded.float_buffer)
      let summary = @moonwavkit.summarize_format(parsed.wav)
      println("MoonWavKit basic example")
      println("encoding=\{summary.encoding}")
      println("sample_rate=\{summary.sample_rate}")
      println("channels=\{summary.channels}")
      println("frames=\{summary.frame_count}")
      println("peak=\{stats.peak}")
      println("rms=\{stats.rms}")
      let quality = @moonwavkit.inspect_audio_quality(decoded.float_buffer)
      let fingerprint = @moonwavkit.audio_fingerprint(decoded.float_buffer)
      println("quality_score=\{quality.score}")
      println("fingerprint_checksum=\{fingerprint.checksum}")
      println("zero_crossings=\{fingerprint.zero_crossings}")
      let support = @moonwavkit.supported_format_matrix()
      println("support_entries=\{support.length()}")
      println("fixture_catalog_passed=\{@moonwavkit.fixture_catalog_passed()}")
    }
  }
}