var p = newParser:
command "foo":
flag("-a")
command "bar":
flag("-b")
var opts = p.parse(@["foo", "-a"])
assert opts.argparse_command == "foo"
assert opts.foo_opts.get().a == true
assert opts.bar_opts.isNone
# or maybe with an 'argparse_' prefix, though I don't like all the extra typing:
assert opts.argparse_foo_opts.get().a == true
assert opts.argparse_bar_opts.isNone
I'm imagining this design with
Option
s: