///|
fn main {
  let args = ["--input=data.txt", "--output", "out.txt", "-v", "row1", "row2"]
  println("moonbit-argkit demo")
  println("input: " + @argkit.value_or(args, "input", "i", ""))
  println("output: " + @argkit.value_or(args, "output", "o", "out.txt"))
  println("verbose: " + @argkit.has(args, "verbose", "v").to_string())
  println(
    "validation: " +
    @argkit.validation_report(
      args,
      ["input"],
      ["i"],
      ["input", "output"],
      ["i", "o"],
      ["verbose"],
      ["v"],
    ),
  )
  println("summary:")
  for
    item in @argkit.parse_summary(
      args,
      ["input", "output"],
      ["i", "o"],
      ["verbose"],
      ["v"],
    ) {
    println("  " + item)
  }
  println(
    @argkit.help_text(
      "demo",
      "parse a tiny command line without a large framework",
      ["input", "output"],
      ["i", "o"],
      ["input file"],
      ["verbose"],
      ["v"],
      ["print extra logs"],
    ),
  )
}